【撷英采华】2020年6月-7月教学周期学员考试

前言

【撷英采华】系列是在教学过程中,一些优秀的作品展示,以及一些与别人思考角度不同的作品展示,技术没有绝对唯一的答案,但可以锻炼自己从不同的角度思考和解决问题。

我是高胜寒,一个在教培行业不忘初心的人,祝每一个学员都能高薪就业。

脚本题目

一. 编写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  

总结:

每一次考试都是一次进步,学习是反人性的,但我们做计算机这一样,就得迎难而上,脚本有人写的复杂,有人写的简单,只要最后的结果是对的,就都算正确的脚本,只是写的复杂的人,说明要么是脚本写少了,要么是脚本的思路不到位。

我们的目标是解决问题,方法有很多,我们选择哪种方法也因人而异,但千万不要陷入一种我只要能写出来执行成功就行了的状态,要多学习别人的脚本写法,多去看看别人写脚本的思路,从模仿学起,慢慢的变成自己的思路。

计算机行业其实也算一门手艺活,你需要不停的去练习,熟能生巧,你练习的次数足够多,量变带来质变,有一天你突然豁然开朗,原来觉得很难的知识点,突然变得容易了起来。

马上就要进入第三阶段的学习了,大家加油!

扫描二维码关注公众号,回复: 11396671 查看本文章

猜你喜欢

转载自blog.csdn.net/xinshuzhan/article/details/107239093