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