對于單個命令執(zhí)行大多數(shù)人都是明了的,也就是在一個命令行上執(zhí)行一條命令。那對于在一行上執(zhí)行多個命令怎么辦呢,其實也很簡單,只需在各命令之間加上特殊命令符號,我們常規(guī)使用到的有3個特殊命令符號。
創(chuàng)新互聯(lián) - 多線BGP機房,四川服務器租用,成都服務器租用,四川網(wǎng)通托管,綿陽服務器托管,德陽服務器托管,遂寧服務器托管,綿陽服務器托管,四川云主機,成都云主機,西南云主機,多線BGP機房,西南服務器托管,四川/成都大帶寬,成都機柜租用,四川老牌IDC服務商
1. [;]
如果被分號(;)所分隔的命令會連續(xù)的執(zhí)行下去,就算是錯誤的命令也會繼續(xù)執(zhí)行后面的命令。
2. []
如果命令被所分隔,那么命令也會一直執(zhí)行下去,但是中間有錯誤的命令存在就不會執(zhí)行后面的命令,沒錯就直行至完為止。
3. [||]
如果每個命令被雙豎線||所分隔,那么一遇到可以執(zhí)行成功的命令就會停止執(zhí)行后面的命令,而不管后面的命令是否正確與否。如果執(zhí)行到錯誤的命令就是繼續(xù)執(zhí)行后一個命令,一直執(zhí)行到遇到正確的命令為止。
把你的命令寫入一個shell腳本就行了啊。
新建一個文本文件,然后給他賦予可執(zhí)行權限就行了。
文本內(nèi)容為
#/bin/bash
。。。你的命令
指定一臺主機作為信任主機,這樣從這臺主機登錄其他機器就不需要密碼了。
設置信任主機:
假設有四臺機器:192.168.2.1~192.168.2.4,其中192.168.2.1為信任機,那么在192.168.2.1上運行如下命令:
$ssh-keygen -t rsa //此處一路回車,生成秘鑰
$scp .ssh/id_rsa.pub 192.168.2.2:~/ //把秘鑰拷貝到其他遠程機器
$ssh 192.168.2.2 ‘cat id_rsa.pub .ssh/authorized_keys’ //(遠程執(zhí)行命令)在遠程機器上生成認證文件
經(jīng)過這幾步,從192.168.2.1 ssh登陸192.168.2.2時,就不會再需要輸入密碼了。同樣的步驟再執(zhí)行3、4的極其。
文本文件hostlist可以如下
192.168.2.2
192.168.2.3
192.168.2.4
#!/bin/shdoCommand(){? ??
hosts=`sed -n'/^[^#]/p'hostlist`
for ? host ?in ? $hosts
do
echo ""
echo ?HOST$host
ssh ?$host ?"$@"?
done
return 0
}
if ?[ ?$# -lt 1 ]
then
echo "$0cmd" exit?
fi
do ?Command "$@"
echo "return from doCommand"
執(zhí)行命令(記得先對doCommand.s
h增加執(zhí)行權限 chmod u+x doCommand.sh)
./doCommand.sh “l(fā)s -al /root/”
這樣該腳本就會在每臺機器上執(zhí)行”ls -al /root/”這個命令,并返回結果在信任主機上。