文章目录
前言
【撷英采华】系列是在教学过程中,一些优秀的作品展示,以及一些与别人思考角度不同的作品展示,技术没有绝对唯一的答案,但可以锻炼自己从不同的角度思考和解决问题。
我是高胜寒,一个在教培行业不忘初心的人,祝每一个学员都能高薪就业。
脚本题目
一. 编写shell脚本统计httpd进程和子进程占用的CPU、内存大小,要求每隔5s统计一次
脚本1:
脚本2:
二. 编写shell脚本,结合expect给当前网段所有主机分发任意文件
脚本1:
准备工作:
脚本源码:
脚本2:
#!/bin/bash
Tar_etc()
{
tar jcvf /tmp/lyj.tar.bz2 /etc/*.conf &> /dev/null
if [ $? -eq 0 ]
then
echo "压缩包打包完成"
else
echo "压缩包打包失败请检查"
fi
}
Nmap_ip()
{
[ -f /mydate/ip.txt ]
if [ $? -eq 0 ]
then
cat /dev/null >/mydate/ip.txt
else
touch /mydate/ip.txt
fi
nmap -n -sP 10.0.0.2-253 | grep 10.0.0 | awk '{print $5}' >/mydate/ip.txt
}
Scp_ip()
{
cat /mydate/ip.txt | while read line
do
(
/usr/bin/expect << EOF
set time 20
spawn scp /tmp/lyj.tar.bz2 root@$line:/tmp/sjjy
expect {
"*yes/no*"
{ send "yes\r";exp_continue }
"*password:"
{ send "aixocm\r"}
}
expect eof
EOF
) &>/dev/null
if [ $? -eq 0 ]
then
echo "复制文件到$line成功!"
else
echo "复制文件到$line失败!"
fi
done
}
Tar_etc
Nmap_ip
Scp_ip
脚本3:
\#!/bin/bash
read -ep "请输入ip:" ip
read -ep "请输入密码:" passwd
read -ep "请输入文件绝对路径:" file
/usr/bin/expect <<EOF
spawn scp $file $ip:/root/
expect "yes" {send "yes\n;exp_untinue"}
expect "password" {send "$passwd\n"}
expect "100%" {send "echo "$ip:成功"}
expect eof
EOF
总结:
每一次考试都是一次进步,学习是反人性的,但我们做计算机这一样,就得迎难而上,脚本有人写的复杂,有人写的简单,只要最后的结果是对的,就都算正确的脚本,只是写的复杂的人,说明要么是脚本写少了,要么是脚本的思路不到位。
我们的目标是解决问题,方法有很多,我们选择哪种方法也因人而异,但千万不要陷入一种我只要能写出来执行成功就行了的状态,要多学习别人的脚本写法,多去看看别人写脚本的思路,从模仿学起,慢慢的变成自己的思路。
计算机行业其实也算一门手艺活,你需要不停的去练习,熟能生巧,你练习的次数足够多,量变带来质变,有一天你突然豁然开朗,原来觉得很难的知识点,突然变得容易了起来。
马上就要进入第三阶段的学习了,大家加油!