Shell周周练^_^

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'`
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

2、需求:
设计一个脚本,监控远程的一台机器(假设ip为123.23.11.21)的存活状态,当发现宕机时发一封邮件给你自己。
提示:

  1. 你可以使用ping命令 ping -c10 123.23.11.21
  2. 发邮件脚本可以参考 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py
  3. 脚本可以搞成死循环,每隔30s检测一次
[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
参考答案:

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.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

转载于:https://my.oschina.net/u/3651233/blog/1572825

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值