2020-08-01第八周技术作业

一、显示统计占用系统内存最多的进程,并排序

image.png

二、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"

for方法脚本
[root@localhost data]# cat for.bash 
#!/bin/bash

IP=192.168.0
for i in {1..254}
do
    {   
    ping -c1 -W1 $IP.$i &> /dev/null
    if [ $? -eq 0 ];then
        echo "$IP.$i is success!"
    else
        echo "$IP.$i is fail!"
    fi
    }&
done

while方法脚本
[root@localhost data]# cat while.bash 
#!/bin/bash
IP=192.168.0
i=1
while [ $i -lt 255 ]
do
    ping -c1 -W1 $IP.$i &> /dev/null
    if [ $? -eq 0 ];then
        echo "$IP.$i is success!"
    else
        echo "$IP.$i is fail!"
    fi
    
    let i++

done

三、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间

[root@localhost data]# crontab -e

30 1 * * 1-5 /usr/bin/tar -Jcf /backup/etcbak-`date -d "-1 day" +%Y-%m-%d-%H`.tar.xz /etc &> /dev/null`

四、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于80%,就发送邮件报警

1.定义磁盘检查脚本
[root@localhost data]# cat /data/back.sh
#!/bin/bash 
#定义警告值
WARNING=10

df |sed -rn '/^\/dev\/sd/s#^([^[:space:]]+).* ([[:digit:]]+)%.*#\1 \2#p'|while read diskpart used;do
#截取磁盘名和利用率,分别放入‘diskpart和used’
   if [ $used -gt $WARNING ];then
        echo $diskpart will be full,used:$used% | mail -s "warning!" root
   fi
done

2.对脚本添加执行权限
[root@localhost data]# chmod +x back.sh

3.编写定时任务
[root@localhost data]# crontab -l
*/10 * * * 1-5 bash /data/bach.sh

你可能感兴趣的:(2020-08-01第八周技术作业)