Le résultat de cette méthode ressemble beaucoup à celui utilisant la commande screen et présenté dans un précédent billet
(La différence étant qu’ici avec script, le 2ème utilisateur ne peut pas agir)

Cette technique peut être utilisée pour montrer à un collaborateur ou un client distant ce qu’on est en train de bidouiller sur le serveur..

  • Création d’un fichier fifo
[yannick@PiouPiou ~] mkfifo /tmp/sortieScript  
[yannick@PiouPiou ~] ll /tmp/sortieScript  
prw-r--r-- 1 yannick yannick 0 Jul 6 02:59 /tmp/sortieScript  
[yannick@PiouPiou ~]

mkfifo - Create named pipes (FIFOs) with the given NAMEs.
A FIFO special file (a named pipe) is similar to a pipe, except that it is accessed as part of the file system.
[…] the FIFO special file has no contents on the file system

  • Lecture du fichier par l’utilisateur distant
[yannick@autre ~] cat /tmp/sortieScript

Attention: tant que le fichier ne sera pas “caté”, il ne pourra pas être utilisé par la commande suivante…

When a process tries to write to a FIFO that is not opened for read on the other side, the process is sent a SIGPIPE signal.

  • Faire sortir script dans ce fichier
[yannick@PiouPiou ~] script -f /tmp/sortieScript  
Script started, file is /tmp/sortieScript

A partir de maintenant tout ce qui est tappé est visible par la personne en train de “caté” le fichier sortieScript y compris les sessions interractives comme vi…

Arrêter de logguer dans le fichier par un CTRL-D

-f Flush output after each write. This is nice for telecooperation […]

  • Petite démo

script-fmkfifo-juillet2006