21、使用 expect 工具自动交互密码远程其他主机安装 httpd 软件
#!/bin/bash
使用 expect 工具自动交互密码远程其他主机安装 httpd 软件
删除~/.ssh/known_hosts 后,ssh 远程任何主机都会询问是否确认要连接该主机
rm ‐rf ~/.ssh/known_hosts
expect <<EOF
spawn ssh 192.168.4.254
expect “yes/no” {send “yes\r”}
根据自己的实际情况将密码修改为真实的密码字串
expect “password” {send “密码\r”}
expect “#” {send “yum ‐y install httpd\r”}
expect “#” {send “exit\r”}
EOF
24、点名器脚本
#!/bin/bash
编写一个点名器脚本
该脚本,需要提前准备一个 user.txt 文件
该文件中需要包含所有姓名的信息,一行一个姓名,脚本每次随机显示一个姓名
while :
do
#统计 user 文件中有多少用户
line=cat user.txt |wc ‐l
num=
[
R
A
N
D
O
M
s
e
d
−
n
"
[RANDOM%line+1] sed -n "
[RANDOMsed−n"{num}p" user.txt
sleep 0.2
clear
done
25、查看有多少远程的 IP 在连接本机
#!/bin/bash
查看有多少远程的 IP 在连接本机(不管是通过 ssh 还是 web 还是 ftp 都统计)
使用 netstat ‐atn 可以查看本机所有连接的状态,‐a 查看所有,
-t仅显示 tcp 连接的信息,‐n 数字格式显示
Local Address(第四列是本机的 IP 和端口信息)
Foreign Address(第五列是远程主机的 IP 和端口信息)
使用 awk 命令仅显示第 5 列数据,再显示第 1 列 IP 地址的信息
sort 可以按数字大小排序,最后使用 uniq 将多余重复的删除,并统计重复的次数
netstat -atn | awk ‘{print $5}’ | awk ‘{print $1}’ | sort -nr | uniq -c
26、对 100 以内的所有正整数相加求和(1+2+3+4…+100)
#!/bin/bash
对 100 以内的所有正整数相加求和(1+2+3+4…+100)
#seq 100 可以快速自动生成 100 个整数
sum=0
for i in seq 100
do
sum=
[
s
u
m
+
i
]
d
o
n
e
e
c
h
o
"
总
和
是
:
[sum+i] done echo "总和是:
[sum+i]doneecho"总和是:sum"
27、统计 13:30 到 14:30 所有访问 apache 服务器的请求有多少个
#!/bin/bash
统计 13:30 到 14:30 所有访问 apache 服务器的请求有多少个
awk 使用‐F 选项指定文件内容的分隔符是/或者:
条件判断$7:$8 大于等于 13:30,并且要求,$7:$8 小于等于 14:30
最后使用 wc ‐l 统计这样的数据有多少行,即多少个
awk -F “[ /:]” ‘$7":"$8>=“13:30” && $7":"$8<=“14:30”’ /var/log/httpd/access_log |wc -l