Cualquier forma de transmitir un archivo en Linux

Cualquier forma de transmitir un archivo en Linux

Tengo una salida de terminal que me gustaría que estuviera disponible para varios usuarios.

actualmente algo como:

command > /var/logs

para la entrada, y:

watch tail -30 /var/logs

para los terminales de entrada.

sin embargo, esto no es deseable porque solo ve las encuestas en lugar de generarlas cuando hay actualizaciones y la cola no permite el desplazamiento hacia atrás.

Respuesta1

Dos problemas que planteas:

ver solo encuestas en lugar de mostrarlas cuando haya actualizaciones

tail -fno encuesta. A partir de la versión 7.5 de GNU Coreutils, tail -fse utilizará la inotifyinterfaz del kernel de Linux para recibir señales del kernel que indiquen que el archivo ha sido modificado. Si no usa GNU Coreutils, o usa una versión anterior a 7.5 por algún motivo, realizará una encuesta una vez por segundo. Probablemente también realice encuestas en sistemas operativos POSIX que no sean Linux (BSD, Solaris, etc.), pero habría que investigarlo caso por caso: algunos de estos sistemas operativos usan GNU Coreutils pero el kernel no es compatible inotify; algunos de ellos no utilizan GNU Coreutils para implementar tailnada.

la cola no permite desplazarse hacia atrás

El lesscomando está diseñado específicamente para almacenar datos desde stdin(por ejemplo, desde el tailcomando) y permitirle desplazarse hacia adelante y hacia atrás. El búfer no es ilimitado, pero puede usar opciones de línea de comando para aumentar o disminuir el búfer, así como modificar la longitud del búfer para el desplazamiento hacia atrás y hacia adelante.

Entonces algo como, tal vez,

tail -f /var/logs | less

le permitiría mantener un búfer de desplazamiento hacia atrás de los registros sin sondear ( tailsimplemente permanece inactivo sin consumir CPU hasta que el núcleo le envía una señal informándole que el archivo ha sido modificado).

Si necesita que varios usuarios puedan leer desde el mismo búfer, puede ejecutarlo tail -f /var/logsdentro de una screensesión. Mi respuesta original no tuvo en cuenta que desea ejecutar esto para que varios usuarios puedan ver los mismos datos de registro al mismo tiempo. @Let_Me_Be lo mencionó screeny luego se me ocurrió que probablemente esa sea su mejor opción.

Entonces, juntando mi solución y la solución de @Let_Me_Be:

screen -mdS logview -- tail -f /var/logs

Advertencia: no probado. Edítelo si está mal. Pero creo que estamos cerca de encontrar una solución adecuada.

Ahora sólo falta tener screenen modo multiusuario. Esto es un poco complicado, así que dejaréesteEl sitio habla por sí solo. Lo esencial es que debes agregarlo multiuser ona tu ~/.screenrcarchivo. Vea también elProblemas comunesen la parte inferior de ese enlace.

Ahora, para que los usuarios vean el registro:

screen -rS logview

Deberías hacerlo.

Respuesta2

Quieres un programa como screeno tmux.

información relacionada