Shell练习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell练习相关的知识,希望对你有一定的参考价值。
习题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="[email protected]" 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('[email protected]','邮箱的授权码','[email protected]',to,subject,content) if __name__ == "__main__": main()
以上是关于Shell练习的主要内容,如果未能解决你的问题,请参考以下文章
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段