shell跨服务器执行命令(跨服务器执行shell脚本)
温馨提示:这篇文章已超过675天没有更新,请注意相关的内容是否还可用!
示例:$ ssh root@192.168.1.100 "ls -l /var/log"上述命令会在192.168.1.100主机上执行ls -l /var/log命令,并将结果返回到本地终端。使用scp命令可以实现跨服务器执行shell脚本的功能。
在日常运维工作中,我们经常需要在多台服务器之间执行命令或脚本。这时候,就可以使用shell跨服务器执行命令和脚本的功能。
一、跨服务器执行命令1. 使用ssh命令
ssh是一种安全的远程登录协议,可以用于在不同的服务器之间传输数据和执行命令。使用ssh命令可以实现跨服务器执行命令的功能。
语法:ssh [user@]hostname [command]
其中,user为用户名,hostname为目标主机名或IP地址,command为要在远程主机上执行的命令。
示例:
$ ssh root@192.168.1.100 "ls -l /var/log"
上述命令会在192.168.1.100主机上执行ls -l /var/log命令,并将结果返回到本地终端。
2. 使用expect命令
expect是一个自动化交互式命令行工具,可以模拟用户输入命令和回答问题。使用expect命令可以实现跨服务器执行命令的功能。
语法:expect -c "spawn ssh [user@]hostname [command]; expect password; send [password]\r; interact"
其中,user为用户名,hostname为目标主机名或IP地址,command为要在远程主机上执行的命令,password为目标主机的密码。
$ expect -c "spawn ssh root@192.168.1.100 'ls -l /var/log'; expect password; send 123456\r; interact"
上述命令会在192.168.1.100主机上执行ls -l /var/log命令,并将结果返回到本地终端。其中,123456为目标主机的密码。
二、跨服务器执行shell脚本1. 使用scp命令
scp是一种安全的文件传输协议,可以用于在不同的服务器之间传输文件。使用scp命令可以实现跨服务器执行shell脚本的功能。
语法:scp [options] source_file [user@]host:target_file
其中,options为选项,source_file为源文件名,user为用户名,host为目标主机名或IP地址,target_file为目标文件名。
$ scp test.sh root@192.168.1.100:/root/
上述命令会将本地的test.sh文件复制到192.168.1.100主机的/root/目录下。
2. 使用ssh命令
ssh命令也可以用于执行远程主机上的shell脚本。
语法:ssh [user@]hostname "bash -s" < local_script.sh
其中,user为用户名,hostname为目标主机名或IP地址,local_script.sh为本地要执行的shell脚本。
$ ssh root@192.168.1.100 "bash -s" < test.sh
上述命令会将本地的test.sh文件上传到192.168.1.100主机,并在远程主机上执行该脚本。
总结:以上介绍了两种跨服务器执行命令和脚本的方法,可以根据实际需求选择使用。在日常运维工作中,这些功能可以大大提高工作效率。
有云计算,存储需求就上慈云数据:点我进入领取200元优惠券
