Je dois enregistrer toute la sortie de Screen dans un fichier pour vérifier plus tard tout le contenu.
La raison est que je vide une mémoire flash via un port série, en utilisant Screen pour l'interface avec elle. Je voudrais l'enregistrer dans un fichier pour vérifier la structure de la mémoire.
J'ai essayé:
$: screen /dev/ttyUSB0 115200 >> foo.txt
$: screen /dev/ttyUSB0 115200 | tee foo.txt
Et j'ai également essayé d'utiliser bufferfile à partir de l'écran, mais je ne comprends pas comment l'utiliser.
Y a-t-il un moyen simple?
logging
buffer
dump
gnu-screen
Edoardoo
la source
la source
Réponses:
Il existe une option de ligne de commande pour la journalisation. La sortie est enregistrée dans le fichier screenlog.n, où n est un numéro de l'écran. À partir des pages de manuel de l'écran:
la source
find / -name "screen*log"
qui n'a rien trouvé.Vous pouvez également utiliser Control-a + H pour enregistrer les enregistrements dans le fichier screenlog.n. Encore un Control-a + H à désactiver.
Ca H: Commence / termine l'enregistrement de la fenêtre courante dans le fichier "screenlog.n".
la source
a
+:
et tapez par exemplechdir /home/foobar/baz
La réponse sélectionnée ne fonctionne pas très bien avec plusieurs sessions et ne permet pas de spécifier un nom de fichier journal personnalisé.
Pour plusieurs sessions d'écran, voici ma formule:
Créez un fichier de configuration pour chaque processus:
Si vous voulez le faire "à la volée", vous pouvez changer
logfile
automatiquement.\012
signifie "nouvelle ligne", car utiliser\n
l'imprimera sur le fichier journal: source .Démarrez votre commande avec les indicateurs "-c" et "-L":
C'est tout. Vous verrez "test.log" après le premier vidage:
J'ai trouvé que "-L" est toujours requis même lorsque "log on" est sur le fichier de configuration.
Je n'ai pas trouvé de liste des variables de format d'heure (comme% m) utilisées par screen. Si vous avez un lien de ces formats, veuillez le poster ci-dessous.
Supplémentaire
Si vous souhaitez le faire "à la volée", vous pouvez utiliser ce script:
Pour l'utiliser, enregistrez-le (screen.sh) et définissez les autorisations + x:
... et exécutera ./test.pl et créera un fichier journal dans /var/log/TEST.log
la source
on-the-fly
partie est super utile.screen -r
avec"Unable to open "/tmp/log.conf"
. En outre, l'écran est passé de l'[detached]
état à inexistant. Quel aurait pu être le problème?screen bash
. Si un autre processus tue votre écran, il doit être répertorié comme «mort», mais pas de disparition. Je ne sais pas ce que cela peut être.La commande suivante fonctionne pour Screen version 4.06.02:
Depuis la page de manuel de Screen :
Vous pouvez vérifier la version existante de Screen à l' aide de screen -version . Vous pouvez télécharger et installer la dernière version de Screen à partir de https://www.gnu.org/software/screen/ .
la source
Pour le terminal Mac:
Détails
script
: Une application intégrée pour "faire un dactylographié de session de terminal"-a
: Ajouter au fichier de sortie-t 0
: Le temps entre l'écriture dans le fichier de sortie est de 0 seconde, donc out.txt est mis à jour pour chaque nouveau caractèreout.txt
: Est juste le nom du fichier de sortiescreen /dev/ttyUSB0 115200
: Commande à partir de la question pour la connexion à un appareil externeVous pouvez ensuite utiliser tail pour voir que le fichier est en cours de mise à jour.
la source
Ctrl+AShift+Htravaille alors pour moi. Vous pouvez afficher le fichier
screenlog.0
pendant que le programme est toujours en cours d'exécution.la source
La commande 'script' sous Unix devrait faire l'affaire. Exécutez-le simplement au début de votre nouvelle console et vous devriez être bon.
la source
Voici un truc: enveloppez-le
sh -c
!Où
2>&1
redirige stderr vers stdout afin detee
pouvoir intercepter et enregistrer les messages d'erreur.la source
Ce qui suit peut être utile (testé sur: Linux / Ubuntu 12.04 (Precise Pangolin)):
En utilisant ce qui précède, vous pouvez ensuite effectuer toutes les réorientations dont vous avez besoin. Par exemple, pour vider la sortie sur votre console tout en enregistrant dans votre fichier, vous feriez:
la source
Une réponse différente si vous devez enregistrer la sortie de l'ensemble de votre tampon de défilement à partir d'un écran déjà actif:
Cela enregistrera tout votre tampon dans / tmp / screen-exchange
la source
Le journal d'écran existant peut être enregistré par:
Ctrl+A : copie papier -h nom de fichier
la source