1

У меня есть приложение Python на удаленном сервере, которое мне нужно для отладки, когда я запускаю приложение локально, оно печатает некоторую отладочную информацию (включая отслеживание Python), которую мне нужно отслеживать.

Я пытаюсь перенаправить весь вывод программы в файл, чтобы я мог контролировать удаленный вывод, используя tail -F, здесь я нашел следующую команду для перенаправления выводов:

ssh root@myserver 'nohup python /root/python/run_dev_server.py &>> /var/log/myapp.log &'

Это дает мне почти то, что я хочу, информацию о входе в систему и отслеживание Python, но я не получаю никакой информации, отображаемой с использованием печати из Python, которая мне нужна.

поэтому я также попробовал эту команду:

ssh root@myserver 'nohup python /root/python/run_dev_server.py 2>&1 >> /var/log/myapp.log &'

это регистрирует вывод программы из печати, а также информацию о регистрации, но все трассировки отправляются на мой локальный терминал, где я выполняю сценарий, и мой сценарий застревает в ожидании любого исключения в удаленной программе.

Есть ли способ, которым я могу захватить всю информацию, созданную приложением, не останавливая мой сценарий?

Заранее спасибо за любое предложение.

2 ответа2

1

У тебя почти было это ... Однако все три канала необходимо перенаправить на фоновый процесс через ssh. Std In, Std Out, Std Err. Таким образом:

nohup /root/python/run_dev_server.py &>/var/log/my.app.log </dev/null &

примечание: &> эквивалентно перенаправлению std out и std error одновременно. Другими словами, это сокращенная версия '>> /var/log/myapp.log 2> & 1'

0

Пытаться:

$ ssh  -t root@192.168.113.67 "tail -f /var/log/messages" | tee -a mss.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .