先把20台服务器的ssh登陆语句写进一个文本文件中host_name.txt,确保有一台机器可以通其他的19台服务器。
ssh跳转格式这样写:ssh 用户名@ip
#!/bin/bashcheck_sev()
{
ssh_ip=$1
$ssh_ip<<!
vmstat 1 10
iostat 1 10
exit
!
echo
}
echo `date "+%D"`>>check_host.log
while read line
do
echo "---------------------------------">>check_host.log
echo "$line date '+%F %T'">>check_host.log
check_sev $line>>check_host.log
done<host_name.txt
30 10 * * * 上面脚本的目录地址
将以上内容写进xx.cron中,crontab xx.cron 提交就是每天的10:30运行你上面的检查脚本。
具体crontab的用户你可以百度。
====================================================================
第一个脚本本人纯手打,并没有试,还有不少漏洞,你可以自行修改,比如你这个放脚本的服务器必须能无密码ssh登陆其他19个主机,脚本最好加上错误日志记录,防止某些错误导致脚本异常终止。你可以多调试几遍,有问题的在一起交流。
#!/bin/sh
echo '########################系统信息####################'
OS_TYPE=`uname`
OS_HOSTNAME=`hostname`
OS_IP=`ifconfig ens33 | grep inet | head -1 |awk '{print $2}'`
OS_banben=`uname -a | awk '{print $3}'`
OS_DATE=`date +%F_%T`
OS_RUNING=`uptime |awk '{print $3 $4}' | awk -F, '{print $1}'`
OS_MEM=`free -m |grep Mem |awk '{print $2}'`
OS_MEM_FREE=`free -m | grep Mem |awk '{print $4}'`
OS_MEM_PER=`free -m | grep Mem |awk '{printf ("%.2f\n",$3/$2*100)}'` #awk保留小数后两位需要 print换printf ("%.2f\n",$3/$2*100")
echo " 主机类型 $OS_TYPE "
echo " 主 机 名 $OS_HOSTNAME "
echo " 主 机 IP $OS_IP "
echo " 系统版本 $OS_banben "
echo " 系统时间 $OS_DATE "
echo " 运行时间 $OS_RUNING "
echo " 语言环境 $LANG "
echo " 总 内 存 ${OS_MEM}M "
echo " 剩余内存 ${OS_MEM_FREE}M "
echo " 内存使用率 ${OS_MEM_PER}% "
echo '####################################################'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)