ssh 一次执行多条命令(后台运行)


1. 背景

有时我们只需要远程执行一次任务然后就关闭,而不需要长时间 ssh 登录到远程服务器。同时一次任务可能需要执行多条命令,那么我们该如何做呢?

2. 命令

在SSH(Secure Shell)中,一次性执行多条命令可以通过几种方式实现:

2.1 命令分隔符

在 SSH 命令后面可以直接跟上多条命令,通过分号 ; 或逻辑运算符(如 && 和 ||)分隔。下面是一些例子:

   ssh user@hostname 'command1; command2; command3'

或者

   ssh user@hostname 'command1 && command2' # 如果command1成功则执行command2
   ssh user@hostname 'command1 || command2' # 如果command1失败则执行command2

2.2 多行脚本

将多条命令写入一个临时脚本文件,然后通过 SSH 在远程主机上执行这个脚本:

cat << EOF > script.sh
command1
command2
command3
EOF
chmod +x script.sh
ssh user@hostname './script.sh'

或者直接在一行内构造脚本并通过bash执行:

   ssh user@hostname 'bash -s' < script.sh

其中script.sh是你本地创建的包含多条命令的脚本文件。

2.3 单行脚本

使用引号包含多条命令:

   ssh user@hostname "command1 && command2 && command3"

3. SSH 任务后台运行

如果 SSH 执行命令后,命令阻塞在前台,那么需要用 /dev/null 结合 & 让进程后台运行:

ssh root@{ip} "mkdir /root/tmp && sh /root/start_task.sh > /dev/null 2>&1 &"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SmallerFL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值