Как написать в 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

, но после многих проб и ошибок я все еще не могу заставить его работать как положено.

3
задан 28 June 2018 в 13:30

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
3
ответ дан 28 June 2018 в 13:30

Другие вопросы по тегам:

Похожие вопросы: