第八周作业

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

[root@centos6 ~]#ps aux | sort -k4nr | head -1
root       3814  0.0  0.4  98468  4528 ?        Ss   16:01   0:11 sshd: root@pts/1

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

for

[root@centos6 ~]#vim pingtest_for.sh
#!/bin/bash
#实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
NETID=192.168.0
for HOSTID in {1..254};do
  {
  ping -c1 -W1 $NETID.$HOSTID > /dev/null 2>&1                                                                                       
   if [ $? -eq 0 ];then
        echo $NETID.$HOSTID success! | tee -a >> /data/pingtest.txt
    else
        echo $NETID.$HOSTID fial! | tee -a >> /data/pingtest.txt
    fi
  } &
done
wait

while

[root@centos6 ~]#cat pingtest_while.sh
#!/bin/bash
#实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
NETID=192.168.0
declare -i HOSTID=1
while [ $HOSTID -lt 254 ];do
    ping -c1 -W1 $NETID.$HOSTID &>/dev/null;
    if [ $? -eq 0 ];then
        echo $NETID.$HOSTID success!
    else
        echo $NETID.$HOSTID fail!
    fi
let HOSTID++
done

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

先写个备份脚本

[root@centos6 ~]#cat etcbak.sh
#!/bin/bash
#将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
DIR=etcbak-`date -d '-1 day' +%Y-%m-%d-%H`
tar -Jcvf /backup/${DIR}.tar.xz /etc/ &> /dev/null

执行看是否可行

[root@centos6 ~]#. etcbak.sh
[root@centos6 ~]#ll /backup/
total 5320
-rw-r--r-- 1 root root 5444508 Mar 24 20:35 etcbak-2020-03-23-20.tar.xz

写进计划任务

[root@centos6 ~]#cat /etc/crontab
#每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
30 1 * * 1-5 /bin/bash /root/etcbak.sh

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

写测试脚本

[root@centos6 ~]#cat dickcheck.sh
#!/bin/bash
#执行磁盘空间检查,一旦发现任何分区利用率高于80%,就向root发送邮件报警
utilization=`df -h | grep "/dev/sd" |tr -s ' ' % | cut -d% -f 5 | sort | tail -1`
ALARM=80
if [ $utilization -gt $ALARM ];then
    echo 磁盘利用率已超过80%! | mail -s "High disk utilization" `whoami`@`hostname` (centos6不带后面的`hostname`)
fi

模拟测试

[root@centos6 ~]#dd if=/dev/zero of=/test bs=1M count=600
[root@centos6 ~]#df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       2.0G  1.5G  348M  82% /

执行脚本

[root@centos6 ~]#. dickcheck1.sh
[root@centos6 ~]#mail
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 root                  Wed Mar 25 00:07  22/802   "High disk utilization"
& 1
Message  1:
From root@centos6.localdomain  Wed Mar 25 00:07:03 2020
Return-Path: <root@centos6.localdomain>
X-Original-To: root@centos6
Delivered-To: root@centos6.localdomain
From: root <root@centos6.localdomain>
Date: Wed, 25 Mar 2020 00:06:03 +0800
To: root@centos6.localdomain
Subject: High disk utilization
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=utf-8
Status: R

磁盘利用率已超过80%!

写入计划任务

[root@centos6 ~]#crontab -l
#工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于80%,就发送邮件报警
*/10 * * * 1-5 /bin/bash /root/diskcheck.sh
上一篇:第九周作业


下一篇:第三周作业