es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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…

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Podría haber algunos problemas posibles con esta configuración. Aquí hay algunas sugerencias para verificar:

    1. Asegúrese de que el archivo test.js tenga permisos de ejecución. Puede usar el comando chmod +x test.js para agregar permisos de ejecución al archivo.
    2. 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.

    3. 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 comando sudo -u <nombre de="" usuario=""> touch /home/ec2-user/app/packages/package1/programming.txt para ver si el usuario tiene permisos de escritura.

    4. 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.

    5. Agregue algún registro (logging) a test.js para ayudar a depurar el problema. Por ejemplo, puede agregar una declaración console.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.

Comments are closed.