技术流ken

运维拯救世界

DAY7:河北科技大学课堂记录–nginx和shell编程

nginx反向代理

location ~ php$ {
proxy_pass http://192.168.64.5;
}
location / {
proxy_pass http://192.168.64.7;
}

 

nginx负载均衡

upstream ken {
server 192.168.64.5 weight=1;
server 192.168.64.7 weight=2;
}

location / {
proxy_pass http://ken;
}

 

rewrite重定向

location ~ \.php$ {
rewrite (.*php)$ http://192.168.64.7/$1 last;
}

练习1:使用root用户帐号创建并执行test2.sh,实现创建一个shelltest用户,并在其家目录中新建文件try.html。

#!/bin/bash
useradd shelltest
touch /home/shelltest/try.html

 

练习2:统计当前系统总共有多少用户

[root@ken ~]# cat test2.sh
#!/bin/bash
echo “当前系统中用户数量:`cat /etc/passwd | wc -l`”

[root@ken ~]# bash test2.sh
当前系统中用户数量:27

 

练习3:统计当前已经安装的软件数量

#!/bin/bash
yum list installed | wc -l

 

grep命令详解

 

grep是行处理

 

-o 仅仅显示匹配到的内容

-n 显示匹配到的内容所在的行号

-v 取反

-i 不区分大小写

-c 统计次数

 

例子1:找到/etc/passwd中的所有的root

[root@ken ~]# grep “root” /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

 

仅仅显示root

[root@ken ~]# grep -o “root” /etc/passwd
root
root
root
root

 

统计root出现的数量

[root@ken ~]# grep -o “root” /etc/passwd | wc -l
4

 

查看crond是否在线

[root@ken ~]# ps aux| grep “crond” | grep -vc “grep”
1

 

例子2:查看root所在的行号

[root@ken ~]# grep -n “root” /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

 

例子3:找到所有非/sbin/nologin 的行

[root@ken ~]# grep -v “nologin” /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
ken:x:1000:1000::/home/ken:/bin/bash
shelltest:x:1001:1001::/home/shelltest:/bin/bash

 

例子4:在/etc/profile中找到history默认显示的行号

[root@ken ~]# grep -i “^hist” /etc/profile
HISTSIZE=1000

 

cut命令详解

-c 指定字符数量

-d 指定分隔符

-f 指定分隔符后显示第几列

 

例子1:取出六位随机密码

[root@ken ~]# echo $RANDOM | md5sum | cut -c 1-6
475f1c

 

例子2:取出所有的用户名

[root@ken ~]# cat /etc/passwd | cut -d “:” -f 1
root
bin
daemon
adm

 

取出shell类型

[root@ken ~]# cat /etc/passwd | cut -d “:” -f 7
/bin/bash
/sbin/nologin
/sbin/nologin

 

sort

排序默认是升序

-r  降序

-n 以数字排序

例子1:根据大小进行排序

[root@ken ~]# sort -r test  #默认是字符排序
3
2
11

[root@ken ~]# sort -rn test
11
3
2

 

uniq 去重重复的行

-c 统计重复的行出现的次数

例子1:

[root@ken ~]# uniq -c test
10 2
1 11
10 3

 

 

统计访问网站IP数量并排名

[root@ken ~]# cat /var/log/httpd/access_log | cut -d ” ” -f1 | sort | uniq -c | grep -v “::” | sort -rn
98 192.168.64.4
45 192.168.64.1
8 192.168.64.7
3 192.168.64.5

 

取出访问网站前三名的IP地址

[root@ken ~]# cat /var/log/httpd/access_log | cut -d ” ” -f1 | sort | uniq -c | grep -v “::” | sort -rn | head -3
98 192.168.64.4
45 192.168.64.1
8 192.168.64.7

 

seq

seq 5   #结束位是5

seq 2 10  #起始位是2,结束位是10

seq 2 2 10 #起始位是2,步长是2,结束位是10

 

 

 

 

 

 

发表评论

电子邮件地址不会被公开。