Enregistrer “écran” (programme) de sortie pour un fichier
J'ai besoin de sauvegarder l'ensemble de sortie de screen
à un fichier pour vérifier plus tard, tout le contenu.
La raison en est que je suis le vidage de la mémoire flash creux port série, à l'aide de l'écran de 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 aussi essayé d'utiliser bufferfile de l'écran, mais je ne comprends pas comment l'utiliser.
Est-il un moyen facile?
- La mise en production, je suis à l'aide de plusieurs instances de l'écran. Celui dont la sortie j'ai besoin de a ligne comme "pts/10'. Donc que dois-je faire pour obtenir le résultat dans un fichier?
Vous devez vous connecter pour publier un commentaire.
Il y a une option de ligne de commande pour l'enregistrement. La sortie est enregistrée à screenlog.n fichier, où n est un nombre de l'écran.
De l'homme, les pages de l'écran:
find / -name "screen*log"
qui n'a rien trouvé.CTRL
+H
travaillé.screen
supprime le fichier journal à la sortie. Si vous souhaitez enregistrer le fichier, le copier avant de quitterscreen
(le détachement et le rattachement ne doit pas effacer le fichier de log)Vous pouvez également utiliser ctrl-a + H pour enregistrer mémorisations en screenlog.n fichier.
Un plus de Contrôle-a + H pour l'éteindre.
C-H: Début/fin de la journalisation de la fenêtre courante dans le fichier "screenlog.n".
a
+:
et par exemple de typechdir /home/foobar/baz
La réponse choisie 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 écran, c'est ma formule:
1) créer un fichier de config pour chaque processus:
Si vous voulez le faire "à la volée", vous pouvez modifier
logfile
automatiquement.\012
signifie "nouvelle ligne", comme l'aide\n
l'imprime sur le fichier de log: source.2) Démarrez votre commande avec l'option "-c" et "L" flags:
Que c'est. Vous verrez "test.journal" après la première période de floraison:
J'ai trouvé que l'option "-L" est toujours nécessaire, même lors de la "session" est sur le fichier de configuration.
Je ne pouvais pas trouver une liste des le format de l'heure variables (comme %m) utilisée par l'écran. Si vous avez un lien de ces formats, merci de poster ci-dessous.
** En sus **
Dans le cas où vous voulez le faire "à la volée", vous pouvez utiliser ce script:
De l'utiliser, de l'enregistrer (screen.sh) et set +x autorisations:
... et à exécuter ./test.pl et créer un fichier de log dans /var/log/TEST.journal
on-the-fly
le cadre est super utile.screen -r
avec"Unable to open "/tmp/log.conf"
. Aussi, l'écran est de[detached]
état inexistant. Ce qui aurait pu être le problème?pwd
ainsi, donc, ça fonctionne OK.screen
détaché. J'ai l'habitude de lui donner un-c
, un-L
et un-S
puis d'exécuter des commandes à l'intérieur de l'écran de sorte qu'il ne devrait pas mettre fin à n'importe quoi pour le processus de l'enfant, droit?screen bash
. Si un autre processus est en train de tuer votre écran, il doit être répertorié comme "mort", mais pas de disparaître. Je ne suis pas sûr de ce que cela peut-il être.$(pwd)/${name}.screenrc
et le fichier journal que$(pwd)/${name}.screenlog
et qui fonctionne très bien (je pense) même si je vois une erreur court flash - je vais essayer de l'attraper que la prochaine fois que je commence un écran.screen
dontscreenrc
fichier a été déplacé, l'écran se termine. Cette une résiliation au moyen d'un processus 🙁'$name'
devrait probablement être cité entre guillemets doubles:"$name"
pour mac terminal:
détails
script
construit en application de "faire un texte dactylographié de la session de terminal"-a
ajouter au fichier de sortie-t 0
temps entre l'écriture dans le fichier de sortie est de 0 secondes, de sorte out.txt est mise à jour à chaque nouveau charout.txt
est juste le nom de fichier de sortiescreen /dev/ttyUSB0 115200
- commande à partir de la question pour la connexion à des appareils externesvous pouvez ensuite utiliser la queue pour voir que le fichier est mise à jour
La commande suivante fonctionne pour la version écran 4.06.02
De l'homme, la page de l'écran:
Vous pouvez vérifier la version existante de écran à l'aide de écran -version. Vous pouvez télécharger et installer la dernière écran version de https://www.gnu.org/software/screen/.
Ctrl+A, puis Maj+H fonctionne pour moi. Vous pouvez afficher le fichier
screenlog.0
alors que le programme est toujours en cours d'exécution.Le "script" de commande sous Unix devrait faire l'affaire. Il suffit de lancer au début de votre nouvelle console et vous devriez être bon.
Les éléments suivants pourraient être utiles (Testé sur: Linux/Ubuntu 12.04):
À l'aide de la ci-dessus, vous pouvez alors faire toutes les re-directions dont vous avez besoin. Par exemple, pour faire un dump de sortie de votre console tout en économisant votre dossier, vous feriez:
Voici une astuce: l'envelopper dans
sh -c
!Où
2>&1
redirige stderr vers stdout donctee
peut l'attraper et le journal des messages d'erreur.