1.首先保證機器之間是可以 ssh免密登陸的
2.編寫shell指令碼
[root@localhost opt]# vim ssh.sh
#!/bin/sh
ip="192.168.56.122 192.168.56.121"
rm -rf dd.log
echo '統計顯示' >> dd.log
for i in $ip
doecho $i >> dd.log ;
ssh $i 'ls -ilt `find /opt -name eth1`' >> dd.log;
echo "----done~-----" >> dd.log;echo `date` >> dd.log''
#sleep 2
done
echo "個數統計" >> dd.log
for i in $ip
doecho -e "$i 的總計為:\c " >> dd.log
a=$(ssh $i 'ls -ilt `find /opt -name eth1`'|wc -l)
echo " $a" >> dd.log
echo "----done~-----" >> dd.log;echo `date` >> dd.log
sleep 1
let s+=a
done
echo -e "\033[34m 總計$s \033[0m" >> dd.log
遇到的問題:1.發現 用ssh時候,使用 「 」,好像會出錯具體我也不是很清楚標點的作用,好像說解釋變數不解釋變數
2.正常的語句使 ";" 就可以多個命令執行了 如 「cd /home; ls 」
3.a=$(ssh $i 'ls -ilt `find /opt -name eth1`'|wc -l) 這邊 加引號可能會出錯。
over
[root@localhost opt]# cat dd.log
統計顯示
192.168.56.122
69218268 -rw-r--r--. 1 root root 0 may 7 06:18 /opt/tt1/eth1
36713854 -rw-r--r--. 1 root root 0 may 7 06:14 /opt/tt/eth1
102453462 -rw-r--r--. 1 root root 0 may 7 05:18 /opt/rh/eth1
----done~-----
sun may 7 07:09:58 edt 2017
192.168.56.121
102453462 -rw-r--r--. 1 root root 0 may 7 05:18 /opt/rh/eth1
----done~-----
sun may 7 07:09:58 edt 2017
個數統計
192.168.56.122 的總計為: 3
----done~-----
sun may 7 07:10:01 edt 2017
192.168.56.121 的總計為: 1
----done~-----
sun may 7 07:10:04 edt 2017
總計4
寫個shell檢測多台機器磁碟
將需要檢測的機器的ip統一touch到乙個檔案裡面,此處我們命名為 linux server list.config 然後寫shell就ok了 shell如下 檔名 diskcheck.sh 用途 批量檢查磁碟空間 cd diskcheck 刪除之前已經存在的檔案 rm rf df all grep...
關於登陸shell和非登陸shell的區別
問題描述 實驗室有一台用於linux教學用的機器,為每乙個學生在上面建了乙個使用者,作為上課用的。而我呢,正在做vlsi實驗。因為那台機器持久開著,所以我為了方便就在上面也建了乙個使用者,用於vlsi實驗。cadence環境是在csh下的。但是管理員給我建的使用者預設的是bash環境,我又沒有超級使...
Linux多台主機互相免密登陸
一 原理 我們使用ssh keygen在a主機上生成私鑰和公鑰,將公鑰的內容貼上到b主機的authorized keys檔案內,就可以在a主機上使用ssh命令,不使用密碼登陸b主機。二 操作步驟 node1.ambari.com node2.ambari.com各個主機均執行以下操作 生成金鑰對 s...