La salida del comando al archivo en crontab no funciona

La salida del comando al archivo en crontab no funciona

Tengo un problema para mostrar el resultado de un comando en cli y redirigirlo también a un archivo en mi Raspberry Pi 4 con Raspbian Buster.

Empiezo sudo crontab -e.

Estas son mis declaraciones base:

0 */5 * * * sudo /home/pi/linux_scripts/block/blockips.sh > /var/log/blockips.log 2>&1 && sudo ufw status verbose > /var/log/ufw-status.log

La primera parte funciona, pero la segunda no se debe a un error de permiso al escribir en ufw-status.log. Mensaje de error:-bash: /var/log/blockips.log: Keine Berechtigung

Entonces leí varios hilos y probé esto:

0 */5 * * * sudo /home/pi/linux_scripts/block/blockips.sh > /var/log/blockips.log 2>&1 && sudo ufw status verbose | sudo tee /var/log/ufw-status.log

Eso no funciona. El archivo todavía no se modifica después de varios días. Pero si solo lo intento sudo ufw status verbose | sudo tee /var/log/ufw-status.logen la línea de comando (no en crontab), funciona.

¿El error está en crontab o depende de la primera declaración?

¿Me puedes ayudar?

Gracias.

Respuesta1

Usaste sudo crontab -e, que edita el crontab raíz. Como resultado, no necesita (ni debe usar) sudoel archivo dentro del crontabmismo porque los comandos ya se están ejecutando como root.

Por lo tanto, su comando crontab se puede simplificar a esto

0 */5 * * * /home/pi/linux_scripts/block/blockips.sh > /var/log/blockips.log 2>&1 && ufw status verbose > /var/log/ufw-status.log

No es una buena práctica ejecutar scripts de usuario (es decir, aquellos en el directorio de inicio de un usuario) como root, pero si es el único usuario en la máquina, es aceptable. (La razón es que su usuario normal puede cambiar el script para hacer cualquier cosa, y root lo ejecutará amablemente).

Si recibe errores, el primer lugar a buscar es el correo electrónico local donde cronenvía los errores. Puede usar el comando mailo mailx(como root, ya que es de un crontab raíz), oengañary solo less /var/mail/rootpara ver el archivo de correo sin formato.

información relacionada