博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell 脚本获取远程服务器信息并发送邮件
阅读量:4358 次
发布时间:2019-06-07

本文共 2959 字,大约阅读时间需要 9 分钟。

1 [root@zenghui expect]# cat ssh_dsa.exp 2 #!/usr/bin/expect 3 set ip [lindex $argv 0] 4 set pass [lindex $argv 1] 5 set port [lindex $argv 2] 6 set user [lindex $argv 3] 7 set id_dsa [lindex $argv 4] 8   9 if { $id_dsa == "1" } {set id "id_dsa_wdzj";set i "-i"10 spawn ssh $i $id -p $port $user@$ip "df -hP;free -m;uptime"11 expect {12 "*(yes/no)?"         {send  "yes\r"; exp_continue}13 "*password:"      { send "$pass\r"}14 "*id_dsa_wdzj':" { send "$pass\r"}15 }16 }17 if { $id_dsa == "0" } {18 spawn ssh -p $port $user@$ip "df -hP;free -m;uptime"19 expect {20 "*(yes/no)?"         {send  "yes\r"; exp_continue}21 "*password:"      { send "$pass\r"}22 }23 }24  25 expect eof
1 [root@zenghui expect]# cat email_ssh.sh  2 #!/bin/bash 3  4 DIR='/root/shell/expect' 5  6 function Ssh(){ 7 clear 8 >$DIR/dev.log 9 >$DIR/dev2.log10 11 echo '
disk && NR >3) print $1,$5,$NF}'`38 echo "
Df_nr) print $0}' $DIR/ssh.log | awk -v mem=$mem '{if (NR==1) {b=$3/$2*100;a=$0}}END{if (b>mem) print a}'| awk '{print "total:"$2,"used:"$3,"free:"$4}'`45 46 echo "
' >> $DIR/dev2.log12 13 for i in `cat $DIR/config.txt`14 do15 ip=`echo $i| cut -d"," -f1`16 passwd=`echo $i| cut -d"," -f2`17 port=`echo $i| cut -d"," -f3`18 user=`echo $i| cut -d"," -f4`19 id=`echo $i| cut -d"," -f5`20 $DIR/ssh_dsa.exp $ip $passwd $port $user $id > $DIR/ssh.log 2>&121 22 echo '
' >> $DIR/dev.log23 24 25 echo "
" >> $DIR/dev.log26 27 #---average---28 average=`tail -1 $DIR/ssh.log | awk -v avg=$avg -F"[,:]" '{if ($(NF-2) > avg) print $0}'| awk -F'load average:' '{print $2}'`29 echo "
" >> $DIR/dev.log30 #---endaverage---31 32 33 34 #---disk---35 Df_nr=`awk '{if ($1=="total") print NR}' $DIR/ssh.log`36 Free_nr=`awk '{if ($1=="Swap:") print NR+1}' $DIR/ssh.log`37 Disk=`awk -v Df_nr=$Df_nr '{if (NR
" >> $DIR/dev.log39 #---enddisk---40 41 42 43 #---mem---44 Free=`awk -v Free_nr=$Free_nr -v Df_nr=$Df_nr '{if (NR
" >> $DIR/dev.log47 #---endmem---48 49 #---time---50 Date=`date +%Y-%m-%d" "%H:%M:%S`51 echo "
" >> $DIR/dev.log52 #---endtime---53 54 echo '
' >> $DIR/dev.log55 done56 }57 disk="80%"58 mem=9059 avg='1'60 Ssh61 cat -v $DIR/dev.log | tr -d "^M" >> $DIR/dev2.log62 echo '
cpu、内存、磁盘使用情况表1.0
ip cpu负载大于1.0 磁盘大于80% 内存大于90% 时间
$ip $average $Disk $Free $Date
' >> $DIR/dev2.log63 cat $DIR/dev2.log| mutt -s 'cpu,mem,disk' -e 'set content_type="text/html"' yunwei@xxx.com
1 [root@zenghui expect]# cat config.txt 2 115.29.x.x,password,22,user,13 115.29.x.x,password,22,user,14 121.40.x.x,password,22,user,15 115.29.x.x,password,2220,user,16 192.168.11.82,password,22,root,07 121.199.x.x,password,2220,user,18 192.168.11.83,password,22,root,09 121.41.x.x,password,2220,user,1

 

转载于:https://www.cnblogs.com/zenghui940/p/4521355.html

你可能感兴趣的文章
[转载]oracle xml操作
查看>>
laravel 中将一对多关联查询的结果去重处理
查看>>
https原理
查看>>
Django的聚合函数
查看>>
【LeetCode】两个有序数组合成一个有序数组(NEW)
查看>>
Vue使用better-scroll----城市组件实现字母联动选择
查看>>
外卖项目Vue实现一个星级评分组件
查看>>
仿饿了么外卖项目better-scroll插件的实战
查看>>
vue项目如何在手机上测试
查看>>
仿饿了么项目,右侧商品组件动画,以及和购物车组件的联动效果,小球掉落效果...
查看>>
重要:欢迎光临新版微软中文CRM论坛!
查看>>
Mac To Win
查看>>
hdu 1506
查看>>
USACO 2.4 Fractions to Decimals
查看>>
nyoj 我排第几个
查看>>
unity3d实现Socket
查看>>
Asp.Net WebService实例
查看>>
联机调试,如何配置局域网内文件服务器
查看>>
last modified -- expires 初步解释
查看>>
事情做完之后的测试
查看>>