Verwendung von Cron zum Rsyncing des Repositories

von Loyed

Die erste Frage ist wohl die, warum sollte man eine lokale Kopie des PCLOS Repository haben wollen? Für mich gibt es wirklich einen einfachen Grund. Zur Zeit habe ich vier Computer mit PCLOS zuhause und möglicherweise kommen noch zwei dazu. Selbstverständlich gibt es noch andere Gründe eine Repositorykopie zu haben, zum Beispiel zum testen oder remastern, oder allgemein wenn Sie mehrfach oder häufig auf Dateien des Repository zurückgreifen müssen.

Eines Tages, als ich die drei Hauptcomputer aktualisierte, dachte ich warum verschwende ich meine Zeit mit dem dreifachen runter laden von Updates vom selben Repositories für jeden Computer? Ich hatte von anderen Leuten gehört, die eine lokale Kopie des Repositories angelegt hatten und ich dachte, das ist wirklich eine großartige Idee. Das beginnt mit einem reizenden kleinen Befehl namens rsync und selbstverständlich eine Recherche im Forum, um herauszufinden wie andere es verwenden. Meine Suche im Forum erbrachte nicht viel, aber ich fand den rsync Befehl, den Ikerekes verwendet, und das war eine gute Basis. Der ursprüngliche von Ikerekes benutzte Befehl war „rsync -av -P --stats --delete --exclude=SRPM * ftp.heanet.ie::pub/pclinuxos/apt/pclinuxos/2007/ /mnt/hd/texstar/pclinuxos/apt/pclinuxos/2007/“. Leider benutzt dieser Befehl heanet, welches auf der anderen Seite der Welt von mir ist, und das würde nicht gut für das funktionieren, was ich für nachts vor der Bettzeit geplant hatte (ungefähr zu dieser Zeit würden die Leute in Irland aufwachen und zur Arbeit gehen).

Bevor wir fortfahren, lasst uns alle diese Optionen des rsync Befehls betrachten. Zuerst haben wir das „-av“, das den rsync Befehl auf (a)rchivieren und (v)erbose einstellt. Archivieren bedeutet, das es die Änderungen seit der letzten Kopie aktualisiert, und verbose bedeutet das eine ausführliche Beschreibung gegeben wirddeutung (welches großartig bei einer Fehlersuche ist). Dann haben Sie die Option „-P " das rsync erklärt, alle teilweise übertragenen Dateien zu behalten, damit nach einer Unterbrechung der Übertragung diese nicht wieder vollständig heruntergeladen werden müssen. Dann haben wir die „--stats“ Option, die Ihnen erklärt, wie schnell eine Datei übertragen wird, und wie lang das dauert. Mein Lieblingsteil ist die folgende „--delete" Option, welche rsync erklärt eine nicht mehr im Online Repository vorhandene Datei im lokalen Exemplar zu löschen. So haben Sie keine toten Dateien, die nur Plattenplatz belegen. Schließlich gibt die „--exclude=“ Option rsync an all das zu überspringen, was hinter dem Gleichheitszeichen steht, in diesem Fall SRPM*. Die letzten zwei Pfade sind selbstverständlich die Quelle und das Ziel. Die Quelle müssen Sie auf Ihr gewünschtes Repository anpassen, und das Ziel ist Ihr lokales Verzeichnis der zu kopierenden Dateien.

Das schwierige Teil ist, wenn Sie herausfinden wollen wie man die Quelle auswählt. Wenn Sie Ikerekes Quelle mit der Adresse in Synaptic vergleichen, dann würden Sie denken, dass Sie nur die Adresse kopieren und den doppelten Doppelpunkt zwischen den Hauptrechnernamen und den Rest der Quelladresse setzen müssen. Leider ist das nicht so einfach. Tatsächlich ist es der Hauptrechnername gefolgt vom doppelten Doppelpunkt und dann die Distribution. Als ich zum Beispiel das Indiana-Repository nahm war es „spout.ussg.indiana.edu::pclinuxos/pclinuxos/apt/pclinuxos/2007“, während der tatsächliche Pfad „http://spout.ussg.indiana.edu/linux/pclinuxos/pclinuxos/apt/ “ ist. Ich brauchte einiges Herumspielen bis ich schließlich die richtige Kombination fand, aber zu verstehen wie es funktioniert (oder einfach eine der hier dargestellten zwei Quellen nutzen) sollte es für Sie schneller gehen lassen.

