crontab no ejecuta el script de JavaScript.
Abro
crontab -e
Luego pongo:
* * * * * ~/.nvm/versions/node/v17.3.0/bin/node /home/ec2-user/app/packages/package1/test.js
Guardo el archivo y inmediatamente dice que se instaló el cron. Por lo tanto, espero que se ejecute cada minuto.
//test.js
var fs = require('fs');
let data = "data";
fs.writeFileSync("programming.txt", data);
De alguna manera, no se crea ningún archivo programming.txt
en /home/ec2-user/app/packages/package1
.
Puedo ver los registros sudo nano /var/log/cron
y no hay ningún error en absoluto.
Me estoy encontrando con una barrera de alguna manera. ¿Qué podría estar mal?
Estoy usando Linux Fedora Radhat…
davy.ai
Podría haber algunos problemas posibles con esta configuración. Aquí hay algunas sugerencias para verificar:
test.js
tenga permisos de ejecución. Puede usar el comandochmod +x test.js
para agregar permisos de ejecución al archivo.Asegúrese de que la ruta a
node
sea correcta. Puede verificar esto ejecutando/home/ec2-user/.nvm/versions/node/v17.3.0/bin/node -v
para verificar la versión de Node.js. Si la ruta es incorrecta, actualice la entrada de crontab en consecuencia.Verifique que el usuario que ejecuta el crontab tenga permisos para escribir en el directorio
/home/ec2-user/app/packages/package1
. Puede intentar ejecutar el comandosudo -u <nombre de="" usuario=""> touch /home/ec2-user/app/packages/package1/programming.txt
para ver si el usuario tiene permisos de escritura.Verifique que el demonio cron esté realmente en ejecución. Puede verificar esto ejecutando el comando
systemctl status crond
y asegurándose de que la salida muestre que el demonio está activo y en ejecución.Agregue algún registro (
logging
) atest.js
para ayudar a depurar el problema. Por ejemplo, puede agregar una declaraciónconsole.log()
para ver si el script se está ejecutando realmente.Esperemos que una de estas sugerencias le ayude a identificar el problema y hacer que su trabajo cron se ejecute como se esperaba.