标签:multi sub toolbar mime from round too process imp
习题1:统计内存使用要求:写一个脚本计算一下linux系统所有进程占用内存大小的和。(提示:使用ps或者top命令)
参考答案:
#!/bin/bash # date:2018年2月6日 # 使用top计算 echo -n "top统计结果:";top -bn1|sed '1,7'd|awk '{(sum=sum+$6)}; END {print sum}' # 使用ps计算 echo -n " ps统计结果:";ps aux|grep -v 'RSS'|awk '{(sum=sum+$6)}; END {print sum}' # 使用for循环 sum=0 for men in `ps aux|grep -v 'RSS'|awk '{print $6}'` do sum=$[$sum+$men] done echo "(ps)The total memory is $sum""k"
习题2:设计监控脚本
要求:设计一个脚本,监控远程的一台机器(假设ip为123.23.11.21)的存活状态,当发现宕机时发一封邮件给你自己
提示: 1. 你可以使用ping命令 ping -c10 192.168.139.128
2. 发邮件脚本可以参考 mail.py
3. 脚本可以搞成死循环,每隔30s检测一次
参考答案:
#!/bin/bash # date:2018年2月6日 ip="192.168.139.128" email="your_email@163.com" while : do ping -c10 $ip >/dev/null 2>/dev/null if [ $? -ne "0" ];then python /root/shell/mail.py "$email" "$ip down" "$ip is down..." else echo "mail send fail!" fi sleep 30 done
邮件脚本mail.py
#!/usr/bin/env python #-*- coding: UTF-8 -*- import os,sys reload(sys) sys.setdefaultencoding('utf8') import getopt import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from subprocess import * def sendqqmail(username,password,mailfrom,mailto,subject,content): gserver = 'smtp.163.com' gport = 25 try: msg = MIMEText(unicode(content).encode('utf-8')) msg['from'] = mailfrom msg['to'] = mailto msg['Reply-To'] = mailfrom msg['Subject'] = subject smtp = smtplib.SMTP(gserver, gport) smtp.set_debuglevel(0) smtp.ehlo() smtp.login(username,password) smtp.sendmail(mailfrom, mailto, msg.as_string()) smtp.close() except Exception,err: print "Send mail failed. Error: %s" % err def main(): to=sys.argv[1] subject=sys.argv[2] content=sys.argv[3] sendqqmail('your_email@163.com','邮箱的授权码','your_email@163.com',to,subject,content) if __name__ == "__main__": main()
标签:multi sub toolbar mime from round too process imp
原文地址:http://blog.51cto.com/11924224/2069732