Как сохранить вывод командной строки в файл В РЕАЛЬНОМ ВРЕМЕНИ
Я сделал bash-скрипт, который предназначен для резервного копирования моего ПК каждую ночь около 4 часов. После завершения резервного копирования моя система возвращается в спящий режим.
В настоящее время я использую | tee -a $LOGFILE
для регистрации всех команд, однако, ведение журнала не в режиме реального времени. Когда мой компьютер переходит в спящий режим, он еще не записал файл, поэтому мне нужно разбудить компьютер, прежде чем я смогу увидеть изменения в резервном хранилище webdav.
Это очень раздражает, так как я не могу быстро выяснить, почему он не поддержал прошлой ночью.
1 ответ
С доступной информацией это немного в темноте, но... если сценарий является тем, который выдает команду, чтобы вернуться в спящий режим (какой?), Проблема может быть в буфере stdio. Так что я буду
подготовить скрипт, который выполняет резервное копирование, но не уходит спать, назовите
bck_script
,подготовить другой скрипт, который отправляет компьютер в спящий режим, вызвать его
sleep_script
Запланируйте третий сценарий с
bck_script | tee $LOGFILE
sync
sleep 30
sleep_script
... где сон, вероятно, переусердствовал, но хорошо --- я действительно не очень доверяю sync
по сети или с "интеллектуальными" (читай странно буферизованными) твердотельными накопителями.