web-dev-qa-db-fra.com

Comment sauvegarder les entrées live log bash dans un fichier?

Lorsque j'enseigne une classe, certains étudiants ont des difficultés à suivre les commandes de la CLI et souhaitent revenir en arrière pour pouvoir répéter les étapes à leur propre rythme. Je voudrais donc enregistrer toutes mes entrées en temps réel dans un fichier HTML ou quelque chose de similaire, que je pourrais utiliser via un serveur Web. De cette façon, les étudiants pourraient simplement accéder à http://example.com/log#end et voir toujours les dernières entrées.

Je connais le mode multi-utilisateur de screen et je l’ai déjà utilisé pour partager des sessions. Cependant, je dois désactiver l'accès en écriture des étudiants et, malheureusement, ils ne peuvent pas faire défiler vers le haut, si je le fais.

J'ai aussi jeté un œil à script, mais elle génère un résultat terrible qui, même filtré par col -bp < logfile >> output.html, est illisible. En outre, il enregistre également la sortie, ce qui complique les choses et ne vide que le fichier journal à des intervalles imprévisibles.

.bash_history peut être utilisé, mais il est uniquement sauvegardé dans le fichier à la fin de la session.

Des idées?

5
Lars

Utilisez la commande intégrée history:

history -w hist.txt

va sauvegarder l'historique actuel dans le fichier hist.txt.

Si vous avez des permissions d'écriture dans le répertoire approprié, vous pouvez faire quelque chose comme:

history -w /var/www/html/latest_history.txt

Vos étudiants pourront ensuite y accéder via un navigateur: http: //teachers.ip.address/latest_history.txt

5
sмurf