nginx 配置文件:/etc/nginx/sites-availbale/default
集群搭建
1、部署nginx反向代理三个web服务,调度算法使用加权轮询;
Answer: (ubuntu位置:/etc/nginx/nginx.conf)
http {
upstream pythonweb {
server 192.168.2.101:80;
server 192.168.2.102:80;
server 192.168.2.103:80;
}
}
server {
listen 80;
listen [::]:80;
server_name www;
root /var/www/index.nginx-debian.html
index index.html;
location / {
proxy_pass http://pythonweb;
}
round-robin 轮询
least-connected 最少链接
ip-hash 哈稀,会话保持;
#nginx -v
lsof -i:80 查看80端口运行的程序;
#################################################################################
crontab -e -u root
echo `date +%F_%T`
****** /usr/bin/sh /root/check.sh
/usr/bin 全局执行命令;
#################################################################################
关于 if [ "$1" = ‘install‘] 字符串比较最好加双引号 " "
if [ "$1" = ‘install‘ ]
then
echo ‘....‘
数字加减没有空格[1+2]
function start(){
echo ‘===========‘;
res=$[1+2];
return $res
}
start
CASE 使用:
read -p ‘-->>:‘ uname
case $uname in
root)
echo "welcome $uname"
;;
seker)
echo "welcome $uname"
;;
default)
echo "welcome $uname"
;;
*)
echo "no user $uname"
esac
ping -c1 192.168.2.254 &> /dev/null 黑洞文件; 把ping执行的结果产生的信息drop to /dev/null
for i in {1..10}
do
echo $i
done
for i in `ls /boot` 取得ls目录下的文件列表;
do
echo $i
done
if [ $name = ‘alex‘ -a $psd = ‘alex4714‘] 方括号内字符串与=必须有空格; -a 不能用&&
if [ $name = ‘alex‘ ] && [ $psd = ‘alex4714‘ ]
报错解决: 参数太多!
字符串如果比较单个字符串; 但是出入的字符串如果超过2个 如: cd / 需要用双引号表示”软引用“ "cd /"----> "$cmd"
if [ "$cmd" = ‘quit‘ ]
echo "aaa\nbbb\nccc" aaa\nbbb\nccc
echo -e "aaa\nbbb\nccc" aaa
bbb
ccc
cat /etc/passwd |cut -d: -f2
awk -F: ‘{print $(NF-1)}‘ b 最后第二段;
echo $0 脚本文件名;
echo ‘$$‘ $$ 脚本进程号 $# 总共有多少个参数;(./5.sh 1 2 3 4 5 6 7 8 )
向脚本传递参数:
./4.sh a b c d .sh后面参数为$1 $2 $3
#!/bin/bash
echo $0
echo $1
文件放在/usr/bin 即可运行如:1.sh
#!/bin/bash
echo $1
if [ -f $1 ]
then
echo "$1 is regular file"
elif [ -b $1 ]
then
echo "$1 is block"
fi
在终端里面写命令行,需要有;分隔如:
#x=1
#if [ $x eq 1 ];then echo ‘x is 1‘;fi
test 文件测试;字符串;整形数字;
测试命令: test[] [[]] (())
test -d /etc #echo $? #0
[ -d /etc ] #echo $? #0 测试目录存在 -d
[ -e /etc/ ] -e 目录下的文件是否存在
[ -f /etc/passwd ] -f 目录下的某个文件是否存在;
[ -h /tmp/a.txt ] -h 查询目录下是否有某个链接文件
-w 可写;[ -w /etc/passwd ]
-r 可读
-s 文件存在并且内容非空[ -s /etc/passwd ] 看文件大小 ll -h /etc/passwd
字符串测试:
= x=‘hello‘ y=‘world‘ [ $x = $y ]
!=
-z 空串
-n 非空串
数值测试: -eq -ne (不等于) -gt 大于 -lt 小于 -ge大于等于, -le小于等于
men_total=` free | awk ‘NR==2{print $2}‘ `
men_use=`free | awk ‘NR==2{print $3}‘`
echo "scale=2;$men_use/$men_total"|bc -l
echo ‘scale=2;30/1000‘ | bc -l 分号; scale保留小树位数;
#x=1
#y=2
#expr $x + $y
#res=`expr $x + $y
#echo $res
#3`
x=x+1 x+=1
x=x*3 x*=3
x=x/3 x/=3
x=10
((x%=3))
echo $x
((i+=1))
#x=1
#x=$[$x+1]
#echo $x
#2
(()) 可以正常使用比较符号;
#((2>10))
#echo $?
#1
#[ 2 > 1 ] 中括号号的语法结构跟test一样; [ 2 -gt 1]
#echo $?
#0
test===========>[]
设置全局变量: export money=1000
su - zjf 进入zjf bash
# env 系统变量
#cd - 返回上一次的目录
echo 显示 ,$是取值;
x=1 赋值, 取消赋值 unset x
统计某一个目录下文件的大小; du -sh /home/zjf/
寻找普通文件 -type f #find / -type f
寻找文件名称 -name "*.txt" # find / -name "*.txt"
找大于30M文件 find / -size +30M
cat a |sort 内容显示排序;
cat a |sort |uniq 去重;
cat a |sort |uniq -c -c看去了重复行有多少;
简单处理:cut
cat a | cut -d: -f1,3 取 第一,第三字段;F后面没有空格; d后面的冒号为:以冒号为分隔符; 取后面的第几部分;
不指定 F 以空格为单位;取ifconfig 的IP
ifconfig | awk ‘NR==2{print $2}‘
反引号`` 引用 保存给变量 : ip_addr=`ifconfig | awk ‘NR==2{print $2}‘`
echo $ip_addr
自己定义变量,把变量传进去; count=7 -V 定义变量;
awk -v x=$count -F: ‘$3>x{print NR,$3 }‘ test
awk -F: ‘$1=="root"{print NR,$1,$3}‘ test 第一行是root 打印$1,$3
awk -F: ‘$1~/^r.*t$/{print NF,$3}‘ test
awk -F: ‘/nologin$/{print $1}‘ test 以nologin结尾的,打印用户名; // 正则定制;
awk -F: ‘NR<=3 || NR >=5{print NR,"-------",$1}‘ test
awk -F: ‘NR>=3 && NR<=5{print NR,"-------",$1}‘ test
awk -F: ‘NR<=3{print NR,"-------",$1}‘ test 单引号内使用双引号隔开;
awk -F: ‘NR==1{print $1,NR}‘ test
awk -F: ‘NR<=3{print $1,NR}‘ test
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
内容匹配正则: $1~// 根据分隔符匹配的某一段内容:$2 , $1 等来匹配//
awk -F: ‘$1~/^r.*t$/{print NR, $3}‘ test
#awk -F: ‘{print $1,NR}‘ test NR 行号;
#awk -F: ‘{print $1,NF}‘ test
#root 7 NF 代表有几段内容; NR 行号;
awk -F: ‘定址+{命令}‘ /etc/passwd 命令如:print $0 取所有; $NF 最后一段;
#awk -F: ‘{print $1,$4}‘ test 取以冒号为分隔符; 第一个,第四个;
取最后一段: awk -F: ‘{print $1,$NF}‘ test 取第一段,最后一段,以冒号为分隔符 ;
#root 0
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
egrep ‘r[abc123\-\/]t‘ b.txt --------->r1t r2t
egrep ‘r.t‘ b.txt -------------------->r1t r2t r/t r-t -必须在结尾才能转义出来;
.是任意一个,[]是定义一个范围;
egrep ‘r[a-zA-Z]t‘ b.txt 等价 egrep ‘r[a-Z]t‘ b.txt rOt
egrep ‘^[0-9]‘ test 0-9开头的字符行;
egrep ‘^[^0-9]‘ test 非0-9开头的字符行;
egrep ‘compan(y|ies)‘ a.txt
egrep -e ‘‘ -e ‘‘ -e指定多个规则;
egrep ‘ab?‘ a.txt 打印?左边字母所在的行;
egrep ‘ab{3}‘ a.txt #ab{3}-->abbb abbbb
egrep -w ‘ab{3}‘ a.txt ------>abbb -w匹配单词;
或者 egrep ‘ab{3}$‘ a.txt
egrep ‘ab{2,4}‘ a.txt 指定2个到4个b
egrep ‘ab{2,}‘ a.txt 2个无穷个b;
$dpkg -l查看版本号;
执行卸载:$sudo apt-get remove virtualbox-4.2
#########################################################################################################
正则定位:
分两步: 1、定址 2、操作 ‘/定址/操作(命令) 内容‘ sed ‘/^s/c 11111‘ test
sed -r ‘/^[0-9]([a-Z]+)xsb$/ s/sb/SB/g‘ test2
sed -r ‘/^[0-9][a-Z]{3}xsb$/ s/sb/SB/g‘ test2 正则// + 命令///
sed -r 扩展正则;
******************************************************
命令的正则使用: (部分课后作业)
s/// ----------> s/()()/\1/ 取()() 的第二部分
例: sed -r ‘s/^([a-Z]+)([^a-Z])/\2/g‘ test
去除行最后一个单词(保留非字母符号)
sed -r ‘s/([^a-Z])([a-Z]+)$/\1/g‘ test
第一部分 跟 第三部分 调换:
sed -r ‘s /^([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z])/\3\2\1\4/g‘ test
第一个单词与行最后一个单词交换位置;
sed -r ‘s/^([a-Z]+)([^a-Z])(.*)([^a-Z])([a-Z]+)$/\5\2\3\4\1/‘ test
去除数字:(所有行)
sed -r ‘s/[0-9]//g‘ test
删除字母前面的空格:
sed -r ‘s/^(\ +)([a-Z]+)/\2/g‘ test
把所有大写字母用括号()括起来
sed -r ‘s/[A-Z]/(&)/g‘ test
每行打印三次
sed -r ‘p;p‘ test
隔行删除 (从第一行开始删,2d每隔一行删,3d每隔2行删;)
sed ‘1~2d‘ test
去除每行第一个字符:
sed -r ‘s/^(.)(.*)/\2/‘ test
去除第二个字符:
sed -r ‘s/^(.)(.)([a-Z]+)/\1\3/‘ test
去除第二个单词 password 文件的copy test
sed -r ‘/^([a-Z]+)([^a-Z])([a-Z]+)([^a-Z])/\1\2\4/‘ test
只显示第一个单词: (.*)
sed -r ‘s/^([a-Z]+)([^a-Z])(.*)/\1/‘ test
显示第一个,第三个单词
sed -r ‘s/^([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)(.*)/\1\ \3/‘ test
去除每行第二个字符
sed -r ‘s/^(.)(.)([a-Z])/\1\3/‘ test
去除最后一个字符;
sed -r ‘/([^a-Z])([a-Z]+)([a-Z]$)/\1\2/‘ test
交换没一行第一个,第二个字符;
sed -r ‘/^(.)(.)([a-Z]+)([^a-Z])/\2\1\3\4/‘ test
*******************************************************
sed ‘/alex/s/sb/SB/g‘ test2 正则定位+命令#!/bin/bash
echo "开始安装......."
yum install rpcbind -y
yum install nfs-utils -y
echo "安装完成,开始更改配置文件......"
echo "挂载共享文件......."
a=`exportfs |awk ‘{print $1}‘`
mount -t nfs 192.168.16.254:$a /usr/share/nginx/html
echo "配置完成,启动服务......"
systemctl start rpcbind
systemctl start nfs
exportfs
sed ‘/^root/d‘ test 定址+操作
sed ‘/sb.*$/d‘ test2 定址+操作
sed ‘/^s/c 11111‘ test 定址+操作+内容
##########################################################################################################
sed ‘4s/sb/SB/g‘ test2 明确行定位+命令
sed ‘s/sb/SB/g‘ test2 匹配行内所有符合字符串; 命令无定位
sed ‘s/sb/SB/‘ test2 只匹配一行的第一个;
sed ‘1d;3d‘ test 删1跟第3行
sed ‘1,3d‘ test 删1-3行;
sed ‘s///‘ test2
**********************************************************
-n 取消默认输出
sed -n ‘3p‘ test 取消源文件输出,打印源文件第三行;
sed ‘3p‘ test 第三行输出再次一遍;不影响原第三行;
sed ‘3c 111111‘ test 第三行前插入c后面的值;sed ‘3i 111111‘ test
sed ‘3a 111111‘ test 第三行后面追加插入c后面的值;
sed ‘3d‘ test ‘3‘ 代表第三行, d 删除
#############################################################################
sed ‘‘ test
sed -n ‘‘ test 静默模式,取消默认输出(源文件内容);
sed -e ‘‘ test 多个规则;
sed -i ‘‘ test 内容写到文件里面;对文件直接修改;不加打印效果
################################################################################
lsblk 系统硬盘
chown -R 用户名称 [文件或目录]
chown -R [用户名称:组名称][文件或目录]
1、取以^开头的行: grep ‘^s‘ /etc/passwd
2、以。。。结尾的 grep ‘bash$‘ /etc/passwd
3、‘.‘ 表示任意一个字符;grep ‘^b.n‘ /etc/passwd
4、 * 以*左边(第一个)开头匹配,*左边有0个或无穷个; (必须第一个就有才能匹配;)grep ‘ab*‘ a.txt 必须以a开头的或ab开头的才能匹配;
5、 ‘+‘ (+左边那一个字符)有一个或无穷个以上;egrep ‘ab+‘ a.txt 以ab开头的行;
6、?:左边的那个字符有0个或1个;
7、{N}左边那个字符有N个;
8、{N,M}左边那个字符有N-M个;
9、{N,M}左边那个字符有N-无穷个;
10、[a-z]:所有小写字母
11、[A-Z]:所有大写字母
12、[a-Z]:所有大写字母 [a-zA-Z]
13、[^a-Z]+ 不是字母的单词
在非KDE桌面环境下,如果安装了fcitx-module-kimpanel,可能会导致Fcitx输入中文时不显示候选词框,移除该组件,然后重启Fcixt。
$ sudo apt remove fcitx-module-kimpanel
取文件开头前10行copy到新文件: head -10 /etc/passwd > a.txt
grep ‘root‘ /etc/passwd
-n 匹配行显示
-o 只显示匹配内容;
-q 不打印;过滤内容 grep -q ‘adfadfaf‘ /etc/passwd echo $? 1 内容没有;
-A 显示过滤内容及其后几行内容: grep -A 2 ‘root‘ /etc/passwd
-B 显示过滤内容及其前几行内容 grep -B 2 ‘root‘ /etc/passwd
-C 显示过滤内容及其前后几行内容 grep -C 2 ‘root‘ /etc/passwd
-c 显示匹配的行数
-i 过滤大小写内容 grep -i ‘hello‘ a.txt
-v 取反(内容) grep -iv ‘hello‘ a.txt
############
/etc/profile ----> /etc/bash.bashrc ------>/etc/profile.d/*.sh
用户/profile 执行用户下面的 .bashrc
######################################################################
/etc/profile ____________ubuntu has
/etc/bashrc
/root/.bashrc 当前用户目录下的__________ubuntu has
/root/.bash_profile 当前用户目录下的
但是万事都不是一样的,debain系列 的是不同的,如ubuntu
/etc/profile-->/etc/environment-->$HOME/.profile
Ubuntu Linux系统环境变量配置文件介绍在Ubuntu中有如下几个文件可以设置环境变量
/etc/profile:在登录时,操作系 统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
/etc /environment:在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。
~/.profile: 在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认 情况下,他设置一些环境变量,执行用户的.bashrc文件。
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
grep
sed
awk
? 代表任意一个字符;
ls ?.doc
ls ?.txt
while :;do echo 123;sleep 0.5;done
类似:
while :;
do
echo 123;
sleep 0.5;
done
: 永远为真
echo $?
0
;分割多个命令
ls;pwd;echo 123;pwd
‘‘硬引用;‘‘内特殊符号都没有特殊含义;
""软引用;""内的特殊符号都有特殊意义;
\转义字符;
x=1
echo "$x"
echo "\$x"
$x
{}如:添加
money=10
echo $money
10
echo ${money}0000
100000
(x=2) () 为子进程运行内容;
|| (逻辑或)
pwd || echo 123 (第一个执行成功了,第二个不执行;第一个执行不成功,执行第二个;)
firefox & 后台执行; &
pwd && echo 123 在左边命令执行成功的情况下才执行右边的;(逻辑与)
引用: make && make install
[]整数的加减乘除;
echo $[1+10] 例;
y=2
x=1
[ $y>$x ]
echo &?
0
echo $? 如果是0证明是执行成功;非0 上一条命令执行失败;
# 0
touch {a..c}.txt
touch {1..10}.txt
ls [!0-9].txt
ls [abcd].txt 每样取一个;
#a.txt b.txt c.txt d.txt
取AA.TXT
ls[abcd][a].txt
aa.txt
ls [a-z].txt
x=`ls /tmp`(反引号的嵌套有问题;)
echo $x
y=$(ls)
echo $y
fucnction cd () { echo 123; }
cd
123
取消CD命令:
unset cd
read命令:
read -p ‘pls input your hostname:‘ name
#echo $name
取name值:echo $name
# function test() { hostnamectl set-hostname www;hostname; }
hostnamectl set-hostname www
source a.sh 没有执行权限也能运行;
Linux修改用户所在组方法
强行设置某个用户所在组
usermod -g 用户组 用户名
把某个用户改为 group(s)
usermod -G 用户组 用户名
把用户添加进入某个组(s),注意:原来的用户组还存在
usermod -a -G 用户组 用户名
ifconfig ens33 192.168.16.48/24 改ip
route add default gw 192.168.2.254 netmask 255.255.255.0
route -n
which ifconfig
/usr/sbin/ifconfig
rpm -qf /usr/sbin/ifconfig
net-tools-2.0-0.17.20131004git.el7.x86_64
arping -I enss 192.168.2.152 óDIP?úMAC
sudo ufw status
service rpcbind restart
service nfs-kernel-server restart
systemctl status rpcbind
systemctl status nfs-kernel-server
exportfs
showmount -e 查看自己共享的;showmount -e 192.168.2.100
showmount -a 查看已经挂载的;
mount 192.168.16.147:/share /opt/nfs_folder
systemctl enable nfs-server.service(centos)éè???a?ú???ˉ£?
cat /etc/exports
/share 192.168.3.1.0/24(rw,sync,fsid=0)
blog.csdn.net/striker_v?viewmode=contents
13585030330
第一阶段笔记整理7.23
时间: 2024-10-13 07:34:28
第一阶段笔记整理7.23的相关文章
IOS阶段学习第一天笔记
原本从事的是.NET开发,一直在要不要转IOS 中犹豫徘徊,经过复杂的内心挣扎终于鼓起勇气辞职脱产学习IOS,现在已成无业人士加学生狗一枚.希望通过四个月的学习后能够拿到理想的薪资.以下是学习过程中的学习笔记,为了方便自己日后查看,同时也希望为IOS初学者带来些许帮助,遂准备将IOS整个学习阶段的学习笔记整理记录. IOS学习(C语言
自学it18大数据笔记-第一阶段Java-day16-day17-day18-day19--day20-day21-day22——会持续更新
转行大数据领域,没报班,自学试试,能坚持下来就以后好好做这行,不能就--!准备从现有这套it18的视屏残本开始--自学是痛苦的,发博客,算是监督自己,督促自己坚持学下去. (教学视屏是it18做活动送的,虽不全,但徐培成老师讲的真心不错,特此感谢it18掌--帮你们打打广告) 笔记为自学时记录,如有错误,欢迎指正,不胜感激! 笔记分享:自学it18大数据笔记-第一阶段Java-day16-day17-day18-day19--day20-day21-day22--会持续更新-- 第一阶段Java
自学it18大数据笔记-第一阶段Java-day09-day10-day11-day12-day13-day14-day15
转行大数据领域,没报班,自学试试,能坚持下来就以后好好做这行,不能就--!准备从现有这套it18的视屏残本开始--自学是痛苦的,发博客,算是监督自己,督促自己坚持学下去. (教学视屏是it18做活动送的,虽不全,但徐培成老师讲的真心不错,特此感谢it18掌--帮你们打打广告) 笔记为自学时记录,如有错误,欢迎指正,不胜感激! 笔记分享:自学it18大数据笔记-第一阶段Java-day09-day10-day11-day12--day13-day14-day15--会持续更新-- 第一阶段Java
Cocos2dx 学习笔记整理----第一个项目
接上一节, 进入新建的项目下面的proj.win32下面,找到项目名.sln文件(我的是game001.sln),双击会通过VS2010打开.(当然,你装了VS什么版本就是什么版本) 将你的项目设为启动项目, 切换到解决方案视图, 然后邮件点击解决方案, 选择生成解决方案. 第一次生成根据个人机器性能会消耗大概1-3分钟,呵呵. 但是以后会快很多的. 生成成功的话会在输出窗口显示如下: 一般都会生成成功,但是我生成的时候失败了很多次,后来发现是这个问题:http://www.cnblogs.co
自学it18大数据笔记-第一阶段Java-day05-day06-day07-day08
转行大数据领域,没报班,自学试试,能坚持下来就以后好好做这行,不能就--!准备从现有这套it18的视屏残本开始--自学是痛苦的,发博客,算是监督自己,督促自己坚持学下去. (教学视屏是it18做活动送的,虽不全,但徐培成老师讲的真心不错,特此感谢it18掌--帮你们打打广告) 笔记为自学时记录,如有错误,欢迎指正,不胜感激! 笔记分享:自学it18大数据笔记-第一阶段Java-day05-day06-day07-day08--会持续更新-- 第一阶段Java-day03-day04见:http:
自学it18大数据笔记-第一阶段Java-day03-day04
转行大数据领域,没报班,自学试试,能坚持下来就以后好好做这行,不能就--!准备从现有这套it18的视屏残本开始--自学是痛苦的,发博客,算是监督自己,督促自己坚持学下去. (教学视屏是it18做活动送的,虽不全,但徐培成老师讲的真心不错,特此感谢it18掌--帮你们打打广告) 笔记为自学时记录,如有错误,欢迎指正,不胜感激! 笔记分享:自学it18大数据笔记-第一阶段Java-day03-day04--会持续更新-- day03笔记见下图: day04笔记见下图:
java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, Ejb, java和模式 Linux/Unix笔记 inode :存储编号(地址) ls -k:查看磁盘分区 ls -li:显示当前文件的inode号. 目录的大小跟文件的大小有关,跟目录里的文件(目录)数量无关. 一行多个命令的话,中间用分号分开.如:pwd;cal;date last | grep
Deep Learning(深度学习)学习笔记整理系列 | @Get社区
body { font-family: Microsoft YaHei UI,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bo
Deep Learning(深度学习)学习笔记整理系列七
Deep Learning(深度学习)学习笔记整理系列 声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 3)本人才疏学浅,整理总结的时候难免出错,还望各位前辈不吝指正,谢谢. 4)阅读本文需要机器学习.计算机视觉.神经网络等等基础(如果没有也没关系了,没