Sunday, August 12, 2012

Hacer un logs de todas las acciones realizadas en la línea de comando, terminal, consola.


A menudo me pasa que estoy haciendo alguna instalación  de un programa y quiero replicarlo en la computadora de algún compañer@ de clases, quizás por no tener la misma estructura de directorios, permisología de algunos archivos, o los archivos que leia el script en la computadora del compañer@ estaban vacíos. Pasan errores de capa 8 muy a menudo y supones que son tan tontos que no deberían pasar pero pasan.. :-|

El comando script permite grabar todo lo que ejecuten en la consola (terminal, línea de comando o como lo digan). Entonces cuando te digan que lo ejecutan y no funciona, y  no es algún@ compañer@ que tienes cerca para ver en su computadora, y no imaginas pedir ssh (por alguna razón).  puedes comentarle que ejecute el comando script y luego reproduzca los pasos que realizó para la instalación, ejecución de algún script, o lo que necesites que reproduzca.

user@hostname~ $ script archivodondeguardarlog.txt
user@hostname~ $ls
COPYING         changelogs           remoteExperimentServer.jar  weka.ico
README          data       
user@hostname~ $chroot dir
user@hostname~ $ cd weka

Para finalizar  el comando script
user@hostname~ $ exit

y luego que te envíe el archivo,  archivodondeguardarlog.txt
este archivo si lo revisas con un editor de texto vim, gedit, o kate, tiene caracteres especiales. Para visualizarlo de la misma forma que aparecieron en la terminal, se deben visualizar con cat.

 user@hostname~ $ cat archivodondeguardarlog.txt

Para ejecutar lo que contiene el script, Ojo ojito ojo.. (alguna vez tuve un profesor en la universidad que decía esa frase cuando teníamos que estar pendiente de algo.) En su ejecución deben tener creadas todas las variables, y directorios que estan mencionados en el script:

 user@hostname~ $ script -c archivodondeguardarlog.txt

foto: Yoda, que la fuerza te acompañe..