[Chỉnh sửa: sau một googling nhanh chóng cho một công cụ]
Bạn có thể muốn thử ra multitail - http://www.vanheusden.com/multitail/
Nếu bạn muốn gắn bó với câu trả lời Dennis Williamson (và tôi đã +1 anh ta cho phù hợp) ở đây là những khoảng trống điền vào cho bạn.
Trong shell của bạn, hãy chạy đoạn mã sau (hoặc nó zsh tương đương, tôi quất này lên trong bash trước khi tôi thấy thẻ zsh):
#!/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
Bối cảnh đó quá trình sử dụng các phương pháp thông thường (một lần nữa, tôi không biết zsh, vì vậy nó có thể khác nhau) ...
./updateSymlink.sh 2>&1 > /dev/null
Sau đó tail -F $SYMLINK_PATH
để đuôi trao sự thay đổi của liên kết tượng trưng hay một vòng quay của tập tin.
Điều này hơi phức tạp, nhưng tôi không biết cách khác để làm điều này với đuôi. Nếu bất cứ ai biết về một tiện ích xử lý vấn đề này, thì hãy để họ tiến lên vì tôi cũng muốn tự mình xem - các ứng dụng như Jetty theo mặc định sẽ ghi nhật ký theo cách này và tôi luôn viết kịch bản lệnh symlinking chạy trên cron để bù cho nó.
[Chỉnh sửa: Đã xóa sai 'j' từ cuối một trong các dòng.Bạn cũng có một biến tên xấu "lastModifiedFile" không tồn tại, tên riêng mà bạn thiết lập là "lastModified"]
cảm ơn, tôi có thể phải làm điều đó. Tôi nhìn vào multitail, nhưng tiếc là nó tương tác chỉ có nghĩa là tôi không thể ống nó đầu ra ở nơi khác. Tôi sẽ thử nó và xem nơi tôi nhận được. Điều này là tôi muốn điều này chỉ chạy khi đuôi đang chạy và thoát ra khi thoát ra, và tôi không chắc chắn làm thế nào để làm điều đó. – Axiverse
Cảm ơn! Về cơ bản, đây là giải pháp duy nhất tôi thích (và tôi đã tìm kiếm rất nhiều về điều này). –
Neato. Đã chỉnh sửa để sửa lỗi mà nó không hoạt động lần đầu tiên đối với tôi. (Bởi vì getCurrentlySymlinkedFile đã trả về một chuỗi rỗng, và typo'd không tồn tại lastModifiedDate cũng được đánh giá thành một chuỗi trống.) – funroll