欢迎分享,转载请注明来源:内存溢出
指定一台主机作为信任主机,这样从这台主机登录其他机器就不需要密码了。设置信任主机: 假设有四台机器:192.168.2.1~192.168.2.4,其中192.168.2.1为信任机,那么在192.168.2.1上运行如下命令: $.sh-keygen -t rsa //此处一路回车,生成秘钥 $scp .ssh/id_rsa.pub 192.168.2.2:~/ //把秘钥拷贝到其他远程机器 $ssh 192.168.2.2 ‘cat id_rsa.pub >>.ssh/authorized_keys’ //(远程执行命令)在远程机器上生成认证文件 经过这几步,从192.168.2.1 ssh登陆192.168.2.2时,就不会再需要输入密码了。同样的步骤再执行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" 执行命令(记得先对doCommand.s h增加执行权限 chmod u+x doCommand.sh) ./doCommand.sh “ls -al /root/” 这样该脚本就会在每台机器上执行”ls -al /root/”这个命令,并返回结果在信任主机上。inux 下shell脚本执行多个命令的方法\x0d\x0a1.每个命令之间用隔开\x0d\x0a说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。\x0d\x0a2.每个命令之间用&&隔开\x0d\x0a说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。\x0d\x0a3.每个命令之间用||隔开\x0d\x0a说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
系统system进程和系统中断占用cpu高如何解决
上一篇
2023-04-05
Linux 平均负载
下一篇
2023-04-05
评论列表(0条)