knasan

Linux and more

STOPP-ACTA Demo 25.02.2012 Heilbronn

Was ist Anti Counterfeiting Trade Agreement, kurz ACTA?

“ACTA bedroht die Freiheit der Bürgerinnen und Bürger, verstärkt die Überwachung, schränkt den Zugang zu Kultur ein und ist ein Hindernis für Innovation. Dieses Abkommen wurde unter Ausschluss der Öffentlichkeit geheim erarbeitet und ist undemokratisch.”

Interview mit Kader Arif über ACTA

Kann man auf fast jeder zweiten STOPP-ACTA Seite lesen. Auf YouTube findet man einige Videos zu diesem Thema. Auf Facebook haben sich kleine Gruppen gebildet die Demos gegen das ACTA Abkommen Planen. Hier ein kleiner Überblick, welche Städte schon dabei sind. Es stehen leider nicht alle Städte drin, wie zum Beispiel Heilbronn.

Google Maps ACTA Protests 25.Februar.2012

Es gibt auch Online-Petitionen, die man unterzeichnen sollte.

AVAAZ.org STOPT-ACTA

Obwohl mir das Wort “Aussetzen” nicht gefällt, besser wäre “nicht zu Unterzeichnen” möchte ich euch die Online-Petition nicht vorenthalten, obwohl ich in dieser Petition wenig Sinn sehe. Da AVAAZ die nicht Unterzeichnung fordert, habe ich dort meine Stimme abgegeben.

Damit man sich ein noch besseres Bild über ACTA machen kann, empfiehlt es sich noch diese zwei Seiten näher zu betrachten.

http://www.heise.de/newsticker/meldung/EU-Parlament-beginnt-Debatte-um-ACTA-Ratifizierung-1421066.html

http://digitalegesellschaft.de/2011/10/warum-ist-acta-so-umstritten-und-warum-sich-politiker-und-burger-dafur-interessieren-sollten/

Eben noch zufällig gefunden, einen Artikel von der Süddeutschen-Zeitung: http://www.sueddeutsche.de/digital/anti-piraterie-abkommen-warum-der-europaeische-gerichtshof-acta-stoppen-muss-1.1291038

IPRED

Leider ist in Heilbronn die beliebte Guy-Fawkes-Maske wegen das Vermummungsverbot nicht erlaubt. Ich bitte jeden, der zu dieser DEMO kommt dies zu berücksichtigen und einzuhalten.

Weitere Informationen über STOPP-ACTA DEMO am 25.02.2012 in Heilbronn:
Route und andere Informationen

Auch auf der Webseite der Heilbronner Piraten findet man einige Informationen:
http://www.piratenpartei-heilbronn.de/2012/02/stopp-acta-demo-in-heilbronn/

Wir sehen uns auf der DEMO, damit dass Internet ein “freies Internet” bleibt und unsere Menschenrechte und Privatsphäre nicht genommen wird. Wenn wir diese erstmal verloren haben, bekommen wir diese nicht mehr so schnell.

Berlin – und alles ist anders

Aus beruflichen gründen durfte ich für 14 Tage nach Berlin. Obwohl meine Arbeit in den Vordergrund stand, hatte ich etwas Zeit Berlin zu erkunden. Hierbei habe ich nicht nur Orte und Locations besucht die typisch für „Touristen“ sind, ich habe mir auch die Ecken und Kanten von Berlin angesehen. Leider kam die IDEE ein Blog daraus zu machen etwas spät, deswegen habe ich nicht all zu viele Bilder oder Videos.

Vor gut Zehn Jahren war schon einmal in Berlin und konnte das Brandenburger Tor nicht besichtigen, deswegen stand es an erster Stelle. Spektakulär war es dort nur, weil sich dort „Darth Vader“ und die Stasi aufgehalten haben. In welchem Zusammenhang Darth Vader dort vertreten war, ist mir noch ein Rätsel.

