cron
se comporta de forma un poco diferente a un mensaje estándar, por lo que no está haciendo lo que está esperando. Hay dos problemas con el comando tal como está:
- Debido a que no analiza la variable de entorno
PATH
, igual que el shell, cron
no sabe dónde está screencapture
. Debe especificar la ruta completa, /usr/sbin/screencapture
.
-
Como se indica en página man de crontab (5) , cron
trata a %
como un carácter de nueva línea:
Los signos de porcentaje (%) en el comando, a menos que se escapen con una barra invertida (\), se cambiarán a caracteres de nueva línea, y todos los datos después del primer% se enviarán al comando como entrada estándar.
Por lo tanto, necesitas escapar de cada %
con un \
para obtener el resultado deseado.
Esta entrada crontab
te dará una captura de pantalla cada hora, a la hora:
0 * * * * /usr/sbin/screencapture -Cd -tjpg ~/Desktop/screen-'date +"\%Y\%m\%d-\%H\%M"'.jpg
Cron Error Logging
Como nota aparte, si tiene problemas con cron, verifique el correo de su sistema ejecutando el comando mail
en la Terminal. No es muy obvio, pero por defecto cron
envía mensajes de error que pueden proporcionar un punto de partida para descubrir qué está mal.