码迷,mamicode.com
首页 > 其他好文 > 详细

文本三剑客之while

时间:2020-04-11 22:20:41      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:发送邮件   amp   else   art   sed   技术   net   地址   系统   

1、显示统计占用系统内存最多的进程,并排序。
ps aux|grep -v PID|sort -rn -k +4|head
技术图片
2、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
1.for循环实现
#!/bin/bash

NETID=192.168.0
for HOSTID in {1..254};do
{
ping -c1 -W1 $NETID.$HOSTID &> /dev/null
if [ $? -eq 0 ];then
echo "$NETID.$HOSTID success!"
else
echo "$NETID.$HOSTID fail!"
fi
} &
done
技术图片
2.while循环实现
#!/bin/bash

NETID=192.168.214
declare -i HOSTID=1

while [ $HOSTID -lt 255 ];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@centos7 ~]# crontab -e
30 1 1-5 /usr/bin/tar -Jcf etcbak-date -d "-1 day" +%Y-%m-%d-%H.tar.xz /etc &> /dev/null

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

  1. 先准备报警脚本
    [root@centos7 data]# vim while_checkdisk.sh
    #!/bin/bash

WARNING=10
MAIL=root@localhost

df |sed -rn ‘/^\/dev\/sd/s#^([^[:space:]]+). ([[:digit:]]+)%.#\1 \2#p‘|while read diskpart used;do

if [ $used -gt $WARNING ];then
echo $diskpart will be full,used:$used% | mail -s "diskcheck_alert" $MAIL
fi
done

  1. 给脚本加执行权限
    chmod +x while_checkdisk.sh
  2. 添加定时任务
    crontab -e
    /10 * /bin/bash /data/while_checkdisk.sh &> /dev/null

文本三剑客之while

标签:发送邮件   amp   else   art   sed   技术   net   地址   系统   

原文地址:https://blog.51cto.com/14671983/2486596

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!