Führen Sie automatisch alle 5 Minuten einen Befehl aus

10

Ich bin sehr neu in der Verwendung von Linux und insbesondere mit der Befehlszeile. Ich habe es geschafft, einen Plex Media Server erfolgreich zum Laufen zu bringen, muss jedoch alle 5 Minuten den folgenden Befehl ausführen, um mit meinem Amazon Drive zu synchronisieren.

acd_cli sync

Ich habe verschiedene Methoden wie Bash-Skripte ausprobiert und kann sie nicht zum Laufen bringen. Ich brauche nur den obigen Befehl, um alle 5 Minuten ausgeführt zu werden, und es scheint, als gäbe es einen einfachen Weg, den ich nicht kenne.

SneakierDAG
quelle

Antworten:

7

Einfache Methode

Sie können ein Bash-Skript einrichten, das diesen Befehl für immer ausführt und dann 5 Minuten lang schläft.

Öffnen Sie ein Terminal und führen Sie diesen Befehl aus:

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

Geben Sie dann Folgendes ein:

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

Drücken Sie zum Speichern ctrl+o

Drücken Sie zum Beenden ctrl+x

Führen Sie diesen Befehl aus:

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

Wenn Sie Ihren Computer starten, drücken Sie ctrl+ alt+ tund geben Sie ein amazon-sync, um das Terminalfenster zu minimieren. Der Befehl wird alle 5 Minuten (300 Sekunden) ausgeführt.

cheesits456
quelle
Es gibt eine Möglichkeit, es beim Start zum Laufen zu bringen, aber als ich das letzte Mal versuchte, musste ich in die Systemwiederherstellung gehen, um rückgängig zu machen, was ich getan habe, aber ich weiß, dass es möglich ist, wenn Sie es richtig machen.
Cheesits456
Damit es beim Start funktioniert, benötigen Sie einen Cronjob. Siehe meine Antwort unten.
Michael Sandman
13

Sie können verwenden

crontab -e

um einen Benutzer-Cron-Zeitplan zu erstellen.

Die Leitung, die Sie speziell benötigen, ist

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

In backup.shalle Befehle hinzufügen , die Sie ausführen möchten, stellen Sie sicher , dass das Skript ausführbar ist, dhchmod +x backup.sh

Schau es dir an

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

Michael Sandman
quelle
4

Es gibt auch einen watchBefehl, wenn Sie die Ausgabe auf dem Bildschirm anzeigen und automatisch löschen müssen.

watch -n 300 acd_cli sync
Sergiy Kolodyazhnyy
quelle
1

Wenn Sie 5 Minuten sagen, meinen Sie 5 Minuten oder werden Sie den Befehl in 5 Minuten vergessen und ihn auf unbestimmte Zeit laufen lassen

Es gibt so viele Möglichkeiten zur Auswahl, aber ich zeige Ihnen 4 clevere Möglichkeiten, dies umzusetzen.


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

Dies besagt, dass i 0 ist, dann ist 0 kleiner als 20, also wird es minus 1 sein, bis es 0 erreicht. Also wird es 20 Mal laufen. Alle 5 Minuten

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

Dies bedeutet, dass der Befehl alle 5 Minuten ausgeführt wird. Beginnen Sie jetzt 30 Minuten lang. Um diesen Befehl auszuführen, müssen Sie installieren, indem Sie apt install bei --assume-yes ausführen. Sie sind sich nicht sicher, ob dies funktioniert eine Schleife

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

Dieser Befehl besagt: Während $ i unter 20 bleibt, wird die von Ihnen aufgelistete Amazon Cloud Drive-Befehlszeilenschnittstelle ausgeführt. Dann ist i immer noch i plus eins bei jedem Auftreten des Befehls, für immer alle 5 Minuten

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

Dies besagt, dass für die Eingabesequenz 20 die Synchronisierung des Amazon Cloud Drive alle 5 Minuten 20 Mal durchgeführt wird


quelle