第八周作业

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

  ps -aux --sort=-%mem 

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

for循环:

#!/bin/bash
ip_first="192.168.0."
for  i in {1...154}
do 
   ping -c 1 $ip_first$i  &>/dev/null
   if [ $? -eq 0 ];then
    echo "$ip_pre.$i success!"
  else
    echo "$ip_pre.$i fail!"
done

while循环:

#!/bin/bash
ip_pre=192.168.0.
i=1
while [ $i -lt 255 ]
do
    ping -c1 $ip_pre$i &> /dev/null
    if [ $? -eq 0 ];then
      echo "$ip_pre.$i success!"
    else
      echo "$ip_pre.$i fail!"
    fi
    let i++
done

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

备份:

#!/bin/bash
tar cpvf etcbak-`date -d yesterday "+%F-%d-%H" `.tar.xz /etc
if [ $? -eq 0 ];then
      mv etcbak-`date "+%F-%d-%H"`.tar.xz  /backup   
fi

设置定时任务

echo "30 01 * * * sh bask.sh" >>/etc/crontab

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

#!/bin/bash
DISK=`df | grep "^/dev/sd.*" | sed -nr 's@^.* ([0-9]+)%.*$@\1@p'`                           
if [ $DISK -ge 80 ];then
   wall disk space Used warning
   else
   exit
fi

设置定时任务

echo "10 * * * * sh bask.sh" >>/etc/crontab

你可能感兴趣的:(第八周作业)