Solución:
Resolví el problema. Hay dos maneras:
M1
Cambiar la redirección de &>>
para 2>&1
. Y ahora crontab -e
parece
*/1 * * * * /home/ranveer/vimbackup.sh >> /home/ranveer/vimbackup.log 2>&1
Yo creo lo anterior funciona porque por defecto cron
esta usando sh
para ejecutar la tarea en lugar de bash
asi que &>>
no es compatible con sh
.
M2
Cambie el shell predeterminado agregando SHELL=/bin/bash
en el crontab -e
expediente.
Descargo de responsabilidad [1].
Me gustaría agregar una nota al pie o un apéndice a la respuesta de @ RanRag.
Asegúrese de que su sintaxis de redirección de shell se ajuste a /bin/sh
. Si intenta utilizar una sintaxis de redirección de shell que no es válida con /bin/sh
entonces su comando fallará y su trabajo cron nunca se ejecutará.
En tus /etc/cron.d/example1
config archivos si especifica un usuario que no sea root
y el shell de inicio de sesión de ese usuario no es /bin/bash
… todavía debe usar la sintaxis / bin / sh en /etc/cron.d/example1
mando.
Por ejemplo
Si su usuario tiene shell csh
o zsh
o ksh
configurado para su shell de inicio de sesión. En tus /etc/cron.d/example1
config, el comando debe usar /bin/sh
sintaxis. Específicamente, cualquier redirección de shell debe ser /bin/sh
sintaxis.
Si intenta utilizar, por ejemplo csh
sintaxis de redireccionamiento de shell en su /etc/cron.d/example1
, entonces su trabajo cron nunca se ejecutará. El archivo de registro para crond
situado en /var/log/cron
dirá que el comando se está ejecutando, pero el comando saldrá con un error de sintaxis antes de que se ejecute su comando.
Donde hace crond
¿Emite mensajes de error para un error de sintaxis?
El error nunca se informa en /var/log/cron
. crond
en su lugar, por defecto emite cualquier mensaje de error usando mail
. Entonces debes comprobar /var/spool/mail/${USER}
para ver cuál es el error.
[1]
Descargo de responsabilidad
- Esta respuesta asume un
sysv
sistema -
systemd
la información puede diferir - Específicamente, esta información se obtuvo para
centos-6
distribución y puede que no se aplique a diferentessysv
distribuciones- menciono
centos-6
específicamente, porque diferentes distribuciones pueden tener diferentescrond
implementación que difiere decentos-6
- menciono