Подключение к программе просмотра удаленного рабочего стола после перезагрузки

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

AFAIK, tail -f использует система inotify, так что это не поможет.Но если у вас есть рабочее решение с tail -f , используйте tail --follow = name (или tail -F ), если это поддерживается вашей версией. of tail (POSIX tail не поддерживает это). tail затем будет отслеживать файл, идентифицированный его именем файла. Вот отрывок из справочной страницы:

С --follow (-f) хвост по умолчанию следует за файловым дескриптором, что означает, что даже если хвостовой файл переименован, хвост будет - продолжить, чтобы отследить его конец. Такое поведение по умолчанию нежелательно, если вы действительно хотите, чтобы отслеживал фактическое имя файла, а не дескриптор файла (например, ротацию журнала). В этом случае используйте --follow = name. Это заставляет tail отслеживать именованный файл таким образом, чтобы его можно было переименовать, удалить и создать.

[update]

Пример использования:

tail -n0 -F my_file.log \
| while read -r log_line; do
    do_something_with "$log_line"
done

Из-за конвейера цикл while выполняется в под- процесс, который может вызвать проблемы, если вы захотите изменить переменные вне цикла. Если вы используете bash , вы можете использовать этот альтернативный синтаксис, который не имеет этого нежелательного эффекта (но менее читабелен):

while read -r log_line; do
    do_something_with "$log_line"
done < <(tail -n0 -F my_file.log)
2
15.09.2016, 11:02
0 ответов

Теги

Похожие вопросы