noqqe


blog | sammelsurium | projects | about

roborobo | selfmade robot

2010-04-11 @ backup, daemon, deb, debian, development, linux, roborobo, robot, shell, sicherung, ubuntu

Robot-icon Auf dem Weg durch die Filesysteme meiner Rechner/Laptops/Server kam ich immer wieder in Situationen, in denen ich gerne Files (die mir wichtig waren) an einer bestimmten Stelle aufheben wollte. Ich hab über die Monate bzw. fast schon Jahre hin immer andere Systeme, Praktiken und Plätze entwickelt in denen ich diese Configs und ähnliches ablege. Über kurz oder lang ist aber jede dieser Methoden zu aufwändig oder zu unstrukturiert. Wenn ich Konfigurationsdateien von Daemons editierte, kopierte ich vorher die alten Files an eine bestimmte Stelle. Ziemlich Standart. Der Vorgang ist an sich ziemlich mühsam. Wirr liegen irgendwo irgendwelche Files rum.

Vor ein paar Wochen habe ich dann angefangen mir ein kleines Helferlein zu coden. Anfangs war dieses Helferlein nur für mich gedacht und demnach relativ speziell. Ich nannte ihn “roborobo”.

Was er tut ? Ich gebe meinem Helfer einfach das File “in die Hand”. Alles andere erledigt er.

File hinzufügen

$ roborobo /etc/postfix/main.cf`

Alle bekannten Files updaten:

$ roborobo

Er nimmt das File an, ordnet es ein und sichert es in seinem Verzeichnis mit dem kompletten Verzeichnispfad nach Baumstruktur-Art. Außerdem prüft roborobo jetzt jede Stunde anhand der sha1sum ob sich in dem File seit der letzten Prüfung etwas getan hat. Falls Veränderungen da sind, wird das File mit neuem Datum wieder abgespeichert. Das sieht ungefähr so aus:

.roborobo/
|-- etc
|   |-- hosts
|   |   |-- hosts-20100409-1348
|   |   `-- hosts-20100409-1651
|   `-- network
|       `-- interfaces
|           |-- interfaces-20100409-1654
|           `-- interfaces-20100409-1655

Ich brauche mich somit um nichts mehr kümmern. Gebe dem “kleinen” die Files die mir wichtig sind und er passt darauf auf. Fühlt sich irgendwie an wie ein Backup-Daemon ;)

Jedenfalls, habe ich roborobo jetzt für den Einsatz auf jedem beliebigen System umgebaut und in ein Debianpaket gebastelt. Dokumentation erstellt, Config-Dateien ausreichend selbsterklärend gestaltet usw.

Wer sich dafür interessiert oder mal testen mag:

roborobo-Debianpaket bei Github

roborobo-Projekt auf Github

Content:

    roborobo
    |-- DEBIAN
    |   `-- control
    |-- etc
    |   |-- cron.d
    |   |   `-- roborobo
    |   `-- roborobo
    |       |-- roborobo.conf
    |       `-- roborobo.path
    -- usr
        |-- bin
        |   `-- roborobo
        -- share
            |-- doc
            |   `-- roborobo
            |       |-- changelog
            |       `-- copyright
            -- man
            -- man1
                `-- roborobo.1

Das ganze wie alles was ich tue, unter GPLv3.

Update 2014: Ich bin mir nicht sicher ob man das wirklich noch nutzen möchte. Viel eher würde ich zu etckeeper raten.

Comments (8)

jurkan on 2010-04-11T17:11:18
Jetzt gibts dafür auch ein Arch Linux Package im AUR :D Funktioniert ganz gut, allerdings kriege ich beim Aufruf von "sudo roborobo" immer die Meldung "error", hervorgerufen in Zeile 68 (auskommentieren => Error weg), allerdings habe ich keine Ahnung wo das her kommt. Irgendwelche Ideen?

jurkan on 2010-04-11T17:36:18
OK, Error tritt nur auf, wenn ich die Datei /etc/hosts mit dabei habe. Deren Rechte sind allerdings -rw-r--r-- root root, also keine Ahnung wo der Error herkommt...

noqqe on 2010-04-11T21:22:46
Hallo Jurkan! vielen Dank für deine Kommentare :) Arch Linux AUR ? :) musst du mir erklären ;) Der Error mh. Mit sudo hab ich es ehrlichgesagt noch garnicht ausprobiert. Ich werde es mal durchspielen. kann man mit dir irgendwie kontakt aufnehmen? :) Jabber oder ähnliches? Mich intressiert dein Arch Paket! Grüße

jurkan on 2010-04-11T21:37:24
jurkan@jabber.org (der Server ist leider etwas instabil, hat mich nie gestört da ich jabber seltenn benutze) alternativ auch ICQ -zensiert- Bitte mit aussagekräftiger Authorisierungsanfrage, sonst wirds geblockt ;-)

noqqe on 2010-04-12T00:03:29
Vielen Dank Jurkan nochmal für die Arch AUR Portierung. http://aur.archlinux.org/packages.php?ID=36366 Bug ist gefixed. Lag an der File-Identifikation. War nicht eindeutig genug. Update ist in Git(-hub). Genaugenommen 2 Zeichen.

Uli on 2012-10-12T16:46:41
Gibt es die Möglichkeit das Schreiben ins Logfile nur bei Fehlern zu schreiben. Das Toolf füllt mir das Logfile.

noqqe on 2012-10-13T11:20:45
Ähm, also ich hab den source jetzt garnicht mehr im Blick, weil ich mittlerweile auch zu git gewechselt bin und damit meine Dateien verwalte. Wenn dann müsstest du da selbst Hand anlegen...

Uli on 2012-10-15T17:37:33
Okay, denke das ist ne sache vom cron und hat direkt mit dem script nichts zu tun. Danke für Deine schnelle Antwort