OneNote-Backup, nun in effizient

Vor einer ganzen Weile habe ich mich schon einmal darüber ausgelassen, dass das so mit den Backups unter OneNote nicht schön ist. Eine Art Versionierung wollte ich haben, damit ich cloud-unabhängig auch bei versehentlichen Löschungen nichts verliere. Bisher gab es also eine Liste mit Abschnitten, die aus dem Notizbuch auf OneDrive geglaubt wurden, heruntergeladen und anschließend archiviert. Das wurde spätestens beim zweiten Notizbuch unübersichtlich, und ein neuer Ansatz musste her; skalierbar bitte:

Ein neues Microsoftkonto, mit dem die zu sichernden Notizbücher geteilt werden, wird über die API benutzt. Sinn dahinter: alle Notizbücher, die mit diesem Konto geteilt sind, werden heruntergeladen. Und weil ich mich nun einmal aufraffen konnte, das ganze neu zu entwickeln, ist jetzt auch die Liste mit den Abschnitten hinfällig, sondern es werden einfach alle Abschnitte gesichert, die nicht in einer Unterkategorie gelandet sind. Letzteres nicht mit zu sichern ist dann primär meine Faulheit, hier noch eine Iteration einzubauen.

Jede Nacht wird das Backup ausgeführt, anschließend auf einen entfernten Webspace per rsync über SSH hochgeladen und in Folge dessen noch aufgeräumt, was sich angestaut hat. Das meint: Backups älter als drei Wochen werden auf dem entfernten Webspace gelöscht, Backups älter als drei Tage auf dem Server selbst. Wie das Ganze nun funktioniert, versuche ich, schrittweise aufzuzeigen:

Weiterlesen

SoftEther-VPN an bestimmte IP binden

(english: bind softether vpn to specific ip – english tl;dr below the german part)

Bei der Absicht, einen SoftEther-VPN-Server einzurichten, stieß ich auf das Problem, dass Softether die relativ intelligente NAT-Traversal mit dem HTTPS-Port 443 begeht. Nun ist es ja nicht so, dass ich diesen Port nicht bräuchte, und auch nicht nur SoftEther auf dem System laufen habe. Kurzum: es gibt einen Konflikt zwischen SoftEther und meinem HTTPS-Server (nginx); beide wollen Port 443 belegen.

Mein Wegbereiter auf dem Weg zur Lösung: der Server hat mehrere IPv4-Adressen auf eth0. Eine davon wird nur für den VPN fortexistieren, sodass mein Ziel folgendes Setup ist:

192.168.2.100 -> auf Port 443 antwortet der Webserver
192.168.2.200 -> auf Port 443 antwortet SoftEther

Nun ist es eigentlich Usus, dass sich eine Software an ein bestimmtes Interface oder eine bestimmte IP binden kann, damit genau in so einem Fall die Trennung der Portbelegung sauber geklärt werden kann. SoftEther kann das leider nicht; entsprechende Pullrequests sind seit Ewigkeiten ungemerged.

Es muss aber eine Lösung geben – und zwar schon lange, bevor SoftEther oder nginx ein Datenpaket abbekommen.

Weiterlesen

Nach dem Upgrade auf Debian Jessie – systemd füllt das Log

tl;dr: Check for cronjobs (passive like icinga-checks and active like crontabs!) and execute loginctl enable-linger [affected user]. Replace [affected user] with the user which is used for login with SSH or is executing the cronjob. Auf Cronjobs prüfen (passive Jobs wie Prüfungen von Icinga über SSH und aktive Prüfungen wie Crontabs) und für den betreffenden Benutzer, der diesen Job ausführt bzw. als Loginuser genutzt wird, loginctl enable-linger [Benutzer] ausführen.

