Создание сценария bash
, который запускает screen
, было решением для меня в аналогичном случае.Вы можете использовать screen
для создания сеанса экрана и внутри, создавать несколько пронумерованных окон и выполнять команды для них.
Я запускаю сценарий в кластере с 8 компьютерами, поэтому я ssh
вкаждого из них и выполните команду htop
, чтобы проверить, не использует ли это никто.
Флаг -S
называет сеанс на экране, -p
перечисляет окно сеанса, а -X stuff
запускает команду,Обратите внимание, что для запуска команды "
необходима новая строка для имитации возврата каретки (Enter)
Вот скрипт
#!/bin/bash
screen -d -m -S dracos
# window 0 is created by default, command ssh is executed " needed in new line to simulate pressing Enter
screen -S dracos -p 0 -X stuff "ssh draco1
"
screen -S dracos -p 0 -X stuff "htop
"
for n in {2..8}; do
# create now window using `screen` command
screen -S dracos -X screen $n
#ssh to each draco
screen -S dracos -p $n -X stuff "ssh draco$n
"
#run htop in each draco
screen -S dracos -p $n -X stuff "htop
"
screen -S dracos -p $n -X stuff "<your_new_command_here>
"
done
Если вы хотите запустить команды вВ другом порядке вы можете поставить строку ниже после for
screen -S dracos -p $n -X stuff "<your_new_command_here>