linux第14次课程讲义.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux第14次课程讲义

Linux 第十四次课 Shell程序实际分析7 --检查系统资源的shell P180页 目的:编写shell程序实现功能如下: 1/使用df命令检查硬盘空间,即df命令的第5列“Use%”超过50%后,给系统管理员发信 2/使用ps命令检查系统各个进程所占用cpu和内存的情况,当ps命令执行结果中第3,4列中其中一项不等于0.0就给系统管理员发信。 红色部分是上次讲课漏掉了的代码 #!/bin/sh dfdfmesg pr -e dfmesg | awk ‘{stuff}’ # 去掉dfmesg 文件中的制表符TAB,把它全转换为空格 sed ‘/^F/d’ dfmesg dmesg #删除dfmesg文件中以F开头的行并输出到dmesg文件中去 ps -aux|more cpumesg pr -e cpumesg | awk ‘{stuff}’ #以上shell程序仅仅得到了df和ps的输出,下面进行分析处理这两个文件 先处理df文件 while read LINE1 do X=$LINE1 echo $Xttt DF=`awk ‘BEGIN {FS=“ ”;} {print $5}’ ttt` echo $DFtdf DD=`awk ‘BEGIN {FS=“ %”;} {print $1}’ tdf` DINTER=$(($DD+0)) #类型转换命令,把字符型的变量DD转换成数字形式的变量DINTER If [ $? -eq 0 ];then #看前面的命令执行时候成功 处理df的输出文件 If [ $DINTER –gt 50 ];then echo $Xtend #大于50%就输出目前的硬盘占用比例 else echo “The system have enough HD”tend #不大于50%就输出这段英文 fi else echo “Check system HD Error” #不是数字的话,硬盘有故障,输出这段英文,这个对于于前面的$?的判断语句 fi donedmesg #从dmesg文件中读取一行后循环 然后处理ps的的输出文件 while read LINE2 do CPU=$LINE2 echo $CPUtest CMESG =`awk ‘BEGIN {FS=“ ”;} {print $3}’ ttt` CMESG1 =`awk ‘BEGIN {FS=“ ”;} {print $4}’ ttt` If [ “$ CMESG 1” != “0.0” –o “$ CMESG ” != “0.0” ] ; then #这里用到了-o就是判断或的语法,两个条件成立一个既可 Echo $CPUdispcpu fi Done cpumesg 发给系统管理员消息 elm -s alarm –i tend root #表示将tend文件以附件形式附加在主题为alarm的邮件中发送给root用户 elm是收发邮件的命令,比mail命令更强大 -i代表邮件携带附件 -s为邮件的主题 elm -s cpumesg –i dispcpu root Shell程序实际分析8 --编写shell进行日志分析p190 如果系统日志文件/var/log/messages中有非法用户企图登录,立即发邮件告诉系统管理员。 多次登录系统,而密码都不正确的用户就被认为是非法用户。 #!/bin/sh egrep “(Failed password|last message repeated|Too many authentication)” /var/log/messsages logmesg #从日志文件/var/log/messsages中查找包含指定字符串 #“Failed password”以及“last message repeated ”以及 #“Too many authentication”的行 If [ $? –eq 0 ];then #前面查找的命令执行是否#正确 grep “repeated” logmesg loggrep #从文件logmesg中查找包含字符串”repeated”的行并保存到loggrep文件中 HOST=`awk ‘BEGIN {FS=“.”;} {print $1}’ /etc/HOSTNAME` #从主机文件 /etc/HOSTNAME中提取主机名 cut –d “$HOST” –f1 loggreplog #将loggrep文件中第一个出现主机名之前的字符#切下来,并保存到log文件中,其实就是登录的时间信息 While read LINE #开始读入log文件中的1行进行

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档