基础脚本实例

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

top命令   按m以内存使用率排序

 

 

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

我们采用多个Ping同时进行任务,一个一个Ping太慢

首先我们先展示一下一个一个的ping的现象

 

 哪怕是每次只Ping一秒,都需要5分钟才能ping完。所以采用后台并发运行

vim for_ping.sh

#!/bin/bash
NETID=192.168.0
for HOSTIP in {1..254};do
    {
    if ping -c1 -w1 $NETID.$HOSTIP &> /dev/null ;then
        echo $NETID.$HOSTIP  Communication success! |tee -a hostlist.txt
    else
        echo $NETID.$HOSTIP  Communication fail! |tee -a hostlist.txt
    fi
    } &
done
wait

chmod +x for_ping.sh

./for_ping.sh

现象

 

 

 

 因为是并发运行,所以速度特别快,瞬间就能测试完所有的网络连通性

while 写法

#!/bin/bash
HOSTIP=1
NETID=192.168.0
while [[ $HOSTIP -le 254 ]];do
        if ping -w1 -c1 $NETID.$HOSTIP &> /dev/null;then
                echo $NETID.$HOSTIP  Communication success! |tee -a hostlist.txt
        else
                echo $NETID.$HOSTIP  Communication fail! |tee -a hostlist.txt
        fi
        let HOSTIP++
done

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

crontab -e

30 1 * * 1-5  /usr/bin/tar -cvf /backup/etcbak-`date -d "-1 day" +%F-%H` /etc/

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

vim diskcheck-awk.sh
#!/bin/bash
DISKUSE_MASK=`df |grep /dev/sd |awk -F " +|%" '{print $5}'|sort -nr|head -1`
WARNING=80
if [ $DISKUSE_MASK  -gt  $WARNING ] ;then
        echo "Disk space will be full,userd:$DISKUSE_MASK%"
        mail -s "Hard disk usage"  `whoami`@`hostname`
fi

crontab -e

chmod +x diskcheck-awk.sh

*/10 * * * 1-5 /bin/bash diskcheck-awk.sh  &> /dev/null

 

 测试:我们将警戒值改为10,来测试下

 

posted @ 2020-08-03 16:28  老F  阅读(184)  评论(0编辑  收藏  举报