Ich hab mir ein paar Gedanken zu dem Problem mit dem oben genannten Skript und der Frage
"was ist wenn ich ein neues Programm installieren will?" gemacht.
Meine Lösung ist eigentlich sehr simpel:
Ich habe eine Datei (
/etc/portage/rsync_excludes_weekly) in der alles ausgeschlossen wird, was ich wirklich nicht brauche (z.B. games-* auf der Arbeit). Diese Datei wird genutzt um einmal in der Woche (oder seltener) alles auf den neusten Stand zu bringen. Natürlich kann die Datei auch leer sein, dann wird einmal in der Woche der
ganze Tree aktualisiert.
Dann habe ich die Skript
prlock.py (s.o.), das bei mir
/root/bin/rsync_exclude.py heißt.
Dieses Skript erstellt bekanntlich eine Datei, die
nur die Verzeichnisse bereits installierter Programme und ganz wichtige Sachen (s.o.) synced. Mit dieser Datei wird der tägliche/regelmäßige Sync durchgeführt.
Diese Datei wird per cron vor meinem Sync neu erstellt und ist somit immer zum passenden Zeitpunkt auf dem neusten Stand!
Durch diese Taktik synce ich an 4Tagen in der Woche nur ca. 5,000Dateien und an einem ca. 55,000 statt über 80,000. (Diese Zahlen sind natürlich nicht repräsentativ!). Am Wochenende synce ich gar nicht, da ich dann meinen Arbeitsrechner gar nicht brauche...
So und hier die Anleitung:
1.
/root/bin/rsync_exclude.py aus
prlock.py erstellen
2.
chmod u+x /root/bin/rsync_exclude.py
3.
crontab -e ausführen und sowas in der Art einfügen (Zeiten sind nach eigenen Vorlieben zu setzen):
Code: Select all
# täglich alle installierten Programme zu /etc/portage/rsync_excludes hinzufügen
14 1 * * * /root/bin/rsync_exclude.py
# Montags => großen Tree syncen
11 4 * * 1 env RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes_weekly /usr/bin/emerge sync > /tmp/daily_sync.log
# Restliche Werktage => nur Programme die installiert sind syncen
12 4 * * 2 /usr/bin/emerge sync > /tmp/daily_sync.log
13 4 * * 3 /usr/bin/emerge sync > /tmp/daily_sync.log
14 4 * * 4 /usr/bin/emerge sync > /tmp/daily_sync.log
15 4 * * 5 /usr/bin/emerge sync > /tmp/daily_sync.log
# Am WE wird nicht gesynced
Anmerkung: Diesen Schrittkann man auch weglassen und mit den entsprechenden Kommandos (siehe crontab oben) von Hand syncen. (für nicht 24/7-Rechner)
4.
/etc/portage/rsync_excludes_weekly erstellen.
Ein Beispiel (kann man beliebig ändern oder auch leer lassen, dann hat man einmal die Woche einen kompletten Sync)
Code: Select all
# in dieser Datei steht nur das, was wirklich _nie_ gesynced werden soll
app-accessibility
app-benchmarks
app-emacs
app-emulation
app-gnustep
app-i18n
app-laptop
app-pda
app-sci
app-vim
app-xemacs
dev-dotnet
dev-embedded
fresco-*
games-*
gnome-*
media-plugins
media-tv
net-dialup
net-irc
net-news
net-p2p
net-wireless
net-zope
sec-*
sys-cluster
x11-plugins
x11-themes
x11-wm
xfce-*
Das ist mein Beitrag für möglichst wenig rsync-Traffic (88% weniger pro Woche als vorher) und trotzdem noch einen sehr aktuellen Tree zu behalten, falls man ein neues Programm installieren will.
BTW: Ich werde versuchen das in nächster Zeit noch über 90% drücken, z.B. mit einem Sync alle zwei Tage.
Kommentare, Anmerkungen und natürlich auch Verbesserungen werden gerne entgegen genommen.
Ich hoffe, dass dieses Mini-Howto vielen helfen wird und vielleicht auch einige davon überzeugt, dass auch ein kompletter Tree und Traffic sparen zusammen passt!!!
The contents of this posting are licensed under the Creative Commons - Attribution / Share Alike license.