周周练^"/>
Shell周周练^
2019独角兽企业重金招聘Python工程师标准>>>
2017/11/13 周一;
天气: 多云转小雨。
1、需求:写一个脚本计算一下linux系统所有进程占用内存大小的和。(提示,使用ps或者top命令)
法1:不过得到的结果不一样,我的天;
[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:三种计算的结果都不一样,我能怎么办 我也很无奈呀;
[root@Dasoncheng sbin]# cat c.sh
#!/bin/bash
sum=0
for mem in `ps aux |awk '{print $6}' |grep -v 'RSS'`
dosum=$[$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
2、需求:
设计一个脚本,监控远程的一台机器(假设ip为123.23.11.21)的存活状态,当发现宕机时发一封邮件给你自己。
提示:
- 你可以使用ping命令 ping -c10 123.23.11.21
- 发邮件脚本可以参考 .py
- 脚本可以搞成死循环,每隔30s检测一次
[root@Dasoncheng sbin]# cat d.sh
#!/bin/bash
ip=192.168.60.12
mail=gecz0000@163
while :;
do
ping -c5 $ip >/dev/null
if [ $? != "0" ];
thenpython /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
参考答案:
1、
#! /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 一条命令计算:
ps aux | grep -v ‘RSS TTY’ |awk ‘{(sum=sum+$6)};END{print sum}’
2、
#!/bin/bash
ip=123.23.11.21
ma=abc@139
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
转载于:
更多推荐
Shell周周练^
发布评论