Vom weitem Entfernt sah man Blaulicht, zuerst wunderte ich mich was dort abgeht. Dachte kommt gerade ein Promi bzw. Politiker. Fünf Minuten später die Aufklärung. Es war eine Demo von Occupy, ob diese geplant und genehmigt war konnte ich nicht herausfinden. Man hörte jedoch aus dem Lautsprecher der Polizei etwas sagen, für mich hörte es sich an wie „bleibt stehen“. Ob gemeint war, haltet hier eure Reden oder löst die Demo auf – ich weiß es nicht. Aber es war friedlich. Ich kannte Occupy vorher nicht, aber im Internet findet man einige Informationen, angefangen hat es mit „Occupy Wall Street“ also „Besetzt die Wall Street“. Es scheint mir ein Trend zu werden, denn nicht nur Deutschland nimmt „Occupy Wall Street“ als Vorbild. Aber leider waren nicht alle Demos so friedlich wie in Berlin. ( http://www.zeit.de/digital/internet/2011-11/pfefferspray-cop/komplettansicht)



Wenn man Berlin mal im 360° Winkel sehen möchte, der muss den Fernsehturm am Alexanderplatz besuchen. Zwar finde ich 11 Euro für diesen Besuch etwas viel, aber dennoch lohnt sich dieser Besuch durch eine atemberaubende Aussicht. Wenn man im Fernsehturm ist, lässt erahnen warum man so viel hierfür zahlen soll. Der Turm ist im Eingangsbereich nicht fertig bzw. wird umgebaut und das Restaurant wir für 14 Tage geschlossen wegen Umarbeiten. Dieser hatte bei meinem Besuch zwar noch offen, aber da dies ein typischer Tourismus Gang ist, kann ich mir vorstellen dass die Preise dort nicht gerade günstig sind. Aus diesem Grund habe ich das Restaurant gemieden.

Wenn wir schon mal beim Stichwort günstig sind, dann möchte ich kurz erwähnen dass es in Berlin große Unterschiede zwischen „Gut“ und „Gut und Günstig“ gibt.
Am Brandenburger Tor kann die Currywurst schon mal 3 Euro kosten und auch Kaffee und Co sind nach meiner Meinung mit „Tourismus Steuer“ zu zahlen und sollten gemieden werden – „ich hab es auf jeden Fall“.

Was ich empfehlen kann, ist der Hänchengrill am Westphalweg den man mit der U6 erreicht. Vom Hotel Holiday Inn (Prenzlauer Berg), erreicht man dieses Lokal mit einer Einzelfahrkarte für 2,30 Euro.

Mit der M2 (vor der Haustüre von Holiday Inn) bis zum „Alexanderplatz“ fahren, dort kommt man mit der S7 bzw. S75 zur Friedrichstraße und von dort aus weiter bis zu „Westphalweg“, hierfür benötigt man jedoch 45 min. Den Ausgang Nördlich verwenden (Mariendorfer Damm), nur noch ein paar Meter links und man bekommt ein Leckeres und günstiges Hänchenmenü. Personal ist sehr nett und zuvorkommend, es gab zu meiner Bestellung kostenlos Soßen zum Testen dazu. Ich werde dieses Lokal wieder besuchen, wenn ich in Berlin zu Gast bin.

Woran man sich in Berlin erstmal gewöhnen muss wenn man eine U-Bahn sucht, diese muss nicht immer unterhalb sein. Es gibt sogar ein U-Bahnhof der ca. 1 KM oberhalb gebaut wurde und erst später Unterirdisch geht. Es kann also mal vorkommen, dass man eine ebene höher als die S-Bahn/Tram gehen muss. Aber es geht, ich habe mich schnell in Berlin zurecht gefunden.

Obwohl gerade die Berlinale war/ist, habe ich keine Prominente gesehen, abgesehen davon würde ich diese evtl. gar nicht erkennen :-)

Just before sync umount

Seit Kernel 3.0 bekam ich manchmal einen Kernel Bug den ich mir heute näher angesehen habe.
Hierbei ist mir aufgefallen, dass dieser Kernel Bug immer dann aufgetreten ist wenn sysnapshot versuchte meine Backup-Festplatte auszuhängen.

