Допустим, у вас есть сервер, в котором вам нужен скрипт, который создаст файл резервного копирования, который займет 40 минут, установите некоторое программное обеспечение в течение 15 минут, и, наконец, во время всего этого происходит, вам необходимо исследовать файлы журнала.
Первый подход будет просто открыть новые оконечные окна для каждой задачи и создать новое соединение SSH на каждом. Хотя это работает нормально, большая проблема заключается в том, что если ваши соединения перерываются, процессы прекращаются. Второй подход может быть запустить первые два на заднем плане, а затем изучить ваши журналы
nohup sh backup_db.sh &>/dev/null & nohup sh install.sh &>/dev/null & tail /var/logs/my_logs
Это удостоверится, что даже если вы подключите перерывы, процессы будут продолжать работать, но у вас либо нет выходных данных, либо должны быть проверить некоторые журналы где-то, чтобы посмотреть, если как заканчиваются процессы.
Экран приходит к спасению. Экран в основном создает терминал в терминале. Когда вы вводите пустой подсказкой экран
, Затем вы увидите еще одну пустую строку, как у вас раньше, но эта новая подсказка отличается: оно не связано с вашим сеансом и подключением, а к процессу экрана в ОС.
Что это значит, что если вы можете сейчас ввести штерива backup_db.sh
, начните видеть сообщения из своего сценария, рассказывая вам о ходе резервной копии, а затем нажмите Ctrl + Ctrl + D
(Отделить), и все снова будет спокойно. Вы бы вернулись в подсказку, где вы набрали экран в первую очередь.
Вы закрываете свой компьютер, пойдете домой, поужинать, выпивайте пиво, SSH с вашего ноутбука и прикрепите к экрану с экран -R
, и вы вернетесь к сообщениям журнала, отправленные сценарием резервного копирования, который работает все это время для вас.
Вернуться к оригинальной проблеме. То, как я справился с задачами под рукой, будет следующим:
# Start screen > screen # Run backup scrip > sh backup_db.sh # Create a new screen # ctrl + a ctrl + c # Install software > sh install.sh # Detach from screen # ctrl + a ctrl + d
И, наконец, я буду свободен, чтобы расследовать эту странную ошибку в журналах. Через некоторое время, когда я хочу оформить о проверке процессов, я бы просто вводил Экран -R
Re приложить и Ctrl + Ctrl + N
Велосипед через открытые экраны.
Оригинал: «https://dev.to/fceruti/juggling-server-tasks-with-screen-4id6»