Как сохранить вывод командной строки в файл В РЕАЛЬНОМ ВРЕМЕНИ

Я сделал bash-скрипт, который предназначен для резервного копирования моего ПК каждую ночь около 4 часов. После завершения резервного копирования моя система возвращается в спящий режим.

В настоящее время я использую | tee -a $LOGFILE для регистрации всех команд, однако, ведение журнала не в режиме реального времени. Когда мой компьютер переходит в спящий режим, он еще не записал файл, поэтому мне нужно разбудить компьютер, прежде чем я смогу увидеть изменения в резервном хранилище webdav.

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

1 ответ

Решение

С доступной информацией это немного в темноте, но... если сценарий является тем, который выдает команду, чтобы вернуться в спящий режим (какой?), Проблема может быть в буфере stdio. Так что я буду

  1. подготовить скрипт, который выполняет резервное копирование, но не уходит спать, назовите bck_script,

  2. подготовить другой скрипт, который отправляет компьютер в спящий режим, вызвать его sleep_script

Запланируйте третий сценарий с

bck_script | tee $LOGFILE
sync
sleep 30
sleep_script 

... где сон, вероятно, переусердствовал, но хорошо --- я действительно не очень доверяю sync по сети или с "интеллектуальными" (читай странно буферизованными) твердотельными накопителями.

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