Buenas, Tengo un cronjob que ejecuta un cutre-backup en un HD externo por USB. A saber, el código del script es el siguiente: #!/bin/bash # montamos el disco externo USB /bin/mount -t ext3 /dev/sda1 /mnt/backups # definimos un par de variables FECHA=$(date +%Y-%m-%d) LOG_BACKUPS=/var/backups/backup.$FECHA.log # ejecutamos la copia con tar y en compresión bzip2 tar cjfPv /mnt/backups/$FECHA.tar.bz2 /samba_server/usuaris/ > $LOG_BACKUPS # desmontamos asegurándonos previamente de no estar en el punto de montaje cd / /bin/umount /mnt/backups exit 0 El archivo /etc/crontab es el siguiente: SHELL=/bin/sh PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin MAILTO=root # # check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly # -*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1 30 23 * * * /etc/backup_diario.sh Y... cada mañana, cuando combruebo el mail del servidor, me encuentro con que el cronjob no ha sido ejecutado. El error que me da es, simplemente: /bin/sh: root: command not found ¿?¿?¿?¿ Y lo realmente cursioso es que si ejecuto el script a mano va a las mil maravillas.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2006-02-20 a las 17:51 +0100, Jordi Espasa Clofent escribió:
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1 30 23 * * * /etc/backup_diario.sh
¿No falta un "root" ^^^ ahí? - -- Saludos Carlos Robinson -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Made with pgp4pine 1.76 iD8DBQFD+hehtTMYHG2NR9URAo47AKCAEm8sAn6EcYSwILCIoko2XvprNgCginKh /NBidxNe0bSOwqROSeIIHCA= =bS7R -----END PGP SIGNATURE-----
El día 20/02/06, Carlos E. R.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
El 2006-02-20 a las 17:51 +0100, Jordi Espasa Clofent escribió:
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1 30 23 * * * /etc/backup_diario.sh
¿No falta un "root" ^^^ ahí?
Anda, pues yo que creía que sobraba...
El Lunes, 20 de Febrero de 2006 20:25, Carlos E. R. escribió:
El 2006-02-20 a las 17:51 +0100, Jordi Espasa Clofent escribió:
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1 30 23 * * * /etc/backup_diario.sh
¿No falta un "root" ^^^ ahí?
Pues si, faltaba... pero el muy *%$ me sigue dando el mismo error. /bin/sh: root: not found. He hecho un par de cosas: - reeditar el cronjob a partir de crontab -e (me parece que ya lo hice así, pero igual lo hice con vim directamente y la tarea no se puso en /var/spool/cron/) - cambiar la variable SHELL de /etc/crontab de /bin/sh a /bin/bash. A ver qué hace esta noche. -- Salut, Jordi Espasa
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2006-02-23 a las 12:30 +0100, Jordi Espasa Clofent escribió:
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1 30 23 * * * /etc/backup_diario.sh
¿No falta un "root" ^^^ ahí?
Pues si, faltaba... pero el muy *%$ me sigue dando el mismo error.
Mmm.
/bin/sh: root: not found.
Parece como si esté tratando de ejecutar "root" como comando.
He hecho un par de cosas:
- reeditar el cronjob a partir de crontab -e (me parece que ya lo hice así, pero igual lo hice con vim directamente y la tarea no se puso en /var/spool/cron/)
Es distinto. Con "crontab -e" editas las tareas cron del usuario, y se guardan en "/var/spool/cron/tabs/usuario". La sintaxis de este fichero es distinta: X Y * * * programa en vez de X Y * * * usuario programa que es la sintaxis que usa el fichero "/etc/crontab". Me da la impresión que estás confundiendo ambos sistemas o ficheros.
- cambiar la variable SHELL de /etc/crontab de /bin/sh a /bin/bash.
Inútil: en Linux SuSE son el mismo. lrwxrwxrwx 1 root root 4 2005-10-07 02:40 /bin/sh -> bash* - -- Saludos Carlos Robinson -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Made with pgp4pine 1.76 iD8DBQFD/bAAtTMYHG2NR9URAkfyAJ9G/6G3rcFiJrMRR8gdignbaOxDnwCfZqKh hgcvKudJx2TFpuLrYmKQ8S4= =uoEg -----END PGP SIGNATURE-----
Es distinto. Con "crontab -e" editas las tareas cron del usuario, y se guardan en "/var/spool/cron/tabs/usuario". La sintaxis de este fichero es distinta:
X Y * * * programa
en vez de
X Y * * * usuario programa
Ajá. Pues el tema es que ahora _SI_ funciona. Ya no dá el mensaje de error ese. Me intriga un poco no saber el porqué. Y lo más curioso de todo es que utilicé la opción crontab -e pero ¡utilizando la segunda sintaxis! ¿?¿?¿?¿?
lrwxrwxrwx 1 root root 4 2005-10-07 02:40 /bin/sh -> bash*
Pues va a ser que si. Pues mira, según mi entender eso no es del todo correcto. Más que nada porqué todos los scripts de sh caminan en bash, pero al reves no, ya que bash tiene "features" que no tiene la vieja sh. Los debianitas, que ya sabemos todos que son muy "puros", insisten mucho en esto: todos los scripts deberían hacerse en sh, a no ser que, por cojones, tengas usar características que no tenga esa shell.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2006-02-24 a las 10:30 +0100, Jordi Espasa Clofent escribió:
X Y * * * usuario programa
Ajá. Pues el tema es que ahora _SI_ funciona. Ya no dá el mensaje de error ese. Me intriga un poco no saber el porqué. Y lo más curioso de todo es que utilicé la opción crontab -e pero ¡utilizando la segunda sintaxis!
¿?¿?¿?¿?
Si que es curioso.
lrwxrwxrwx 1 root root 4 2005-10-07 02:40 /bin/sh -> bash*
Pues va a ser que si. Pues mira, según mi entender eso no es del todo correcto. Más que nada porqué todos los scripts de sh caminan en bash, pero al reves no, ya que bash tiene "features" que no tiene la vieja sh.
Así es.
Los debianitas, que ya sabemos todos que son muy "puros", insisten mucho en esto: todos los scripts deberían hacerse en sh, a no ser que, por cojones, tengas usar características que no tenga esa shell.
Bueno, verás: tu haces los scripts con la linea es #!/bin/sh (que por cierto hace cargar un shell nuevo para interpretar el script, no se hace con el actual). Si estás en un linux que realmente tenga un /bin/sh, pues se hará con eso; pero si estás en uno que como el SuSE tenga un bash y un symlink, pues en realidad usará el bash aunque hayas pedido un sh. No problemo :-) - -- Saludos Carlos Robinson -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) Comment: Made with pgp4pine 1.76 iD8DBQFD/w1htTMYHG2NR9URAgAcAJ0Q5I6POOjYlu9EM/2qY6W3iFj1cwCgg8O+ PxdTXyICDyvp98FBKNcJF1A= =/UjP -----END PGP SIGNATURE-----
participants (3)
-
Carlos E. R.
-
Jordi Espasa Clofent
-
JOSANable