Frage

Ich habe gerade entdeckt, dass die automatisierte Dumps Ich habe meine SVN-Repository geschaffen haben cut aussteigen früh und im Grunde nur die Hälfte Dump wird. Es ist kein Notfall, aber ich hasse es, in dieser Situation zu sein. Es besiegt den Zweck, automatisierte Backups an erster Stelle.

Der Befehl ich benutze ist unten. Wenn ich es manuell im Terminal auszuführen, schließt es in Ordnung; die output.txt Datei ist 16 MB groß mit allen 335 Revisionen. Aber wenn ich überlasse es crontab, es bails auf der Halbzeit-Marke, bei rund 8,1 megs und nur die ersten 169 Revisionen.

# m h  dom mon dow   command
18 00 * * * svnadmin dump /var/svn/repos/myproject > /home/andrew/output.txt 

ich spare tatsächlich zu einer datierten gzipped Datei, und es gibt keinen Mangel an Speicherplatz auf dem Server, so dass dies keine Speicherplatz Problem. Es scheint, nach zwei Sekunden zu retten, so ist dies eine Zeit Problem sein könnte, aber die Dateigröße ist die gleiche jedes Mal für den letzten Monat, also denke ich nicht, dass es entweder die. Does CRONTAB innerhalb eines begrenzten Speicherplatz ausführen?

War es hilfreich?

Lösung

Also, ich weiß nicht, was das eigentliche Problem hier ist, aber wenn ich Route der STDERR von svnadmin auf / dev / null, wenn ich den Dump tun, alles gut geht. Ich versuchte, das „leise“ Flag (-q) verwenden und es gelingt auch. Ich gehe davon aus, dass, wenn ein Shell-Skript von einem crontab in STRERR begegnet genug Text läuft, stoppt die Ausführung von was auch immer es läuft und geht in die nächste Anweisung. Ich habe eine MD5 auf einer manuellen Datei und eine geplante Datei durchgeführt und sie sind identisch. Dies scheint gelöst zu werden. Also, wenn jemand dieses Problem selbst begegnet, das ist der Shell-Skript ich erfolgreich über die frühen Abschneiden erhalten verwendet. Es ist ein wenig ausführlich. Es tut uns leid.

#!/bin/sh
echo "STARTING AT $(date +\%Y/\%m/\%d/T%I:\%M:\%S)" >> /home/andrew/svnlog.txt
rm /tmp/andrewMobileApp.dump
svnadmin dump /var/svn/repos/andrewMobileApp > /tmp/andrewMobileApp.dump 2>/dev/null
echo "svnadmin exited with code $?" >> /home/andrew/svnlog.txt
gzip -c /tmp/andrewMobileApp.dump > "/home/andrew/svnbackups/andrewMobileApp.dump.$(date +\%Y\%m\%d\%I\%M\%S).txt.gz"
echo "gzip exited with code $?" >> /home/andrew/svnlog.txt
echo "DONE AT $(date +\%Y/\%m/\%d/T%I:\%M:\%S)" >> /home/andrew/svnlog.txt
echo  "-----" >> /home/andrew/svnlog.txt

Dieses Skript wird durch einen Super-User crontab aufgerufen.

Andere Tipps

Vor allem, stellen Sie sicher, dass svnadmin auf der Umgebungsvariablen PATH des Cron-Jobs ist. Sie können einen vollständigen Pfad für /usr/bin/svnadmin angeben müssen oder was auch immer geeignet ist.

Auch, anstatt svnadmin dump, Sie können in svnadmin hotcopy aussehen wollen, die ein Werkzeug für Sicherungen des Endlagers vorgesehen ist.

Ich legte dies als Fehler im Debian-cron-Paket, da ich es auch dort erlebt wurde (unter einem vserver). Siehe Bug # 577133 in Debian. Christian Kastner gepatcht den Fehler, indem Sie Code hinzufügen Bypass alle, um den Mail-Verarbeitungscode, wenn kein MTA gefunden wird.

Haben Sie Größe Grenze für die Benutzer-Verzeichnis haben? Vielleicht möchten versuchen es zuerst Temp dump.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top