Problem war, der rsync Prozess war beendet und ich versuchte sofort die Festplatte auszuhängen aber manche Schreibprozesse waren noch nicht beendet. Mein erster Test ergab, wenn man drei Sekunden wartete trat dieser Bug nicht auf.

Mir war klar, dass ich irgendwie versuchen musste abzuwarten bis alle caching Vorgänge der Festplatte beendet sind. Dann viel mir ein, da gibt es doch noch „sync“.

Anstatt nun einfach nur drei Sekunden zu warten probierte ich es aus. Also ein „sync“ vor „umount“. Und siehe da, es funktioniert.

Gut das war schnell erledigt. Also gleich noch mein eigener Bug suchen. Es kam mir vor, als würde sysnapshot rsync zwei mal ausführen. Nach einer kleinen Untersuchung stellte ich fest, ja das ist so.

Als ich mir den Codeabschnitt do_umount näher angesehen habe, wurde es mir klar warum. Ich wollte mir eine IF Statement sparen und übergab diese Funktion einfach nochmal „system(rsync_cmd)“, ich nahm an dies liefert mir true oder false, was ja auch so ist. Mir war jedoch nicht bewusst, das hierbei der Befehl nochmal aufgerufen wird.

Nachdem ich diesen Bug bereinigt habe stellte ich fest – wow weniger CPU Verbrauch!

Also heute war ein erfolgreicher Tag für mich und Sysnapshot :-)

Erste Versuche “Ruby Style Guide” zu übernehmen

Ich wollte Ruby erlernen und nichts ist besser sich gleich ein Projekt auszudenken. Sysnapshot war geboren. Es ist spannend immer wieder etwas neues dazu zu lernen und man lernt nie aus. Schon ein paar mal habe ich den Code umformuliert, damit dieser besser und verständlicher gelesen werden kann (für mich zumindest).
Jetzt habe ich vor Kurzem ein „Ruby Style Guide“ gelesen und vieles habe ich instinktiv richtig gemacht, aber auch einige Style Sünden begangen.

Ich ging also Zeile für Zeile durch und fand prompt ein paar Sünden. Im „Style Guide“ stand, dass man nicht über 80 Zeichen gehen sollte. Wie dies manchmal genau gehen soll, weiß ich nicht. Es gibt ein paar Zeilen die weit über 100 Zeichen gehen und ich hab dafür noch keine Lösung gefunden.

Es hat jedoch auch etwas gutes das ich den Code Zeile für Zeile durchgegangen bin. Mir waren doppelte Eckige klammern aufgefallen, diese hatte ich eingeführt um Ursprünglich die erstellten „hashes“ als Strings besser auslesen zu können und kompatible zu Ruby 1.8 zu bleiben. Erstanden ist jedoch ein „hässlicher“ Code, den ich jetzt den Kampf angesagt habe.

Langsam aber sicher nimmt der Code eine gute und übersichtliche Form an. Für die Zeilen mit Überlänge wird sich mit Sicherheit auch noch eine Lösung finden, es braucht eben Zeit und diese werde ich mir nehmen.

Der neue Code wurde wieder mit den selben Tests unterzogen wie beim letzten mal und konnte sogar einen kleinen Schönheitsfehler beheben. Es wurde versucht zwei mal die ein und die selbe Partition zu „umounten“ wenn man eine Verschlüsselte Partition verwendet. Somit bekam man eine Fehlermeldung dass „/dev/mapper/backup-name“ nicht existiert. Ist ja auch klar, der Crypt Container wurde schon entfernt und eben nochmal versucht.

Zusätzlich wurde auch der CronJob-Mode getestet und dieser Funktioniert ohne Probleme

Sandy

Neues Update von Sysnapshot

Es hat sich viel getan, Sysnapshot unterstützt jetzt verschlüsselte Partitionen mit einem Key-File. Eine Funktion “do_umount” ist hinzugekommen und kleinere Bugs wurden behoben. Ein Update lohnt sich also.

