第八周作业
1、显示统计占用系统内存最多的进程,并排序
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu|head
2、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
for循环:#!/bin/bash
NETID=192.168.0.
for HOSTID in {
1..254};do
{
if ping -c1 -W1 $NETID$HOSTID &>/dev/null ;then
echo "$NETID$HOSTID is success!"
else
echo "$NETID$HOSTID is fail!"
fi
} &
done
wait
while循环:
#!/bin/bash
NETID=192.168.0.
while ((i<=255))
do
if ping -c1 -W1 $NETID$i &>/dev/null ;then
echo "$NETID$i is success!"
else
echo "$NETID$i is fail!"
fi
let i++
done
wait
3、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
#创建脚本
#!/bin/bash
vim /data/scriptstest/etcbak.sh
NAME=etcbak-`date +%F-%H -d yesterday`
tar jcvf /backup/$NAME.tar.xz /etc/
#创建计划任务crontab -e
30 1 * * * /data/scriptstest/etcbak.sh &>/dev/null
4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就发送邮件报警
#创建脚本
vim /data/scriptstest/diskcheck.sh
#!/bin/bash
USE=`df | sed -nr '/^\/dev\/sd/s@.* ([0-9]+)% .*@\1@ p'|sort -nr|head -1`
if [ $USE -gt 80 ];then
mail root << eof
disk warning
eof
fi
#创建计划任务crontab -e
10 * * * 1-5 /data/scriptstest/diskcheck.sh &>/dev/null