Eigentlich hatte ich großen Respekt vor dem Upgrade von Debian Wheezy auf Jessie. Eingestiegen bin ich damals auf Squeeze; das war ein OpenVZ-Containerchen mit 1GB RAM, den ich mir offenbar regelmäßig mit anderen teilte. Seitdem bin ich nur noch mit KVM-Containern in Beziehungen, und die Kündigung damals hatte ich dem Hoster zugesandt, als Wheezy gerade das stabile Laufen gelernt hatte. Entsprechend dem setzte ich die Box bei dem neuen Provider neu auf, stieg gleichzeitig von Froxlor auf komplette eigene Administration unter nginx und mariadb um und hatte so ein Upgrade umgangen.

Weiterlesen

Windows zum Fenster raus?

Nach einer etwas längeren Zeit des Ärgerns über Treiber, Software und Partitionierung habe ich es nun fertig: Auf meinem Rechner läuft Ubuntu. Leider kann ich Linux nicht gänzlich allein betreiben, da z.B. MAGIX-Software unter Linux nicht läuft, und ich so um Windows nicht herum komme. Da ich auch um Microsoft Office nicht herum komme, habe ich in der virtuellen Maschine ein Windows 7 mit Office 2010, um auch eine schnelle Verbindung zur Ubuntu-Installation zu haben – Dualboot nervt ab da einfach, weil man wegen einer .doc wieder neustarten muss. Das Fazit: Windows 8 nutze ich nur für Videoschnitt und Foto-/Ton-Bearbeitung, also seeehr selten, aber Windows 7 wurde auch degradiert: Mehr als der “Tisch” für die Schreibmaschine (Office 2010) ist es nicht. Sonst arbeite ich mit LibreOffice oder evaluiere Caligra, mal sehen wie das so ist. Doch warum der Umstieg?

Weiterlesen

Du hast sie in der Hand

Unter den meisten Serverbetriebsystemen führt nichts an ihr vorbei, für Unwissende ist es “was zum hacken” – die Kommandozeile. Bei mir steht nun auch eine Veränderung ins Haus, und Backups dafür werden unter Windows ganz üblich mit robocopy per Kommandozeile gemacht, wenngleich ein Fullbackup auch auf die Backupfestplatte ganz schön eindonnert (Noch 495 von 1810GB frei).

Linux bietet mir dafür rsync, welches ich immer noch ohne irgendwelche Frontends nutze – einfach mit der Shell. Ich kenne die Kommandozeile seit DOS, und seit dem liebe ich ihre Einfachheit. Nichts mit Klick-Klick-Klick-Klick, sondern direkt zum Ziel. Auf meinem vServer läuft Debian Wheezy, auf meinem Rechner neben Ubuntu auch Windows für diverse Anwendungen, welche unter Ubuntu nicht laufen, wie z.B. mein etwas älteres, aber aus Kostengründen nie geupdatetes Photoshop CS4. Klar, GIMP geht auch, aber irgendwie ist PS das Tool. Das Schweizer Messer. Aber zurück zur Shell: Tatsächlich fragte mich mal einer, ob “Ich da hacken würde” – ich habe Putty aufgemacht und zu meinem Server per SSH connected, um Updates einzuspielen. Naja, meiner Ansicht nach hat das nichts mit Hacken zu tun, aber so ist das halt, wenn man “diesen schwarzen Kasten” zum ersten mal sieht.

Die Shell ist ein mächtiges Werkzeug, die einem das (Linux-)Leben um manches einfacher macht, insbesondere die Bash hat bei mir ihren festen Platz. Leider ist es auch die Shell, die das Tor zu Software öffnet, die in der Lage ist, nicht nur gutes zu leisten, sondern auch missbraucht zu werden. Paradebeispiel sei hier netcat oder vielleicht auch fdisk.

Weiterlesen

Prost Mahlzeit! – vServer und sowas

