¿Cómo ejecutar el comando cada 10 segundos (sin cron)?


36

Cuando ejecuto cronme sale esta falla

cron: no se puede abrir o crear /var/run/crond.pid: permiso denegado

Entonces, ¿cómo hacerlo sin cron?

PD: Quiero verificar si el archivo en svn ha cambiado y tengo un script especial para ello.


Si no tiene permiso, intente ejecutar cron con sudo.
Anónimo el

44
Tenga en cuenta que cron no hará algo cada 10 segundos, lo más granular que obtiene es una vez por minuto.
Cesio

Si desea hacer cronjobs, debe ejecutar crontab -epara iniciar el editor. Para enumerar los crontab -l
crons

@Anónimo No sé la contraseña de root, por lo que sudo no me ayudará.
UAdapter

Respuestas:


59

Para acceder a su cronconfiguración personal , debe usar el comando crontab -e(para editar su tabla cron).

La alternativa es el watchcomando:

watch -n10 command args

Finalmente, para monitorear los eventos del sistema de archivos de manera más efectiva, puede usarlo inotifywaitdesde el inotify-toolspaquete.


1
Vale la pena señalar, tal vez, será mejor que envuelva sus comandos entre comillas dobles o puede terminar con resultados inesperados. watch -n<timeout> "command(s) arg(s)"comowatch -n2 "ps ux | grep ss5"
Aquiles

Me resultó difícil watchaceptar comandos largos y complicados con tuberías y comillas. El bucle while a continuación funcionó, pero por supuesto, uno siempre debe dormir primero para evitar las píldoras desbocadas.
rjurney

@rjurney: debería ser suficiente para envolver todo el comando entre comillas, simple o mejor doble:watch -n10 "ls -l | grep $foo"
enzotib

@enzotib El problema surge cuando hay comillas en los comandos, ya que las comillas dentro de las comillas (dios me ayude) se acercan a comillas imposibles en bash. En teoría, debería ser posible, pero rara vez logro citas anidadas en bash sin renunciar y seguir una ruta diferente.
rjurney

32

Puede escribir un script de shell que tenga sleepun ciclo while.

#!/bin/sh
while [ true ]
do
    sh special_svn_script.sh
    sleep 10
done

55
while trueno requiere corchetes, de lo contrario, "verdadero" se interpreta como una cadena, y cada cadena es tan buena como "verdadera".
enzotib

1
@enzotib, así que también podrías escribir mientras
estás

Si bien esto funciona, siempre debes dormir primero porque algo puede ocurrir y no alcanzar el paso de sueño, en cuyo caso tienes un pid fugitivo inundando algo.
rjurney

4

gnome-schedule (haga clic en el botón paraInstall now!usar su Centro de software)
es una interfaz gráfica de usuario que aprovecha el poder de vixie-cron, dcron y at para administrar su archivo crontab y proporcionar una manera fácil de programar tareas en su computadora. Admite tareas recurrentes (periódicas) y tareas que suceden solo una vez en el futuro. Está escrito en Python usando pygtk.

Características impresionantes

  • Admite títulos e íconos personalizados para sus tareas, de modo que sean más fáciles de seguir.
  • Soporte de plantillas para que no tenga que crear la misma tarea una y otra vez; estos se guardan en gconf y pueden enviarse fácilmente con, por ejemplo, una distribución de Linux
  • Si se ejecuta como root, puede editar las tareas crontab y "at" de cualquier usuario.
  • Cadenas legibles por humanos como "Cada hora" en lugar de "0 * * * *"
  • Modo avanzado para expertos en crontab
  • Proporciona un "applet de panel" donde puede administrar tareas desde un menú desplegable
  • Expresiones comunes predefinidas como: cada minuto, cada semana, mañana, la próxima semana Un calendario le permite elegir el día en que desea ejecutar una tarea
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.