Necesito guardar toda la salida de Screen en un archivo para verificar luego todo el contenido.
La razón es que estoy volcando una memoria flash a través de un puerto serie, usando Screen para interactuar con ella. Me gustaría guardarlo en un archivo para verificar la estructura de la memoria.
He intentado:
$: screen /dev/ttyUSB0 115200 >> foo.txt
$: screen /dev/ttyUSB0 115200 | tee foo.txt
Y también he tratado de usar el archivo buffer desde la pantalla, pero no entiendo cómo usarlo.
hay una manera fácil?
logging
buffer
dump
gnu-screen
Edoardoo
fuente
fuente
Respuestas:
Hay una opción de línea de comando para iniciar sesión. La salida se guarda en el archivo screenlog.n, donde n es un número de la pantalla. Desde las páginas man de la pantalla:
fuente
find / -name "screen*log"
que no encontró nada.También puede usar Control-a + H para guardar registros en el archivo screenlog.n. Un Control-a + H más para apagar.
Ca H: Comienza / finaliza el registro de la ventana actual en el archivo "screenlog.n".
fuente
a
+:
y escriba, por ejemplochdir /home/foobar/baz
La respuesta seleccionada no funciona bastante bien con varias sesiones y no permite especificar un nombre de archivo de registro personalizado.
Para varias sesiones de pantalla, esta es mi fórmula:
Cree un archivo de configuración para cada proceso:
Si desea hacerlo "sobre la marcha", puede cambiarlo
logfile
automáticamente.\012
significa "nueva línea", ya que el uso\n
lo imprimirá en el archivo de registro: fuente .Comience su comando con las banderas "-c" y "-L":
Eso es. Verá "test.log" después de la primera descarga:
Descubrí que "-L" todavía es necesario incluso cuando "iniciar sesión" está en el archivo de configuración.
No pude encontrar una lista de las variables de formato de tiempo (como% m) utilizadas por la pantalla. Si tiene un enlace de esos formatos, publíquelo a continuación.
Extra
En caso de que quiera hacerlo "sobre la marcha", puede usar este script:
Para usarlo, guárdelo (screen.sh) y establezca permisos + x:
... y ejecutará ./test.pl y creará un archivo de registro en /var/log/TEST.log
fuente
on-the-fly
parte es súper útil.screen -r
con"Unable to open "/tmp/log.conf"
. Además, la pantalla pasó de[detached]
estado a inexistente. ¿Cuál pudo haber sido el problema?screen bash
. Si algún otro proceso está matando su pantalla, debería aparecer como 'muerto', pero no desaparecerá. No estoy seguro de qué puede ser.El siguiente comando funciona para Screen versión 4.06.02:
Desde la página de manual de Screen :
Puede verificar la versión existente de Screen usando screen -version . Puede descargar e instalar la última versión de la pantalla desde https://www.gnu.org/software/screen/ .
fuente
Para el terminal Mac:
Detalles
script
: Una aplicación integrada para "hacer un mecanografiado de la sesión de terminal"-a
: Añadir al archivo de salida-t 0
: El tiempo entre la escritura en el archivo de salida es de 0 segundos, por lo que out.txt se actualiza para cada nuevo carácterout.txt
: Es solo el nombre del archivo de salidascreen /dev/ttyUSB0 115200
: Comando de la pregunta para conectarse a un dispositivo externoLuego puede usar tail para ver que el archivo se está actualizando.
fuente
Ctrl+AEntonces Shift+Hfunciona para mí. Puede ver el archivo
screenlog.0
mientras el programa aún se está ejecutando.fuente
El comando 'script' en Unix debería hacer el truco. Simplemente ejecútelo al comienzo de su nueva consola y debería ser bueno.
fuente
Aquí hay un truco: ¡envuélvelo
sh -c
!Donde
2>&1
redirige stderr a stdout para quetee
pueda capturar y registrar mensajes de error.fuente
Lo siguiente podría ser útil (probado en: Linux / Ubuntu 12.04 (Precise Pangolin)):
Usando lo anterior, puede hacer todas las redirecciones que necesita. Por ejemplo, para volcar la salida en su consola mientras la guarda en su archivo, haría:
fuente
Una respuesta diferente si necesita guardar la salida de su búfer de desplazamiento completo desde una pantalla que ya se está ejecutando activamente:
Esto guardará todo tu búfer en / tmp / screen-exchange
fuente
El registro de pantalla existente se puede guardar mediante:
Ctrl+A : hardcopy -h filename
fuente