Zum Bug, dieser ist aktuell im git behoben.
Die Snapshots wurden mit Zeitform 2011-11-22,16:33:20 angelegt, jedoch wurden Januar bis September mit 1 bis 9 und nicht 01 bis 09 gesichert – also 2011-1-10 statt 2011-01-10, dies hatte zur folge dass diese nicht entfernt wurden wenn “MaxSnapshots” eingeschaltet war. Es ist also anzuraten eventuell vorhandene Ordner umzubenennen, damit diese von Sysnapshot nicht mehr ignoriert werden.

Sysnapshot musste sich einen größeren Test unterziehen bevor es auf dem Git-Server geladen wurde. Getestet wurde ruby 1.8 und 1.9

1. Unverschlüsselte Backup-Partition
2. Verschlüsselte Partition
3. Verschlüsselte Partition mit Key-File
4. MaxSnapshots und
5. MinSpaceLeft

Ich wollte sichergehen dass jede Funktion auch funktioniert …. mir fällt gerade ein, dass der ConJob Mode nicht getestet wurde. Dies hole ich demnächst nach und werde es hier bekannt geben.

Sandy

Sysnaphsot und verschlüsselte Backup-Festplatte

Eine Verschlüsselte Partition für ein Backup ist natürlich eine gute Sache. Es schützt einem davor, dass unbefugte nicht auf die Daten vom Backup zugreifen können. Das durfte natürlich nicht in sysnapshot fehlen. Noch gibt es keine Unterstützung von keyfiles, obwohl dies kein Problem darstellen sollte.

Wer jetzt schon keyfiles verwenden möchte, kann folgendes testen, Zeile 105 wie folgt ändern (ungetestet)

cmd_crypt_open = "/sbin/cryptsetup luksOpen /dev/disk/by-uuid/#{cfg[:crypt_d][0].strip} #{crypto_name} --key-file cfg[:crypt_f][0]"

In der Konfiguration muss nun ein Keyfile angegeben werden. Somit sollte man schon jetzt sysnapshot mit keyfile verwenden können.

Eine gute Seite über Verschlüsselung von Festplatten gibt es im Arch Wiki: Festplatte verschlüsseln

Ich selbst verwende noch keine keyfiles, ich muss also meine Passwörter eingeben, was in meinem Fall ein Cronjob unmöglich macht. Sobald ich Zeit dafür habe, werde ich meine Backup Festplatte einen key spendieren. Bei diesem Gedanke kommt mir die Frage auf

muss ich dafür die Festplatte neu Formatieren oder kann man ein keyfile einfach adden? Da muss ich wohl mal das World Wide Web befragen.

Die Konfigurationsdatei von sysnapshot ist nun um drei Einträge erweitert worden, wobei nur zwei zur Zeit Implementiert sind (außer der Code wird wie oben beschrieben geändert).

# Encrypted hard drive with cryptsetup
crypt: "yes"
crypt_file: "no" # not included yet
# crpyt_device UUID only
crypt_device: "your_uuid_disk"

Die UUID einer Festplatte bekommt man einfach mit blkid angezeigt. Zwar funktioniert blkid auch ohne root Rechte, dann werden jedoch nur bekannte Festplatten ausgegeben. Wenn man diese Festplatte noch nicht gemountet hatte oder erst angeschlossen hat, sollte man blkid mit sudo starten.

crypt_device ist nicht die Partition sondern der cypt_container, die Partition kann normal gemountet werden und kann weiterhin mit Label Arbeiten.
Ein crypt_container trägt als Label “crypto_LUKS”.

Für Fragen, Kritik oder Anregungen könnt ihr mich gerne anschreiben oder Jabbert mich an.

Sandy

SSH Absichern

Es sollte schon jeden ArchLinux Benutzer aufgefallen sein das tcp_wrapper in Arch nicht mehr verwendet wird. Man ist also gezwungen seine Dienste anders zu schützen.

https://bbs.archlinux.de/viewtopic.php?id=19513&p=1

Um Ports zu erkennen wird netstat im obigen Postig erwähnt. In Arch habe ich nur noch netstat-nat gefunden und die Syntax scheint sich geändert zu haben, deshalb habe ich mir netactview angesehen und dies reichte mir.

pacman -S netactview