Wir haben rsync installiert und wäre es nicht großartig wenn Ihre lokale Kopie jede Nacht automatisch während Sie schlafen aktualisiert werden würde? Dank Intoit habe ich gelernt wie man den Befehl cron dafür verwendet. Es ist ein wundervoller kleiner Dämon, der Ihnen erlaubt, einen Befehl mit einer vorgegebenen Wiederholrate und zu einer bestimmten Zeit laufen zu lassen. Dazu nutzen wir crontab. Dieser Befehl erlaubt ihre crontab Datei anzusehen und zu bearbeiten. Es gibt zwei Hauptfunktionen für crontab. Die erste ist crontab -e, die Ihnen erlaubt, die cron Datei zu bearbeiten und ein Ereignis einzuplanen. diese Funktion richtig anzuwenden, ist es auch hilfreich zu wissen wie man den Editor vi verwendet. Die Hauptbefehle, die Sie für vi verwenden (wenn Sie wie ich sehr selten vi benutzen und sich nie an die Befehle erinnern können) sind: für Einsatz, esc um zum Befehlsmodus zurückzugehen, „:w“ zum Schreiben der Datei, und“:q " zum beenden. Sobald Sie crontab -e als root eingegeben haben, benutzen Sie vi. Die einzige Sache, die bis jetzt eingetragen ist, ist „min(0-59) hours(0-23) day(1-31) month(1-12) dow(0-7) command“, auskommentiert und als Beispiel der Aufstellung einer Befehlszeile. Die ersten beiden, min und hours ist die Uhrzeit. Die zwei folgenden, Tag und Monat, erlauben Ihnen, einen spezifischen Tag und einen Monat eines Jahres (oder des Tages des Monats) einzustellen. Dann kommt dow, das steht für „Tag der Woche.“ Wenn Sie tägliche Updates wünschen, dann müssen Sie nur die Minute und Stunden eintragen. Wenn Sie es beispielsweise jede Nacht um Mitternacht laufen lassen wollen, dann würden Sie den Befehl „0 0 * * * Befehl“ eingeben. Oder jeden Dienstag um 3 Uhr morgens wäre „0 3 * * 1 Befehl“. Die nächste zu verwendende Option ist: crontab -l welches alle existierenden cron Jobs ausdruckt. So können Sie überprüfen, dass Ihr Job in der Tat laufen wird.

Nun haben wir eine lokale Kopie des Repository und wir wollen es nun verwenden können. Wir starten Synaptic, gehen zu settings->repository, klicken auf Neu, um ein neues Repository einzustellen , unter URL setzen Sie „file:/“ dann den Pfad zum lokalen Verzeichnis des Repositories ein. Für Distribution würde Sie nach Ikerekes pclinuxos eingeben, aber ich musste stattdessen 2007 einsetzen. Um herauszufinden welcher Eintrag der richtige ist gehen Sie einfach zur Onlineadresse des Repositories das Sie heruntergeladen haben und nehmen Sie den Namen des heruntergeladenen Verzeichnisses. Wenn das erste Verzeichnis pclinuxos ist, dann verwenden Sie pclinuxos und wenn es 2007 ist, dann eben 2007. Abschließend geben Sie die Komponenten „main extra nonfree kde“ ein und Sie können andere Komponenten hinzufügen (zum Beispiel testing).

