web-dev-qa-db-ja.com

sshに別のマシンにbashで書き込み、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

しかし、多くの試行錯誤の後、期待どおりに動作させることはできません。

3
K.Wanter

2つのアクションを分割する必要があります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
2
pa4080