天氣: 多雲轉小雨。
一、需求:寫一個腳本計算一下linux系統全部進程佔用內存大小的和。(提示,使用ps或者top命令)
法1:不過獲得的結果不同,個人天;python
[root@Dasoncheng sbin]# cat test.sh #!/bin/bash ps aux |awk 'NR>1''{(sum=sum+$6)};END{print sum}' >1.txt ps aux |awk '{print $6}' |grep -v 'RSS' |awk '{sum=sum+$1};END{print sum}' >>1.txt [root@Dasoncheng sbin]# cat 1.txt 743432 745356
法2:三種計算的結果都不同,我能怎麼辦 我也很無奈呀;linux
[root@Dasoncheng sbin]# cat c.sh #!/bin/bash sum=0 for mem in `ps aux |awk '{print $6}' |grep -v 'RSS'` do sum=$[$sum+$mem] done echo "The total memory is $sum""k" sum2=`ps aux |awk 'NR>1''{(sum=sum+$6)};END{print sum}'` sum3=`ps aux |awk '{print $6}' |grep -v 'RSS' |awk '{sum=sum+$1};END{print sum}'` echo "$sum2"'k' echo "$sum3"'k' [root@Dasoncheng sbin]# sh c.sh The total memory is 742688k 741952k 743876k
二、需求:
設計一個腳本,監控遠程的一臺機器(假設ip爲123.23.11.21)的存活狀態,當發現宕機時發一封郵件給你本身。
提示:git
[root@Dasoncheng sbin]# cat d.sh #!/bin/bash ip=192.168.60.12 mail=gecz0000@163.com while :; do ping -c5 $ip >/dev/null if [ $? != "0" ]; then python /usr/local/sbin/mail.py $mail "test ping $ip" "$ip is down" fi; sleep 30 done [root@Dasoncheng sbin]# ls -l mail.py -rwxr-xr-x 1 root root 1033 Nov 14 14:29 mail.py
一、bash
#! /bin/bash sum=0 for mem in `ps aux |awk ‘{print $6}’ |grep -v ‘RSS’ ` do sum=$[$sum+$mem] done echo 「The total memory is $sum」」k」
也能夠使用awk 一條命令計算:.net
ps aux | grep -v ‘RSS TTY’ |awk ‘{(sum=sum+$6)};END{print sum}’
二、設計
#!/bin/bash ip=123.23.11.21 ma=abc@139.com while 1 do ping -c10 $ip >/dev/null 2>/dev/null if [ $? != 「0」 ];then python /usr/local/sbin/mail.py $ma 「$ip down」 「$ip is down」 #假設mail.py已經編寫並設置好了 fi sleep 30 done