Automatycznie uruchamiaj polecenie co 5 minut

10

Jestem bardzo nowy w używaniu Linuksa, a zwłaszcza w wierszu poleceń. Udało mi się pomyślnie uruchomić serwer Plex Media Server, ale muszę co 5 minut uruchamiać następujące polecenie, aby zsynchronizować się z dyskiem Amazon Drive.

acd_cli synchronizacja

Próbowałem różnych metod, takich jak skrypty bash i nie mogę go uruchomić. Potrzebuję tylko powyższego polecenia, aby uruchamiać się co 5 minut i wydaje mi się, że istnieje prosty sposób, o którym nie wiem.

SneakierDAG
źródło

Odpowiedzi:

7

Łatwa metoda

Możesz skonfigurować skrypt bash, który zapętla się na zawsze, wykonując to polecenie, a następnie śpi przez 5 minut.

Otwórz terminal i wykonaj następujące polecenie:

sudo nano /usr/local/bin/amazon-sync

Następnie wpisz następujące polecenie:

#!/bin/sh  
while true  
do  
  acd_cli sync  
  sleep 300  
done

Naciśnij ctrl+, oaby zapisać

Naciśnij ctrl+, xaby wyjść

Wykonaj to polecenie:

sudo chmod +x /usr/local/bin/amazon-sync  

Po uruchomieniu komputera naciśnij ctrl+ alt+ ti wpisz, amazon-synca następnie zminimalizuj okno terminala. Polecenie będzie uruchamiane co 5 minut (300 sekund).

cheesits456
źródło
Jest sposób, aby uruchomić go przy starcie, ale ostatnim razem, gdy próbowałem to zrobić, musiałem przejść do odzyskiwania systemu, aby cofnąć to, co zrobiłem, ale wiem, że jest to możliwe, jeśli zrobisz to dobrze.
cheesits456
Aby działało przy starcie, potrzebujesz cronjob. Zobacz moją odpowiedź poniżej.
Michael Sandman,
14

Możesz użyć

crontab -e

aby utworzyć harmonogram cron użytkownika.

Linia, której konkretnie potrzebujesz, to

*/5 * * * * /home/YOU/backup.sh

W backup.shdodawać żadnych poleceń, które chcesz uruchomić, upewnij się, że skrypt jest wykonywalny, czylichmod +x backup.sh

Spójrz na

http://www.unixgeeks.org/security/newbie/unix/cron-1.html

Michael Sandman
źródło
4

Istnieje również watchpolecenie, jeśli chcesz wyświetlić dane wyjściowe na ekranie i wyczyścić automatycznie.

watch -n 300 acd_cli sync
Sergiy Kolodyazhnyy
źródło
1

Kiedy mówisz 5 minut, masz na myśli 5 minut, czy zapomnisz o poleceniu za 5 minut i pozostaw go uruchomionego na czas nieokreślony

Jest tak wiele opcji do wyboru, ale pokażę 4 sprytne sposoby realizacji tego.


for (( i=0; i<=20; i++)); do 'acd_cli sync' $i ;sleep 300; done

To oznacza, że ​​i wynosi 0, a następnie 0 jest mniejsze niż 20, więc będzie minus 1, dopóki nie osiągnie 0. Więc będzie działać 20 razy. Co 5 minut

while true; do 'acd_cli sync'; sleep 300; done | at now +30 min

To prawda, ale wykonuj polecenie podane co 5 minut. Począwszy od 30 minut. Aby uruchomić to polecenie, musisz zainstalować Instalację, uruchamiając apt install w --assume-tak, Nie jestem pewien, czy to zadziała choć pętla

while true [ $i -lt 20 ]; do 'acd_cli sync' & i=$[$i+1];sleep 300; done

To polecenie mówi: Podczas gdy $ i pozostaje niższy niż 20, wykonaj wymieniony na liście interfejs wiersza poleceń Amazon Cloud Drive, to i nadal jest i plus jeden za każde wystąpienie polecenia, co 5 minut na zawsze

for i in $(seq 20); do 'acd_cli sync' $i; sleep 300; done

To mówi: W przypadku sekwencji wejściowej 20 wykonaj synchronizację Amazon Cloud Drive, co 5 minut 20 razy


źródło