Als erstes habe ich mir ssh genauer angesehen. Wenn SSH in seine Default Einstellung verwendet wird, ist es wenig geschützt was man natürlich nicht möchte.

Sehen wir uns also erst einmal ssh in netacview an (im KDE menü → Internet → Net Activity Viewer). Wie man sehen kann (Abbildung 1) wurde ssh mit seinem Standard Port 22 gestartet und ist an keiner Netzwerkkarte bzw. IP-Adresse gebunden. Obwohl dies eher einer Pseudo Sicherheit ist, habe ich mir angewöhnt dies zu tun. Dies funktioniert natürlich nur dann, wenn sichergestellt ist das der Rechner immer die selbe IP bekommt.


Abbildung 1: SSH in netcatview mit seiner Default Einstellung

Natürlich kann man viele Dinge mit netcatview bzw. netstat nicht sehen. Es sagt nichts aus ob sich jeder Verbinden darf oder nur eine Person oder Personengruppen. Ob man einen Schlüssel benötigt oder nicht usw.

  • ListenAddress 192.168.0.1
    ssh nur auf eine bestimmte Schnittstelle binden, falls mehrere Netzwerkkarten Installiert sind und nicht auf allen verfügbar sein soll.
  • PermitRootLogin no
    Versuche so wenige Logins als Root wie möglich zu erlauben. Wenn nun jemand Root werden will, benötigt er zwei Logins. So kann das Root-Passwort nicht so leicht ausgetestet werden.
  • Port 2222oder ListenAddress 192.168.0.1:2222
    Ändern von Listen-Port, so dass ein Eindringling nicht wirklich sicher sein kann, ob ein sshd-Daemon läuft (man sollte aber beachten, dass dies lediglich “Sicherheit durch Verschleierung” ist).
  • PermitEmptyPasswords no
    Es versteht sich von selbst, das jedes Konto mit einem Passwort zu schützen ist.
  • AllowUsers nutzer1 nutzer2 nutzer1@fqdn
    Erlaube nur bestimmten Nutzern sich via ssh auf der Maschine einzuloggen. nutzer1
    @rechnername
    kann dazu verwendet werden, um einen bestimmten Benutzer zu zwingen, nur von einem bestimmten Rechner aus zuzugreifen, hab ich selbst jedoch noch nicht getestet.
  • AllowGroups wheel admin
    Erlaube nur bestimmten Gruppenmitgliedern sich via ssh auf der Maschine einzuloggen. AllowGroups und AllowUsers haben äquivalente Verfahrensweisen, um den Zugang zu der Maschine zu verwehren.
  • PasswordAuthentication yes
    Es ist allein Ihre Wahl, was Sie hier eintragen. Es ist sicherer, Zugriff nur Nutzern zu erlauben, die ssh-Schlüssel in der
    ~/.ssh/authorized_keys-Datei haben. Wenn Sie dies wollen, setzen Sie es auf “no”.
  • Schalte jedwede Art der Authentifizierung ab, die nicht wirklich benötigt werden, zum Beispiel
    RhostsRSAAuthentication, HostbasedAuthentication, KerberosAuthentication oder RhostsAuthentication. Man sollte sie abschalten, auch wenn sie es standardmäßig bereits sind (siehe dazu man 5 sshd_config).
  • Protocol 2
    Deaktiviere Protokollversion 1, da diese einige Designschwächen hat, die es einfacher machen, Passwörter zu knacken.

Mit diesem Wissen kann man seine SSH-Konfigurationsdatei /etc/ssh/sshd_config anpassen und danach ssh neu starten. Wenn man nun Abbild 2 betrachtet fallen einem die kleinen Veränderungen auf. Und wenn man so wie so von jedem Rechner aus sich verbinden möchte sollte man Root Login verbieten und nur einen Benutzer erlauben. Dann braucht man bis dato noch lange keine Firewall.


Das das ändern des Ports Sinnvoll ist versteht sich fast von selbst. Nach meinen Erfahrungen zu folge wird man weniger bis gar nicht mehr von SkriptKiddies belästigt. Dazu sei gesagt, das der Port 2222 in vielen Anleitungen verwendet wird und daher nicht gewählt werden sollte.