Wenn Sie dieses Repository mit anderen Computern in Ihrem Netzwerk teilen möchten, würde ich ein Network File System share (NFS) vorschlagen, der ziemlich einfach erstellt werden kann. Zuerst auf dem Computer mit dem Repository in das PCLinuxOS Kontrollzentrum gehen ( (PCC)Ihren Computer konfigurieren), dann gehen Sie zu Einhängepunkte, und NFS Setup. Wenn Sie NFS nicht bereits installiert haben, dann dauert es nun etwas, um die notwendigen Pakete zu installieren. Dann fügen Sie einfach das Verzeichnis Ihres lokalen Repositories als share ein. Dann müssen Sie es auf den Gastcomputern einstellen. Gehen Sie in PCC zu Einhängepunkte, dann NFS-Einhängepunkte einstellen. Auch hier, wenn nicht bereits verwendet, müssen die Pakete erst installiert werden. Dann müssen Sie den Server und den share auswählen, den Sie einhängen möchten. Von dort setzen Sie dann einen Einhängepunkt für den share ein (wo der share innerhalb Ihres Verzeichnissystems sein soll). Bei der Einstellung sollten Sie unter der advanced Option den Eintrag user beachten mit dem Sie den share einhängen können bevor Sie mit Synaptic alles installieren.

Sie können nun jeden Computer über dieses gleiche share Repository updaten, zum Beispiel jeden Morgen nachdem das Repository aktualisiert wurde. Auf diese Weise müssen Sie noch nicht einmal in Synaptic die Aktualisierung vornehmen. Hierfür brauchen Sie die zwei Befehle „apt-get update“ zur Aktualisierung der Repositoryliste, und dann „apt-get upgrade -y“ zur Installation aller zur Aktualisierung markierten Dateien. Dann also viel Spaß mit Ihrem lokalen Repository.

Mehr rsync Tipps von Dean Youngquist:

Sie könnten auch Kcron, ein GUI-Programm verwenden, dann brauchen Sie keine vi Lektionen nehmen.

--partial ist der Befehl, teilweise übertragene Dateien zu behalten. -P ist das selbe wie --partial --progress. Wenn Sie --partial --progress verwenden und der Leser ein Neuling ist, dann behalten Sie sie als unterschiedliche Optionen. Anstelle von -av - P können Sie schreiben -avP und das v ist nicht erforderlich, wenn P oder --progress verwendet wird, also -aP ist dasselbe wie -avP

Ich möchte auch -- bwlimit erwähnen falls die Bandbreite mit etwas anderem während des Herunterladens geteilt werden muss. Sie können einen Server in der repo Liste abfragen, ob es ein rsync Server ist. In diesem Fall werden viele Details ausgegeben.

rsync - n spout.ussg.indiana.edu::
rsync - n ftp.heanet.ie::

Es könnte auch wichtig sein -n, --dry-run zu erwähnen, welches hilft eine versehentliche Löschung bei der Verwendung von --delete zu vermeiden . Des weiteren macht es Sinn mehrere excludes in den Beispielen einzutragen: RPMS.testing und RPMS.sam sind sehr groß und werden vermutlich nicht verwendet. RPMS.testing ändert sich häufig.

--exclude=RPMS.testing/
4.1kRPMS.drivers
4.5GRPMS.extra
1.5GRPMS.kde
4.1GRPMS.main
932MRPMS.nonfree
239MRPMS.sam
4.1kRPMS.sam.testing
520MRPMS.testing

Eine Liste der bekannten rsync Server des PCLinuxOS repo (ibiblio erwähnen wir als Primärspiegelserver nicht). Da es einige andere repos gibt, ist es sinnvoll ibiblio nicht zu verwenden um diesen Server für das Syncing mit den repos freizuhalten. Die Befehlszeile für die Prüfung der verschiedenen Downloadspiegelserver sind:

rsync - avn --stats spout.ussg.indiana.edu::pclinuxos/pclinuxos/forums.xml.gz ./
rsync - avn --stats ftp.heanet.ie::Pub/pclinuxos/forums.xml.gz ./
rsync - avn --stats ftp.sh.cvut.cz::pclinuxos/forums.xml.gz ./
rsync - avn --stats rm.mirror.garr.it::pclinuxos/forums.xml.gz ./
rsync - avn --stats ftp.leg.uct.ac.za::pub/linux/pclinuxos/forums.xml.gz
Reklameanzeige

Seitenanfang