如何在 bash 中写入 ssh 到不同的机器并创建 tmux 会话然后在其中运行一些命令

如何在 bash 中写入 ssh 到不同的机器并创建 tmux 会话然后在其中运行一些命令

基本上我想写一些脚本

#!/bin/bash
for idx in 1 2 3 4 5 6
do
        ssh machine$idx tmux new-session -d -s "myTempSession$idx" python run.py
done

它可以在每台机器上分别执行以下操作:

ssh machine$idx 

tmux new-session -d -s "myTempSession$idx"

python run.py

但经过多次反复尝试,我仍然无法让它按预期工作。

答案1

您应该将两个操作分为 1) 创建一个tmux分离会话;2) 向其发送命令/键。也可以添加-n选项是个好主意...所以你的脚本应该是这样的:

#!/bin/bash
for idx in 1 2 3 4 5 6
do
    ssh -n machine$idx 'tmux new-session -d -s "myTempSession$idx"; tmux send-keys -t "myTempSession$idx" "python run.py" ENTER'
done

相关内容