La razón más probable por la que falla su comando es que no proporcionó una ruta absoluta para mysql. Hazlo de esta manera
/path/to/mysql -uderp_example -pexample -hlocalhost -Dexample -e"TRUNCATE TABLE juice box"
^^^^^^^^
Debería funcionar bien.
Es porque cron se ejecuta bajo una cuenta que no tiene una RUTA definida o no incluye una ruta a mysql.
Ahora hay otra opción:usar un evento MySQL
CREATE EVENT update_date_column
ON SCHEDULE EVERY 1 HOUR STARTS NOW()
DO TRUNCATE TABLE juicebox;
Si decide ir con un enfoque de evento:
- use
SHOW EVENTS
para enumerar los eventos creados con sus atributos (por ejemplo,status
) - use
SHOW PROCESSLIST
para verificar si el programador de eventos está habilitado. Si está activado, debería ver un proceso "Daemon
" por el usuario "event_scheduler
". - use
SET GLOBAL event_scheduler = ON;
para habilitar el programador si actualmente no está habilitado. - Más información sobre la configuración del programador de eventos lea aquí