我有一个脚本,从多个服务器获取服务器的运行状况是这样的:SSH for循环执行命令脚本
#!/bin/bash
for ip
do
ssh 192.168.1.209 ssh [email protected]$ip cat /proc/loadavg | awk '{print $1}' #CPU Usage
free | grep Mem | awk '{print $3/$2 * 100.0}' #Memory Usage
df -khP | awk '{print $3 "/" $2}' | awk 'FNR == 2' #Disk Space
df -kihP | awk '{print $3 "/" $2}' | awk 'FNR == 2' #Inode Space
date +'%d %b %Y %r %Z' #Datetime
ps -eo user,pid,pcpu,pmem,args|sort -nr -k3|head -5 #Process
done
的209表现得象我的网络上的门户网站,所以我要ssh到它第一次以访问其他服务器。通过在终端上键入以下命令:
./my_script.sh 192.168.1.210 192.168.1.211 192.168.1.212
我想从每个服务器获取每个命令输出(ps,日期等)。 2台服务器的期望输出应该是这样的:
0.11 #health from server 1
4.82577
1.7G/49G
46K/49M
27 Dec 2016 05:34:57 PM HKT
root 93 0.0 0.0 [kauditd]
root 9 0.0 0.0 [rcuob/0]
root 8740 0.0 0.0 ifstat --scan=100
root 829 0.0 0.0 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplicant.log -c /etc/wpa_supplicant/wpa_supplicant.conf -u -f /var/log/wpa_supplicant.log -P /var/run/wpa_supplicant.pid
0.00 #health from server 2
4.82422
1.7G/49G
46K/49M
27 Dec 2016 05:34:57 PM HKT
root 93 0.0 0.0 [kauditd]
root 9 0.0 0.0 [rcuob/0]
root 8740 0.0 0.0 ifstat --scan=100
root 829 0.0 0.0 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplicant.log -c /etc/wpa_supplicant/wpa_supplicant.conf -u -f /var/log/wpa_supplicant.log -P /var/run/wpa_supplicant.pid
的问题,我要面对的是,它好像它只有正从一台服务器的健康信息。这是为什么?是否因为我不能这样做SSH?我使用PHP exec()函数来执行脚本btw,以进一步格式化并将其显示在本地页面上。
哦,我忘了提及,209就像我的网络上的门户。我只能ssh到210,211等从209.所以我实际上SSH到209第一 –
我该怎么做?我已经给了我所有的代码 –