GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie plane ich einen Rsync-Befehl?

Guten Tag!

Ich arbeite von Chile aus. Die Sache ist, dass die Verbindung hier super langsam ist und Aufgaben, wie jede Station ihre Pakete direkt auf das Internet aktualisieren zu lassen, einfach nicht möglich sind. Ich habe also ein lokales Repository, das ich nur nachts über rsync aktualisieren möchte.

Ich habe kein Problem mit rsync, ich weiß, wie man es benutzt. Wo ich ein bisschen neu bin, sind Bereiche wie Cronjobs und ähnliches Zeug.

Um es kurz zu machen, was ich tun muss, ist, mein Repository jede Nacht zu aktualisieren. Angenommen, es beginnt jeden Tag um 19:00 Uhr und endet um 7:00 Uhr.

Wie kann ich das tun?

Vielen Dank im Voraus.

Liebe Grüße.

PD:Ich verwende Ubuntu 16.04.

Akzeptierte Antwort:

Es gibt zwei Möglichkeiten, Cron zu verwenden, indem Sie eine Datei in /etc/cron.d/repo-sync erstellen mit dem Format:

<minute> <hour> <day_of_month> <month> <day_of_week> <user> <command>

Um beispielsweise jeden Tag um 19:00 Uhr rsync von src nach dest auszuführen, können Sie Folgendes verwenden:

0 19 * * * root rsync -a src dest

Oder Sie können eine Crontab erstellen, indem Sie crontab -e ausführen (als der Benutzer, unter dem Sie den Befehl ausführen möchten) mit einer Zeile wie oben abzüglich des Benutzers, z. B.:

0 19 * * * rsync -a src dest

Persönlich ziehe ich es vor, cron.d-Dateien für System-/Root-Tasks zu erstellen, aber beide Ansätze werden zu einem identischen Ergebnis führen.

Jetzt wird der Befehl einmal zur angegebenen Zeit ausgeführt – er stoppt, sobald der Befehl beendet ist, sodass es nicht wirklich notwendig ist, einen Befehl anzugeben, um ihn um 7:00 Uhr zu stoppen, da rsync bis dahin hoffentlich abgeschlossen sein sollte. Wenn Sie den Befehl wirklich um 7:00 Uhr stoppen müssen, können Sie einen weiteren Cron-Job ausführen, der einfach vorhandene Prozesse zum gegebenen Zeitpunkt beendet.

0 7 * * * root killall rsync

Leider wird dies alle rsync-Befehle beenden – was Nebenwirkungen haben könnte, wenn man gleichzeitig versucht, rsync auszuführen, also rate ich von dieser Methode ab.

Sie können noch weiter gehen, indem Sie den rsync-Befehl in ein Skript einfügen, das seine PID in eine Datei schreibt, und diese PID im Kill-Befehl verwenden, um dies abzumildern, aber das könnte komplizierter sein, als Sie wirklich brauchen.

Weitere Informationen zum Einrichten von Cron-Jobs finden Sie hier oder hier.

Verwandte:Wie überprüfe ich die gesamte Festplatte auf Fehler und fehlerhafte Sektoren?
Linux
  1. So verwenden Sie den Befehl „at“, um eine Aufgabe zu einem bestimmten oder späteren Zeitpunkt in Linux zu planen

  2. So verwenden Sie den Linux-Rsync-Befehl (Remote-Synchronisierung).

  3. So planen Sie Cron-Jobs in cPanel

  4. So planen Sie Jobs mit dem Befehl „at“ unter Linux

  5. Wie verwende ich den Befehl 'cp', um ein bestimmtes Verzeichnis auszuschließen?

So verwenden Sie den Disown-Befehl unter Linux

So verwenden Sie den Linux-SS-Befehl

So entfernen Sie ein Verzeichnis in Linux

So verwenden Sie den Linux-nohup-Befehl

So verwenden Sie den PS-Befehl

So verwenden Sie den TOP-Befehl