[Edit: после быстрого Googling для инструмента]
Вы могли бы хотеть попробовать multitail - http://www.vanheusden.com/multitail/
Если вы хотите придерживаться ответа Деннис Уильямсона (и я имею Добавили +1 он соответственно), вот пробелы, заполненные для вас.
В вашей оболочке, запустите скрипт (или его ЗШ эквивалента, я взбитое это в Баше, прежде чем я увидел ЗШ тега):
#!/bin/bash
TARGET_DIR="some/logfiles/"
SYMLINK_FILE="SoftwareLog.latest"
SYMLINK_PATH="$TARGET_DIR/$SYMLINK_FILE"
function getLastModifiedFile {
echo $(ls -t "$TARGET_DIR" | grep -v "$SYMLINK_FILE" | head -1)
}
function getCurrentlySymlinkedFile {
if [[ -h $SYMLINK_PATH ]]
then
echo $(ls -l $SYMLINK_PATH | awk '{print $NF}')
else
echo ""
fi
}
symlinkedFile=$(getCurrentlySymlinkedFile)
while true
do
sleep 10
lastModified=$(getLastModifiedFile)
if [[ $symlinkedFile != $lastModified ]]
then
ln -nsf $lastModified $SYMLINK_PATH
symlinkedFile=$lastModified
fi
done
фон, что процесс, используя обычный метод (опять же, я не знаю, ЗШ, так что он может быть разным) ...
./updateSymlink.sh 2>&1 > /dev/null
Тогда tail -F $SYMLINK_PATH
так, что хвост отдаёт изменение символической ссылки или вращения файла.
Это немного запутанно, но я не знаю другого способа сделать это с помощью хвоста. Если кто-то еще знает об утилите, которая обрабатывает это, то пусть они выйдут вперед, потому что мне тоже очень хотелось бы увидеть это - такие приложения, как Jetty по умолчанию, ведут журналы таким образом, и я всегда создаю скрипт symlinking, выполняемый на cron, чтобы компенсировать для этого.
[Изменить: Удалено ошибочное «j» из конца одной из строк.Кроме того, было плохое имя переменной «lastModifiedFile» не существовало, собственно имя, которое вы установили в «LastModified»]
спасибо, мне, возможно, придется это сделать. Я смотрел многопользовательский режим, но, к сожалению, он интерактивен, что означает, что я не могу его вывести в другом месте. Я попробую и посмотрю, где я. Дело в том, что мне бы хотелось, чтобы это выполнялось только при запуске хвоста и выходе из него, и я не уверен, как это сделать. – Axiverse
Спасибо! Это в основном единственное решение, которое мне понравилось (и я много искал для этого). –
Neato. Отредактировано, чтобы исправить ошибку, где она не будет работать в первый раз для меня. (Поскольку getCurrentlySymlinkedFile возвращал пустую строку, а typo'd несуществующий lastModifiedDate также оценивался пустой строкой.) – funroll