Linux学习作业---第九周(6.8-6.14)

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

ps -aux |sort -k4nr

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

for案列:

#!/bin/bash

#

IP=192.168.0

for i in {1..254};

do

ping -c1 ${IP}.$i &> /dev/null

if [ $? = 0 ];then

  echo "${IP}.$i is success"

else

  echo "${IP}.$i is fail"

fi

done

while案例

#!/bin/bash

IP=192.168.0

i=1

while [ "$i" -le "254" ];do

  ping -c1 ${IP}.$i &> /dev/null

  if [ $? = 0 ];then

      echo "${IP}.$i is success"

  else

      echo "${IP}.$i is fail"

fi

i=$[$i+1]

done

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

1、编写脚本backupetc.sh

#!/bin/bash

mkdir -p /backup

tar -Jcvf /backup/etcbak-`date -d '1 days ago' +%Y-%m-%d-%H`.tar.xz /etc

2、crontab -e

30 01 * * 1-5 /data/backupetc.sh

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

1、安装邮件服务

yum install mailx sendmail -y

vi /etc/mail.rc 最后添加

set [email protected]      #发送者

set smtp=smtp.263.net             #smtp地址

set [email protected]        #发送者邮箱

set smtp-auth-password=123456               #邮箱密码

set smtp-auth=login                                    #登陆验证

systemctl restart sendmail

2、编写diskcheck.sh脚本

#!/bin/bash

#

DISKNAME=`df -Th |grep '^/dev' |awk '{print $1}'`

for i in $DISKNAME;

do

  j=`df -Th |grep "$i" |awk '{print $6}' |tr -d "%"`

  if [ $j -gt 80 ];then

    echo "WARNING:$i is used ${j}%" > /data/diskwarning.txt

    mail -s "$HOSTNAME DISKWARNING" [email protected] < /data/diskwarning.txt

  else

    echo "INFO:$i is used  ${j}%"

  fi

done

3、crontab -e

*/10 * * * 1-5 /data/diskcheck.sh

你可能感兴趣的:(Linux学习作业---第九周(6.8-6.14))