Linux集群批量执行命令
因为工作需要,需要修改集群中机器的配置,一台一台的修改太浪费时间,就想能不能通过自动化脚本批量执行命令,尝试写一个,自己shell不熟悉,写的有点肤浅,请见谅。
if [ "$#" -ne 2 ];then echo "USAGE:$0 -f host_file cmd" exit -1 fi file_name=$1 cmds=$2 filepath=$(cd `dirname $0`; pwd) host_file="$filepath/$file_name" if [ ! -e $host_file ];then echo "$host_file not exit;" exit 0 fi cat $host_file | while read line do echo $line>>result ssh -n -p3600 $line source ~/.bash_profile;$cmds >> result #"source ~/.bash_profile;$cmds" > result if [ $? -eq 0 ] ; then echo "host:$line,$cmds done!" else echo "host:$line error: " $? fi done
执行方式xxxx.sh host_file ‘cmd’
其中xxx.sh是脚本名称,host_file是需要操作机器的ip地址列表,需要可以免密码登陆;cmd是需要操作的命令,如果命令之间存在空格,则需要用引号包起来。
note:
- 1.ssh和cmd需要写在同一行
- 2.ssh -n使用本地作为标准输入
相关推荐
farwang 2020-11-25
星愿心愿 2020-11-24
tianhuak 2020-11-24
zhjn0 2020-11-24
昭君出塞 2020-11-23
bluecarrot 2020-11-23
linuxwcj 2020-10-21
以梦为马不负韶华 2020-10-20
彼岸随笔 2020-10-20
yutou0 2020-10-17
applecarelte 2020-10-16
ourtimes 2020-10-16
waterhorse 2020-09-19
MRFENGG 2020-11-11
rainandtear 2020-10-30
kyssfanhui 2020-10-20
liuhangtiant 2020-10-20