文本三劍客之while

一、顯示統計佔用系統內存最多的進程,並排序。
ps aux|grep -v PID|sort -rn -k +4|head
文本三劍客之while
二、編寫腳本,使用for和while分別實現192.168.0.0/24網段內,地址是否可以ping通,若ping通則輸出"success!",若ping不通則輸出"fail!"
1.for循環實現
#!/bin/bashgit

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
文本三劍客之while
2.while循環實現
#!/bin/bashvim

NETID=192.168.214
declare -i HOSTID=1centos

while [ $HOSTID -lt 255 ];dobash

ping -c1 -W1 $NETID.$HOSTID &> /dev/nullide

if [ $? -eq 0 ];then
echo "$NETID.$HOSTID success!"
else
echo "$NETID.$HOSTID fail!"
ficentos7

let HOSTID++spa

done
三、每週的工做日1:30,將/etc備份至/backup目錄中,保存的文件名稱格式 爲「etcbak-yyyy-mm-dd-HH.tar.xz」,其中日期是前一天的時間code

[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/nullblog

四、工做日時間,每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
相關文章
相關標籤/搜索