Ich dachte ich spinne, als mir A. am 1. März eine Mail weiterleitet: Kündigung zum 31. des selben Monats. Wir sind beide Kunde des gleichen Anbieters, und finde es verwerflich, erst durch einen guten Bekannten zu erfahren, dass einem der vServer (nicht nur mir, es wäre “Der Support für die oben genannten Produkte ist einfach zu aufwendig”), was man natürlich sehr bedauere. Ich erfuhr durch diese Weiterleitung, dass A. die Mail schon am 18. Februar erhielt – wieso wurde ich nicht gekündigt? Wie auch immer, eine Nachfrage beim Betreiber der Firma sollte helfen. Selber nutzte dieser Skype, also geht das auch recht flott. Interessanterweise bestätigte er mir die Kündigung, allerdings war mir in den AGB kein Punkt bekannt, der eine Kündigung seitens des Anbieters in der Vertragslaufzeit zulässt. Ich bin auch kein Anwalt, und so schlimm ist es auch nicht. Bitte korrigiert mich, wenn ich da falsch denke. Längeres Nachdenken brachte mich zu dem Punkt, dass ich keine Kündigung erhalten habe – weder der Spam-Ordner noch der Posteingang sagen dazu etwas. Ich schrieb am 4. März gegen Abend per Skype:

Guten Abend, Ich habe bisher noch keine Kündigung erhalten. Damit gehe ich davon aus, dass ich doch nicht betroffen bin, da nur ein Freund diese Mail erhalten hat.

Das war offenbar für ihn der Zeitpunkt, mir eine Kündigung zu senden – am 5. März erhielt ich die Kündigung zum 31. März. Ich bin mir, wie gesagt, nicht wirklich sicher, ob das so richtig ist. Bei der Bestellung wurde eine Vertragslaufzeit von einem Monat eingegeben.

Weiterlesen

gitolite-Repos auf dem Uberspace per http veröffentlichen

Achtung: Ob man die Variable $USER an den Stellen, wo sie verwendet wird, auch wirklich nutzen sollte, habe ich nicht überprüft. Manuell den Nutzer eintragen ist sicherer.

Langer Titel, langer Weg dahin:

Alles fing damit an, dass “mal eben” zwei an einem Git-Repo arbeiten wollen, und da ich eben uberspace.de mag und dort Git zu Verfügung hatte, nutzten wir eben gitolite. Wir fingen an, doch bald stellte sich das erste Problem: Wie sollen andere das Repo “test.git” clonen? Wir können (dank dem SSH-Key) ja mal eben

git clone user@cetus.uberspace.de:test

machen, und haben halt einen Klon auf dem Rechner. Will man das ganze verlinken, kam Jonas als erstes die Idee, das Repo in einen für den Apachen erreichbaren Ordner zu verschieben und einen (wer hätte es gedacht) Link zu erstellen:

mkdir /var/www/virtual/$USER/git.$USER.cetus.uberspace.de
cd /var/www/virtual/$USER/git.$USER.cetus.uberspace.de
mv /home/$USER/repositories/test.git test.git
ln -s /var/www/virtual/$USER/git.$USER.cetus.uberspace.de/test.git /home/$USER/repositories/test.git

Wenn man jetzt aber versucht, das Repo zu clonen, wird das an einem 403 scheitern:

$ git clone http://git.user.cetus.uberspace.de/test.git
Cloning into 'test'...
error: The requested URL returned error: 403 while accessing http://git.user.cetus.uberspace.de/test.git/info/refs?service=git-upload-pack
fatal: HTTP request failed

Das liegt an der Berechtigung. Der Ordner /var/www/virtual/$USER/git.$USER.cetus.uberspace.de  hat von sich aus einen chmod von 700, und diverse Unterverzeichnisse bekommen den bei jedem push. Also jedes mal einen chmod setzen, ist sinnfrei. Damit alles funktioniert, braucht das Verzeichnis /var/www/virtual/$USER/git.$USER.cetus.uberspace.de/test.git  einen chmod von 705, und alle Unterordner und Dateien auch. Direkt nach dem erstellen des Repos sollte man es schon verschieben und diverse Handlungen vornehmen, auch vor dem ersten push. Als erstes wären da die update-server-infos , und der chmod:

cd /var/www/virtual/$USER/git.$USER.cetus.uberspace.de/test.git
Weiterlesen