[Editar: después de un google rápido para una herramienta]
Es posible que desee probar multitail - http://www.vanheusden.com/multitail/
Si desea seguir con la respuesta de Dennis Williamson (y he hecho +1 él en consecuencia) aquí están los espacios en blanco completados para usted.
En su shell, ejecute el siguiente script (o su equivalente zsh, Azoté esto en bash antes de ver la etiqueta 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
Antecedentes que procesan utilizando el método normal (de nuevo, no se sabe zsh, por lo que podría ser diferente) ...
./updateSymlink.sh 2>&1 > /dev/null
Entonces tail -F $SYMLINK_PATH
de modo que la cola manos el cambio de la relación simbólica o una rotación del archivo.
Esto es un poco intrincado, pero no sé de otra manera de hacer esto con la cola. Si alguien más conoce una utilidad que maneja esto, déjelos dar un paso adelante porque me encantaría verlo yo también - aplicaciones como Jetty de manera predeterminada hacen registros de esta manera y siempre escribo un script de enlace simbólico ejecutado en un cron para compensar para ello.
[Editar: Se eliminó una 'j' errónea del final de una de las líneas.También tuvo un mal nombre de la variable "lastModifiedFile" no existía, el nombre propio que ajuste es "lastModified"]
gracias, podría tener que hacer eso. Miré en multitail, pero desafortunadamente solo es interactivo, lo que significa que no puedo canalizar su salida a otra parte. Lo intentaré y veré dónde me llega. La cuestión es que me gustaría que esto solo se ejecute cuando la cola se está ejecutando y salir cuando eso termine, y no estoy seguro de cómo hacerlo. – Axiverse
¡Gracias! Esta es básicamente la única solución que me gusta (y busqué mucho para esto). –
Neato. Editado para corregir un error que no funcionaría la primera vez para mí. (Debido a que getCurrentlySymlinkedFile devolvía una cadena vacía, y el error tipográfico era inexistente, lastModifiedDate también se evaluaba en una cadena vacía.) – funroll