Sie sind nicht angemeldet.

Anzeigen

**Wir werden in den kommenden Tagen einen Umzug auf einen neuen Server durchführen. Im Rahmen dieser Maßnahme wird das Forum ca. 1 Stunde nicht erreichbar sein.** nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

Lieber Besucher, herzlich willkommen bei: Die NSLU2 Community****wenns ums speichern und streamen geht****. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

25.01.2007, 20:30

(teilweise gelöst) Backupscript für Subversion arbeitet nicht via cron(d)

Hallo,

ich habe mal wieder ein Problem mit meinem Subversion-Server auf der NSLU2.:(
Mit Hilfe eines Perl-Scripts möchte ich die Datensicherung organisieren. Der grundlegende Ablauf ist folgender:
1.) prüfen, ob eine Änderung vorliegt (anhand der Revisionsnummer),
2.) falls eine Änderung vorliegt:
2a.) sichern des aktuellen Stands mit "svnadmin dump", dabei Verwendung eines eindeutigen Dateinamens für die Zieldatei,
2b) den Dump zippen, verschlüsseln und per FTP übertragen.
Das ganze Script soll automatisch via cron einmal pro Nacht ausgeführt werden.

Das Script arbeitet einwandfrei, wenn ich es aus der Konsole (Telnet) heraus starte. Wird es aber vom crond gestartet, arbeitet "svnadmin dump" nicht mehr richtig. Dabei ist es aber nicht etwa so, dass überhaupt keine Ausgabe erzeugt wird, sondern die Ausgabe wird einfach abgeschnitten, bevor die erste Revision eingetragen wird (siehe Anhang). Der Rest des Scripts arbeitet korrekt.

Hier die betreffenden Stellen des Scripts (für den Test wurde die Funktionalität zurückgebaut):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub test
{
  system('Set_Led beep1 &');
  system("/opt/bin/svnadmin dump --deltas /apache/subversion/Repository/Test > /apache/subversion/Backup/Test/Test.dmp");
  system('Set_Led beep1 &');
} # sub test

if ($#ARGV >= 0)
{ # Aufruf mit Argumenten
  if (@ARGV[0] eq 'test')
  {
    test;
  } # Parameter "test"
} # Aufruf mit Argumenten
Wie bereits geschrieben, wird beim Aufruf von

Quellcode

1
 /opt/etc/apache2/scripts/doBackup.pl test
aus der Konsole (Nutzer root) ein korrekter Dump erzeugt.
Trage ich aber den gleichen Aufruf in die /etc/crontab wie folgt ein,

Quellcode

1
00 18 * * * root /opt/etc/apache2/scripts/doBackup.pl test
startet das Script zwar um 18:00Uhr (zwei Beeps sind zu hören), es wird auch eine Dump-Datei erzeugt, aber sie ist unvollständig.
Trage ich aber das Programm des system()-Aufrufs direkt in der crontab ein:

Quellcode

1
00 18 * * * root /opt/bin/svnadmin dump --deltas /apache/subversion/Repository/Test > /apache/subversion/Backup/Test/Test.dmp
,so wird eine vollständige Dump-Datei erzeugt.

Ich habe testweise den Vollzugriff für das Repository und alle Unterverzeichnisse mittels "chmod -R a+rwx" aktiviert, aber das Verhalten bleibt bestehen.

Leider habe ich von Linux und Perl nicht wirklich viel Ahnung, und bin deshalb mit meinem Latein am Ende.

Kann/würde mir bitte, bitte, bitte jemand helfen?!

Vielen Dank im Voraus,
msc76
»msc76« hat folgende Datei angehängt:
  • Dumps.zip (931 Byte - 54 mal heruntergeladen - zuletzt: 27.06.2018, 02:46)

Anzeigen

caplink811

Forensupporter

Beiträge: 2 200

Verwendetes NAS-Device: 64X2/8GB/Ubuntu10.04LTS

Firmwareversion / your current Firmware: anderes

Wohnort: Berlin

Beruf: TK/IT Consulting and Engineering

  • Nachricht senden

2

25.01.2007, 22:43

N'Abend,

wenn Du Dein Script auf der Console laufen lässt, erfolgen dann irgenwelche Ausgaben? Oder wird Dein Script ausgeführt, ohne Ausgaben, und wenn fertig, erscheint wieder der Prompt?

bye
JrB
"Supporting joe users worldwide" <- that's our motto


Anzeigen

3

26.01.2007, 08:26

(teilweise gelöst) Backupscript für Subversion arbeitet nicht via cron(d)

Hallo caplink811,

erst einmal Danke für die schnelle Antwort! Und ja, auf der Konsole erscheint:

Quellcode

1
2
* Dumped revision 0.
* Dumped revision 1.
Ich habe jetzt dem Aufruf von "svnadmin dump" einmal den Parameter "-q" hinzugefügt, wodurch die Ausgabe NICHT erfolgt. Und siehe da - jetzt wird der korrekte Dump erzeugt.:):):)
Mich würde aber dennoch interessieren, WARUM das Verhalten so ist?!

Danke nochmal für den Denkanstoß,
msc76

caplink811

Forensupporter

Beiträge: 2 200

Verwendetes NAS-Device: 64X2/8GB/Ubuntu10.04LTS

Firmwareversion / your current Firmware: anderes

Wohnort: Berlin

Beruf: TK/IT Consulting and Engineering

  • Nachricht senden

4

26.01.2007, 14:20

Tach,

Weil das Script nicht weiß, wohin mit Bildschirmausgabe... Es ginge auch (üblicher Weg):

00 18 * * * root /opt/etc/apache2/scripts/doBackup.pl test >/dev/null

bye
JrB
"Supporting joe users worldwide" <- that's our motto


5

26.01.2007, 20:08

Hallo nochmal,

ich habe den Eintrag in der crontab mit ">/dev/null" versehen und das "-q" aus dem Aufruf von "svnadmin dump" entfernt. Und wieder wurde der Dump abgeschnitten.:mad:
Außerdem: Wieso stören sich weder "svnadmin dump" beim Direkteintrag in der crontab (auch ohne die Umleitung in /dev/null), noch der Rest des Scripts (enthält auch noch Ausgaben via print) an der fehlenden Umleitung?
Aber egal, mit der "-q"-Option arbeitet "svnadmin dump" ja wie gewünscht.

Gruß,
msc76

Social Bookmarks