Scripts para Cron en linux

Añadiendo un script en cron para que se ejecute cada hora me he dado cuenta de un error que siempre que tengo que utilizar me da problemas.

Los script que se añaden dentro de los directorios:

/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.monthly/
/etc/cron.weekly/

Los scripts o links simbólicos deben ir SIN extensión, es decir no podremos añadir un prueba.sh sino un prueba ya que si no el comando run-parts no arroja el resultado esperado y no se ejecutan los scripts, aquí os dejo la prueba:

root@juanmi:/etc/cron.hourly# ls
prueba.sh
root@juanmi:/etc/cron.hourly# run-parts –test -v /etc/cron.hourly
root@juanmi:/etc/cron.hourly# mv prueba.sh prueba
root@juanmi:/etc/cron.hourly# ls
prueba
root@juanmi:/etc/cron.hourly# run-parts –test -v /etc/cron.hourly
/etc/cron.hourly/prueba

Al realizar este cambio run-parts necesitará que le indiquemos que shell debe usar cada script, para ello debemos poner al principio de cada script la shell, por ejemplo:

#!/bin/bash
#!/bin/sh
#!/bin/perl

Si no lo hacemos nos dará ell siguiente error:

run-parts: failed to exec /etc/cron.hourly/prueba: Exec format error

Con lo cual y como técnica a partir de ahora, dejar de usar extensiones y poner al principio de cada script quien será su interprete.

Saludos

Deja un comentario