Nun noch ein kleiner Tipp für alle die jetzt nicht immer ssh -p 2222 nutzer1@fqdn eingeben möchte. Es gibt für jeden Benutzer eine Benutzer-Konfiguration. Hierfür legt man einfach in seinem Heimatverzeichnis die Datei .ssh/config an und trägt Host USER PORT im folgenden Schema ein.

Host myhost
user nutzer1
HostName fqdn
Port 2222

Somit verbindet sich ssh immer mit diesen Einstellungen. Besonders elegant ist dies natürlich wenn man auf der anderen Maschine nicht den selben Anmeldenamen hat als wie auf der Maschine auf der man sich Anmelden möchte. Das erspart einem etwas Tipparbeit und man muss sich auch nicht Ports und co Merken.

Sandy

Restrukturierung von Sysnapshot ist fertig

Die Restrukturierung von sysnapshot hat mir einiges gebracht. Es steckt jetzt mehr Ruby drin als vorher und wurde zugleich um einige Funktionen erweitert. Die Funktion cleaner hat die Aufgabe die Festplatte von alten oder unerwünschten Backups zu bereinigen.  Hierfür gibt es in der Konfigurationsdatei zwei Einträge:

„maxsnapshot“ das die Maximale Anzahl an Snapshots angibt. Ist diese Anzahl überschritten, löscht das Script jeweils das älteste Backup was er finden kann.

„minspaceleft“ gibt an, wie viel freier Speicher die Festplatte aufweisen muss damit ein neues Backup geschrieben werden kann. Ist also 60 GB angegeben (Defaultwert) Prüft die Funktion „cleaner“ ob die Festplatte mindestens 60 GB frei hat, wenn die Festplatte weniger freien Speicher zur Verfügung steht, wird so lange alte Backups gelöscht bis der gewünschte freie Speicher vorhanden ist.

Für beide gilt folgender Selbstschutz.
Vor jedem Löschvorgang wird geprüft ob es sich um das Backup handelt auf dem der latest Link zeigt, denn das darf auf keinen Fall gelöscht werden. Sonst wären eventuell Wichtige Dokumente nicht mehr vorhanden und diesen Spergau gilt es zu vermeiden.

Möchte man keine dieser Funktionen nutzen, kann man diese in der Konfiguration einfach leer lassen oder mit einer 0 deaktivieren. Man kann diese einzeln oder parallel betreiben, je nach Vorstellung und was einem wichtig erscheint.

Anders als in der Vorgänger Version, ist es auch nicht mehr zwingend nötig Verzeichnisse mit einem / beenden zu müssen.

Der Code ist zwar schwach Kommentiert, aber an einigen Stellen habe ich einen Kommentar eingefügt. Besonders dann, wenn ich nach einer Kurzen Pause nicht mehr genau wusste was dieser Code eigentlich tun sollte. Alles andere erschien mir logisch, verständlich bzw. so formuliert das man diesen wie ein Buch lesen kann. Wenn man eine Programmiersprache Lernt, ist einem noch nicht klar was man alles Kommentieren muss damit es andere verstehen, dies ist eine Hürde die man für sich selbst entwickeln muss. Ich konzentrierte mich auf die einzelne Funktionen und auf den Code deshalb habe ich nur kommentiert was ich für mich wissen musste was der Code macht. Ich glaube das dies ein guter Kompromiss und solange niemand sagt was er nicht an diesen Code verstanden hat bleibe ich bei diesem Konzept. Es wird sich noch Zeigen ob sich dieses Konzept bewährt oder nicht.

Obwohl der neue Code noch nicht lange Online ist, denke ich über Funktionen nach die man gebrauchen könnte.
Zum Beispiel über Delivery zu deutsch Auslieferung, es kann manchmal nützlich sein eine Auslieferung zu haben der in einem Geschützen Bereich ist. Genauso wichtig wäre eine Recovery Funktion, die es einem ermöglicht, ein Backup zurück zuspielen und das am besten mit einer Live-CD.

Wer noch kein Backup-Konzept hat, ist gerne eingeladen sysnapshot zu testen.

