Crontab ejecutando script cada minuto

Crontab ejecutando script cada minuto

Actualmente estoy intentando programar un cronjob para ejecutar un archivo de script .sh cada minuto.

Este es mi script simple:

#!/bin/sh
echo "Hello World" >> /Users/navania/crontab-scrip.log

Guardé esto en mi escritorio y lo llamé notify.sh. Luego abrí una nueva ventana de terminal y entré crontab-e. Esto abrió un nuevo archivo nano donde escribí:

* * * * * /Users/navania/Desktop/notify.sh

Guardé y existí este nano archivo. ¿Qué debo hacer a continuación para que el cronjob se ejecute correctamente?

Pasos hasta ahora:

  1. Abra la aplicación de terminal y escriba crontab-e.
  2. Esto abre un nuevo archivo nano donde escribo el comando:* * * * * /Users/navania/Desktop/notify.sh
  3. Luego presiono control o para guardarlo y luego controlo x para guardarlo con el nombre de CrontabTest.
  4. Cuando salgo, dice que no se realizaron cambios en crontab, lo cual no tiene sentido.
  5. Luego abrí el archivo de registro y vi si imprime Hola mundo cada minuto, lo cual no es así.

Cualquier ayuda sería apreciada. ¡Gracias!

Respuesta1

Lo más probable es que su script intente ejecutarse cada minuto.

Siga los pasos de Kamil sobre cómo cambiar la línea crontab para incluir /bin/sh

Cambie un poco su secuencia de comandos para generarla en un archivo en lugar de intentar escribir en la pantalla, ya que el comando no se ejecutará en su terminal. En lugar de eso, se ejecuta en su propio proceso, por lo que no verá ningún resultado.

Por ejemplo, cambie su script de esta manera:

#!/bin/sh
echo "Hello World" >> /Users/navania/crontab-scrip.log

e inspeccione su archivo .log para ver si se escriben nuevas líneas en él.

Respuesta2

Deberías hacer que el script sea ejecutable:

chmod +x /Users/navania/Desktop/notify.sh

Y asegúrese de que el sistema de archivos que contiene el script no esté montado con noexec. Entonces el comando

/Users/navania/Desktop/notify.sh

debería funcionar, también debería hacerlo el cronjob.


Alternativamente, el comando en el crontab debería ser

/bin/sh /Users/navania/Desktop/notify.sh

En este caso, el permiso ejecutable no importa (tampoco el shebang en el script).


tenga en cuentaNo se debe esperar que el resultado textual de un cronjob aparezca en ninguna terminal..


Y existe este problema:

  1. Luego presiono control o para guardarlo y luego controlo x para guardarlo con el nombre de CrontabTest.
  2. Cuando salgo, dice que no se realizaron cambios en crontab, lo cual no tiene sentido.

Creo que es necesario guardar cualquier archivo temporal que se abra, no un archivo nuevo. No cambie el nombre mientras guarda.

información relacionada