2012-02-15 36 views
30

Voglio scrivere un downloader di immagini e assegnarlo su bash. Quello che ho e quello che mi serve:Esegui comando ogni secondo

ho:

  1. Command, che funziona bene (qualcosa come wget http://mywebcam.com/image.jpg -O /var/cam/Image.jpg)
  2. diritti Root

  3. veloce linea di Internet tra il mio server e il mio webcam

Cosa mi serve:

Scarica immagine dalla fotocamera ogni secondo * (sleep 1?) * E riscriverlo localy (il mio comando farlo bene) eseguire questo script in una sola volta e non preoccuparti di riavvio (penso di aver bisogno di creare file con comandi bash ed eseguilo una volta + imposta crontab lavoro "al riavvio" in questo file, giusto?)

Forse c'è qualcuno che sa cosa dovrei fare?

+0

http://unix.stackexchange.com/questions/10646/repeat-a-unix-command-every-x-seconds-forever –

+1

Vedere la mia [funzione di ripetizione della bash] (http://unix.stackexchange.com)/a/111504/27653) con granularità fine e controllo della durata. –

risposta

68

Se si desidera eseguire un comando a intervalli di un secondo (un secondo tra la fine di un comando e l'inizio del successivo, che non è la stessa cosa che lanciare ogni secondo), basta fare:

 
while sleep 1; do cmd; done 

Se si desidera che inizi il riavvio, il metodo dipenderà dal sistema.

+0

Ho CentOS sul mio server. E 'questo giusto modo per aggiungerlo alla crontab? –

+0

Non ho familiarità con CentOS, ma cron non è la strada da percorrere. Invece, prova ad aggiungere una riga a /etc/rc.local –

+0

Ho usato questo per correggere il bug del filesystem che ho con il mio VirtualBox VM virtuale che usa il mio Windows 'D: \ www \ come la cartella radice di Apache. –

50

Il comando watch lo eseguirà direttamente. Visualizza anche il risultato in un modo carino.

$ watch -n 1 date 

sostituto date per il vostro comando. L'opzione -n specifica l'intervallo in secondi.