前言
最近项目的需求,需要在三台机器中频繁的切换,执行不同的脚本。一开始是用很笨的办法,打开不同的终端,连接不同的机器。但是这种效率非常低,所以就想在同一台机器上写一个脚本,远程执行其它机器上的命令。
操作步骤
- 1、 将A,B,C 三台服务器打通。打通的办法是用ssh-keygen -t rsa 生成公钥和私钥对。比如在A机器上的~/.ssh/这个文件夹下生成了id_rsa,id_rsa.pub这两个文件。然后将A机器的id_rsa.pub拷贝到B机器的authorized_keys文件中,这样在A机器上就可以直接
ssh work@B的IP 这种方式免密登录了。其它机器之间也是这样。 - 2、使用ssh username@hostip "cmd",可以实现执行远程命令的效果,不过该方法执行的cmd包含nohup时,不起作用。
- 3、如果想让执行nohup生效,解决的方法是,手动在命令里面指定重定向,即上面的命令换成:ssh username@hostip "nohup ./test.sh >/dev/null 2>&1 &",然后就OK。
网友评论