¡Hola!
Si quieres realizar tareas programadas o cronjobs en tu Raspberry Pi, si no tienes el paquete gnome-schedule instalado lo primero que haremos es instalarlo con el siguiente comando:
sudo apt-get install gnome-schedule
Para programar los trabajos o editarlos, deberás editar la tabla cron, para abrirla, ejecuta:
crontab -e
Si es la primera vez que lo ejecutas te preguntará con qué editor quieres modificarla:
pi@raspberrypi:~ $ crontab -e
no crontab for pi – using an empty oneSelect an editor. To change later, run ‘select-editor’.
1. /bin/ed
2. /bin/nano <---- easiest 3. /usr/bin/vim.tiny
Nosotros hemos elegido el 2, nano.
Y cómo se programa?
Como la tabla dice:
# m h dom mon dow command
# * * * * * command to execute # ┬ ┬ ┬ ┬ ┬ # │ │ │ │ │ # │ │ │ │ │ # │ │ │ │ └───── day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0) # │ │ │ └────────── month (1 - 12) # │ │ └─────────────── day of month (1 - 31) # │ └──────────────────── hour (0 - 23) # └───────────────────────── min (0 - 59)
Simplemente:
Yo quiero que ejecute este Script php:
/home/pi/CronScript/script-ekiketa.php
Cada 3 días a las 16:40 de la tarde… por ejemplo.
Con lo que el comando quedaría así:
40 16 */3 * * php /home/pi/CronScript/script-ekiketa.php
En en principio nos debería de funcionar, sino, podemos probar a añadirle la ruta absoluta de php: «/usr/bin/php».
Quedaría algo así:
40 16 */3 * * /usr/bin/php /home/pi/CronScript/script-ekiketa.php
Añado esa linea al archivo anterior, y cierro el editor.
Nos saldrá un texto pafecido a:
crontab: installing new crontab
Y a funcionar 🙂
Bonusss:
Si queremos ver la tabla de crons que tenemos programados ejecutaremos:
crontab -l
Y… si por ejemplo queremos ejecutar un scropt Python por ejemplo siempre que reiniciamos/arrancamos nuestra Raspberry:
@reboot python /home/CronScript/script_reinicio.py &
(Con & si queremos que se ejecute en segundo plano)
Si tenemos problemas de ejecución podemos darle permisos de ejecución al script con:
chmod +x /home/pi/CronScript/script-ekiketa.php
Puede que en la consola (despues de introcucir cualquier comando) te aparezca:
Tiene correo nuevo en /var/mail/pi
Podemos ejecutar para leer lo que el Cron ha hecho:
cat /var/mail/pi
:*