作为IT工程师,在Linux系统运维(SysOps)中,SSH是执行远程脚本的核心工具。以下是几种高效使用SSH执行远程脚本的方法:
ssh username@remote_host "command_to_execute"
示例:
ssh admin@192.168.1.100 "ls -l /var/log"
ssh username@remote_host 'bash -s' < local_script.sh
cat local_script.sh | ssh username@remote_host 'bash'
ssh username@remote_host "/path/to/remote_script.sh"
ssh username@remote_host "/path/to/script.sh arg1 arg2"
ssh username@remote_host "command1; command2; command3"
或者使用heredoc语法:
ssh -T username@remote_host <<'EOF'
command1
command2
command3
EOF
ssh -i /path/to/private_key username@remote_host "command"
ssh -f username@remote_host "nohup /path/to/script.sh > /dev/null 2>&1 &"
在~/.ssh/config
中添加:
Host myserver
HostName remote_host
User username
IdentityFile ~/.ssh/id_rsa
Port 22
然后可以简化为:
ssh myserver "command"
使用GNU Parallel或xargs:
echo -e "server1\nserver2\nserver3" | parallel -j 10 ssh {} "command"
-t
选项强制伪终端分配(交互式脚本)ssh -L 8080:localhost:80 username@remote_host "command"
ssh -J jumpuser@jumpserver username@remote_host "command"
if ssh username@remote_host "command"; then
echo "Success"
else
echo "Failed"
fi
这些方法涵盖了大多数远程脚本执行场景,根据具体需求选择最适合的方式。