Volví de Linuxmint 18 Cinnamon de 64 bits a Linuxmint 17.3 Cinnamon de 64 bits y ya no puedo crear un trabajo cron. Tengo particiones raíz (/) y de inicio (/home/mi-nombre-de-usuario) separadas y dejé la partición de inicio intacta cuando hice la instalación 17.3.
Estaba teniendo todo tipo de dificultades para crear una tarea cron, así que instalé gnome-scheduler e intenté crear una tarea cron de esa manera. Recibí un cuadro de diálogo de advertencia titulado
"Advertencia: Directorio de trabajo de tareas ejecutadas"
y el contenido del mensaje es
"Nota sobre el directorio de trabajo de las tareas ejecutadas: las tareas recurrentes se ejecutarán desde el directorio de inicio".
Hice clic en Aceptar y el trabajo aparece en la terminal de la siguiente manera:
$ crontab -l
* * * * * env DISPLAY=:0 /home/my-user-name/wallpaper_changer.sh >/dev/null 2>&1 # JOB_ID_4
Mi fondo de pantalla no cambia cada minuto como debería. El script se ejecuta bien desde la línea de comando y no produce ningún resultado. Los permisos son 744 octales para el script. Todo esto funcionó bien en Mint 18, pero ejecuté el script solo una vez al día. Lo configuré para que se ejecute cada minuto sólo con fines de prueba.
Si pruebo el método normal de edición del trabajo cron, obtengo
$ crontab -e
Temporary crontab no longer owned by you.
Error while editing crontab
Luego obtengo un nano buffer vacío en lugar de la plantilla crontab normal llena de líneas comentadas. Cuando intento escribir mi nano buffer en el archivo /tmp/crontab.lmuwIe/crontab, aparece este mensaje de error:
[Error al escribir /tmp/lmuwIe/crontab: Permiso denegado]
Finalmente,
$ ls -l /usr/bin/crontab
-rwsr-xr-x 1 root crontab 35984 Feb 9 2013 /usr/bin/crontab
¿Podré volver a crear un trabajo cron alguna vez?
$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab 4096 Sep 25 03:23 .
drwxr-xr-x 5 root root 4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name 188 Sep 25 03:23 my-user-name
@Gilles Bueno, he progresado mucho. Me deshice de todos los errores extraños reinstalando cron. Ahora todo funciona como debería cuando uso
$ crontab -e
exceptoque el script que he estado usando durante años no se ejecuta.
Pero se ejecuta otro script; así que estoy perdido.
Esto es lo que tengo ahora mismo:
$ crontab -l
* * * * * env DISPLAY=:0.0 /home/my-user-name/wallpaper_changer.sh
* * * * * date >> /home/my-user-name/crontest.txt
(No incluí las 20 líneas y pico de comentarios que preceden a los trabajos cron).
El trabajo de fecha se ejecuta exactamente como debería, pero el trabajo wallpaper_changer.sh no hace nada. He usado esto durante años y ahora no funciona. El script funciona bien desde la línea de comando y solía funcionar bien desde cron.
$ ls -l /home/my-user-name/wallpaper_changer.sh
-rwxr-xr-x 1 my-user-name my-user-name 694 Jun 2 14:30 /home/my-user-name/wallpaper_changer.sh
$ echo $DISPLAY
:0.0
¿Qué pasa con esto?
Respuesta1
Debe editar los permisos en el binario crontab y restablecerlos a sus valores cuando realiza una instalación nueva.
Permisos que NO FUNCIONAN:
ls -la /usr/bin/crontab
-rwsr-xr-x 1 root crontab 40264 Oct 7 2017 /usr/bin/crontab
Acción, hazlo como root o usando sudo:
chmod g+s /usr/bin/crontab
chmod u-s /usr/bin/crontab
Permisos de TRABAJO:
ls -la /usr/bin/crontab
-rwxr-sr-x 1 root crontab 40264 Oct 7 2017 /usr/bin/crontab
Tomados de una instalación nueva que funciona, los permisos de trabajo se establecen durante la instalación.
No tengo idea de por qué cambiaron más tarde.
Respuesta2
$ sudo ls -la /var/spool/cron/crontabs total 12 drwx-wx--T 2 root crontab 4096 Sep 25 03:23 . drwxr-xr-x 5 root root 4096 Sep 23 00:05 .. -rw------- 1 root my-user-name 188 Sep 25 03:23 my-user-name
La propiedad de /var/spool/cron/crontabs/my-user-name
es incorrecta. Deberías ser el dueño. Eso explicaría por qué cron no puede sobrescribir el archivo. Además, el archivo normalmente estaría en crontab
un grupo, pero no creo que importe.
Puedes solucionar este problema ejecutando
sudo chown my-user-name /var/spool/cron/crontabs/my-user-name
No sé qué pudo haber causado esto y no veo cómo podría estar relacionado con una degradación del sistema. Los problemas subyacentes podrían causar otros problemas.