shell训练营Day24
练习61
有两个文件a.txt和b.txt,需求是,把a.txt中有的但b.txt中没有的行找出来,并写入到c.txt,然后计算c.txt文件的行数。
#!/bin/bash
cat a.txt|while read line
do
if ! grep -q "$line" b.txt
then
echo $line
fi
done >c.txt
wc -l c.txt
练习62
把当前用户下所有进程名字中含有"aming"的进程关闭。
#!/bin/bash
ps -u $USER|awk '$NF ~ /aming/ {print $1}' |xargs kill
练习63
用shell实现,以并发进程的形式将mysql数据库所有的表备份到当前目录,并把所有的表压缩到一个压缩包文件里。
假设数据库名字为mydb,用户名为aming,密码为passwd。
#!/bin/bash
N=5
mysql -uaming -ppasswd mydb -e "show tables"|sed '1d' > /tmp/table.txt
n=`wc -l /tmp/table.txt|awk '{print $1}'
div()
{
n=
echo "scale=1;$1/$2"|bc
n1=
echo "scale=1;$n+0.5"|bc
echo $n1|cut -d. -f1
}
n1=
div $n $N
split -l $n1 /tmp/table.txt
myd()
{
for t in
cat $1
do
mysqldump -uaming -ppasswd mydb $t > $t.sql
done
}
for f in xaa xab xac xad xae
do
myd $f &
done
wait
tar czf mydb.tar.gz .sql
rm -f .sql
练习64
一个网站,使用了cdn,全国各地有几十个节点。需要你写一个shell脚本来监控各个节点是否正常。
#!/bin/bash
s_ip=88.88.88.88
url=www.abc.com/index.php
ipf=/data/ip.list
curl -x$s_ip:80 $url 2>/dev/null >/tmp/source.txt
for ip in
cat $ipf
do
curl -x$ip:80 $url 2>/dev/null >/tmp/$ip.txt
diff /tmp/source.txt /tmp/$ip.txt > /tmp/$ip.diff
n=`wc -l /tmp/$ip.diff|awk '{print $1}'` if [ $n -gt 0 ] then echo "节点$ip有异常." fi
done
练习65
已知下面的字符串是通过RANDOM随机数变量md5sum|cut -c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?
21029299
00205d1c
a3da1677
1f6d12dd
890684ba
#!/bin/bash
for i in
seq 0 32767
do
m=
echo $i|md5sum |cut -c 1-8
echo $i $m
done > /tmp/md5.txt
cat > c.txt <<EOF
21029299
00205d1c
a3da1677
1f6d12dd
890684ba
EOF
grep -f c.txt /tmp/md5.txt
- 0 SHELL训练营--day24_shell练习61-65
- SHELL训练营--day6__shell脚本(2)
- shell训练营Day10
- SHELL训练营--day12_shell练习
- SHELL训练营--day15_shell练习26-30
- shell训练营Day15
- shell实战训练营Day20
- SHELL训练营--day23_shell练习56-60
- shell训练营Day14
- SHELL训练营--day20_shell练习41-45
- SHELL训练营--day4--正则1
- shell实战训练营Day10
- shell训练营Day21
- shell训练营 Day8
- Shell实战训练营Day11
- SHELL训练营--day11_shell练习
- shell 1c54 训练DAY24
- SHELL训练营--day2
- shell实战训练营Day5
- Shell实战训练营Day8