Falls jemand noch eine Idee hat, was für ein Backup-Tool so alles wichtig wäre, kann dies gerne als Kommentar hinterlassen.
Und wenn jemand Lust verspüren sollte mit an diesem Projekt arbeiten zu wollen, dann lasst es mich wissen.

Sandy

Restrukturierung von Sysnapshot

Obwohl sysnapshot mein erstes Ruby-Projekt ist, empfand ich diesen Code schon nach einigen Tagen nicht mehr so toll wie am Tag der Veröffentlichung. Schnell hab ich nur noch BugFixes gemacht und an diesem Code nicht mehr viel geändert, geschweige neue Funktionen Implementiert.

Abhilfe schaffte hier nur eine Restrukturierung von sysnapshot die ich heute begonnen habe, genau genommen habe ich sysnapshot von Grund auf neu geschrieben. Neben der Funktion wie viele Backups Maximal auf der Festplatte sein dürfen (älteste Backup wir gelöscht) kam nun eine Funktion wie viel freier Speicher die Festplatte haben muss, damit ein Backup geschrieben wird.

Die Funktion cleaner löscht solange alte Backups bis die Festplatte wieder den gewählten Freien Speicher hat.

Ich denke auch über eine Funktion nach, die überprüft ob mehr als ein Backup möglich ist bzw. ob überhaupt ein Backup geschrieben werden kann.

Der derzeitige veröffentlichte Code hat nur eine Methode und besteht aus mehreren IF ELSE END Konstrukte, was nicht gerade schön ist. Im neuen Code kann ich zwar nicht komplett darauf verzichten, aber dort wo es mir möglich war setze ich nun HASHES.

Einige Tests habe ich heute mit ARRAY und HASHES gemacht um evtl. von den Linux Befehlen weg zu kommen, somit wäre es möglich sysnapshot nicht nur unter Linux zum laufen zu bekommen, Aber die Performance leitet darunter sehr, deswegen wird sich erst mal daran nichts ändern.

Und hier ein paar Codeschnippel

  # -- create cfg hash ---------------------------------------------------------------------
  cfg = {}

  # for simple notation
  destination = "#{config['mountpoint']}/#{config['destination'].gsub('/', '')}/#{hostname}"

  key = :destination
  cfg.key?(key) ? cfg[key] << key.to_s : cfg[key] = [destination]

  key = :source
  cfg.key?(key) ? cfg[key] << key.to_s : cfg[key] = [config['source']]

  .....

  # -- check_device ------------------------------------------------------------------------
  check_device(cfg)

.....

 def cleaner(cfg, ifdevice, tobefree)
  begin
    avail_space = `/bin/df -B 1048576 | /bin/grep #{ifdevice} | /usr/bin/awk '{print $4}'`.chomp.to_i
    avail = avail_space / 1024
    Dir.chdir(cfg[:destination].to_s)
    puts "Cleaning ..."
    while avail < tobefree do
      path = Dir["????-??-??_*"].sort.reverse.first
      puts "delete backup: #{path}"
      system("/bin/rm -rf #{path}")
      avail_space = `/bin/df -B 1048576 | /bin/grep #{ifdevice} | /usr/bin/awk '{print $4}'`.chomp.to_i
      avail = avail_space / 1024
      puts "Device #{ifdevice} : available hard disk space #{avail} GB"
    end
  rescue
    puts "Error: Cleaning Fail"
    exit
  end

Privacy-by-Default Petition

Privacy-by-Default

das ist eine Sache die ich vollkommen unterstütze. Ich habe (“Nicht Öffentlich”) unterschrieben.

Bemerkenswert finde ich, dass diese Option “Privacy-by-Default” war/ist.
So wie in der Petition gefordert.

Wer sich mit dem Thema Datenschutz beschäftigt und auch den darin liegenden Sinn erkannt hat, muss nicht aufgefordert werden zu Unterschreiben, die tun es einfach.

Quelle: http://openpetition.de/petition/online/datenschutzfreundliche-voreinstellungen

Sandy

Post Navigation

Follow

Get every new post delivered to your Inbox.