====== Salida de un script ======
Para coger la salida de un script, se hace con el signo flecha (>) y doble flecha (>>)
- > Crea el fichero de nuevo. Si existe, lo borra
- >> Añade al final del fichero la salida
Ejemplo:
# ls
fichero1.txt fichero2.txt fichero3.txt fichero4.txt
Lo redirejimos:
# ls > ls.txt
#
# cat ls.txt
fichero1.txt
fichero2.txt
fichero3.txt
fichero4.txt
ls.txt
Hay otra salida que es el error. Es decir, si hacemos ls de un fichero que no existe nos dará error:
# ls jur.txt
ls: cannot access 'jur.txt': No such file or directory
Si hacemos la redirección, nos aparece en pantalla y no lo graba en el fichero. El fichero ls.log está vacio:
# ls jur.txt > ls.log
ls: cannot access 'jur.txt': No such file or directory
# cat ls.log
#
La **salida error** (stderr) es la 2 y la **salida estándar** (stdout) es la 1. Podemos redirigir la salida de error a otro fichero:
# ls jur.txt > ls.log 2>ls_error.log
#
# cat ls_error.log
ls: cannot access 'jur.txt': No such file or directory
Para juntar todo en el mismo log:
# ls jur.txt > ls.log 2>&1
#
# cat ls.log
ls: cannot access 'jur.txt': No such file or directory
**Nombre de Ficheros**
Una buena idea es poner fecha en las líneas de código o en un los nombres. Con date:
date +%Y%m%d_%H%M%S
20210222_101819
====== Crontab ======
El crontab usa path relativos, variables de entornos propias y a veces no sabemos porque falla. Es interesante redirigir toda la salida a un fichero de log al principio para controlarlo:
crontab -l
*/1 * * * * script.sh >> /home/usuario/crontab.log 2>&1