Archiv der Kategorie: Linux

veraPDF auf Debian installieren

Für meinen Verlag benötige ich eine Möglichkeit, PDF-Dokumente von der Kommandozeile zu valieren. Dazu bietet sich das von der EU geförderte Projekt veraPDF an.

Aktuelle Pakete gibt es hier: http://docs.verapdf.org/install/

Hier eine kleine Schnellanleitung.

und noch ein Test, ob alles richtig installiert wurde

veraPDF 1.10.6
Built: Thu Dec 28 11:58:00 CET 2017
Developed and released by the veraPDF Consortium.
Funded by the PREFORMA project.
Released under the GNU General Public License v3
and the Mozilla Public License v2 or later.

Und so prüft man jetzt ein PDF-File:

nach einigen Sekunden gibt es eine SEHR detaillierte XML-Ausgabe, die hoffentlich so aussieht:

<?xml version=“1.0″ encoding=“utf-8″?>
<report>
<buildInformation>
<releaseDetails id=“core“ version=“1.10.2″ buildDate=“2017-11-30T12:47:00+01:00″></releaseDetails>
<releaseDetails id=“validation-model“ version=“1.10.5″ buildDate=“2017-12-28T11:51:00+01:00″></releaseDetails>
<releaseDetails id=“gui“ version=“1.10.6″ buildDate=“2017-12-28T11:58:00+01:00″></releaseDetails>
</buildInformation>
<jobs>
<job>
<item size=“370846″>
<name>datei.pdf</name>
</item>
<validationReport profileName=“PDF/A-1A validation profile“ statement=“PDF file is compliant with Validation Profile requirements.“ isCompliant=“true“>
<details passedRules=“107″ failedRules=“0″ passedChecks=“398094″ failedChecks=“0″></details>
</validationReport>
<duration start=“1519383704755″ finish=“1519383711678″>00:00:06.923</duration>
</job>
</jobs>
<batchSummary totalJobs=“1″ failedToParse=“0″ encrypted=“0″>
<validationReports compliant=“1″ nonCompliant=“0″ failedJobs=“0″>1</validationReports>
<featureReports failedJobs=“0″>0</featureReports>
<repairReports failedJobs=“0″>0</repairReports>
<duration start=“1519383704171″ finish=“1519383711717″>00:00:07.546</duration>
</batchSummary>
</report>

Und siehe da: failedRules=“0″

 

 

Connecting to security.debian.org dauert ewig?

dauert ewig in der Ausführung und es hängt bei

Connecting to security.debian.org

Gut möglich, dass Debian versucht, sich mit IPv6 zu verbinden und ihr Netzwerk nur IPv4 bietet.

Versuchen Sie, Debian das penetrante IPv6 auszutreiben.

Suchen Sie die Zeile

GRUB_CMDLINE_LINUX_DEFAULT=“quiet“

und ersetzen Sie sie durch

GRUB_CMDLINE_LINUX_DEFAULT=“quiet ipv6.disable=1″

Sie werden sehen, dass es jetzt bei

nicht mehr hängt.

Ein Papierkorb für Samba

Der Papierkorb für Windows ist eine unleugbar nützliche Sache. Leider arbeitet er nicht mit Netzlaufwerken zusammen, die man zum Beispiel per Samba eingebunden hat.

Aber man kann für Samba selbst einen Papierkorb installieren und versehentlich gelöschte Dateien daraus retten.

Zunächst bearbeiten wir die Konfigurationsdatei von Samba.

Ans Ende des betreffenden Absatzes, der mit [NAME] startet, fügen wir etwas hinzu.

Insgesamt sieht es (ungefähr) so aus:

Die Einträge dürften sich größenteils von selbst erklären. Aber hier noch einmal eine kleine Erläuterung.

recycle:repository = .recyclebin

Das ist der Ordner, der uns als Papierkorb nutzen wird. Er wird beim ersten Löschvorgang mit den richtigen Rechten angelegt. Bei diesem Beispiel: /var/www/.recyclebin

recycle:keeptree = Yes

Die Ordnerstruktur wird in den Papierkorb übernommen. Kann nicht schaden, weil es die Suche einfacher gestaltet.

recycle:touch = Yes

Setzt den letzten Zugriffszeitpunkt auf das Löschdatum. Das ist wichtig, da beim automatischen Leeren eines zu vollen Papierkorbes zu alte, versehentlich gelöschte Dateien sofort entsorgt werden. Wer den Papierkorb nicht automatisch leert, der kann die Option auch weglassen.

recycle:versions = Yes

Für eine Versionierung namensgleicher Dateien.

recycle:maxsixe = 0

Ab welcher Dateigröße soll der Papierkorb nicht gelten und stattdessen sofort gelöscht werden. 0 steht für keine Beschränkung.

recycle:exclude = *.tmp,*.temp,*.TMP,*.TEMP,*.log

Welche Dateien sollen vom Papierkorb ausgeschlossen werden und stattdessen sofort gelöscht werden? Ich empfehle neben den üblichen Verdächtigen wie „tmp“ und „log“ auch Binärdateien, die immer Resultat von anderen Dateien sind, und somit aus der Quelle selbst rekonstruiert werden können. JPEG-Dateien kann man z.B. aus den Photoshop-Dateien wieder herstellen.

recycle:excludedir = /recycle,/tmp,/temp,/TMP,/TEMP

Welche Ordner sollen vom Papierkorb ausgeschlossen werden? Hier gelten anlog meine Anmerkungen zu oben. Mehr Einstellungsmöglichkeiten werden hier: https://www.samba.org/… erläutert.

Zum Schluss starten wir den Samba-Server neu

Von nun an sollten alle Dateien und Ordner im geteilten Verzeichnis vor versehentlichen Löschen geschützt sind. Sie finden Sie nun, samt Verzeichnisstruktur, unter /var/www/.recyclebin

Test

Bitte unbedingt testen, denn exotische Rechtevergabe kann auch dazu führen, dass der Papierkorb schlicht nicht funktioniert.

VORSICHT: Damit keine Missverständnisse aufkommen, es werden natürlich nur die Dateien in den Papierkorb befördert, die über Samba gelöscht werden, also bspw. von einem unvorsichtigen Windows-Nutzer. Dateien, die direkt über die Shell oder über Skripte gelöscht werden, bleiben davon unberührt und landen weiterhin im Unix-Nirvana.

Automatisches Leeren des Papierkorbes

Das erledigt natürlich cron für uns.

Ans Ende setzen wir folgenden Eintrag für root:

Dann werden täglich um 00:01 alle Dateien und Ordner im Papierkorb gelöscht, die älter als sieben Tag sind. Das “ -mindepth 1″ verhindert, dass der Papierkorb selbst gelöscht wird, wenn er älter als sieben Tage ist.

Danke

Mein Dank geht an http://blog.is-a-geek.org/… für die Anregungen.

Minibian – Raspberry PI – Installieren

Ziel: ein minimales Linux für einen kompletten (Web)server auf Basis eines Raspberry Pi

Quelle: https://minibianpi.wordpress.com/features/

Software: Win32DiskImagerPuTTY

Hardware: Raspberry Pi 2B (oder 3), SD Mikro Karte 32 GB (oder größer)

Netzwerk: (W)LAN-Router mit LAN-Anschluss

Image auf SD-Karte installieren

  • Download https://sourceforge.net/projects/minibian/
  • Das Image (Endung: img) entzippen und mit Win32DiskImager auf SD-Karte schreiben. Vorsicht, nicht aus Versehen einen falschen Laufwerksbuchstaben wählen.
  • SD-Karte auswerfen, in Raspberry Pi packen
  • Pi per LAN mit Router verbinden
  • Pi mit Strom versorgen und einige Minuten warten, bis der Name im Netzwerk bekannt ist

Mit Maschine verbinden

  • PuTTY starten und mit „minibian“ verbinden.
    • Login: root
    • Passwort: raspberry

Festplatte voll ausreizen

  • p – Partitionen zeigen (i. d. R. zwei) – Startwert der zweiten, der Hauptpartition notieren (hier 125056)
  • d – zweite Partition löschen
  • n – neue Partition anlegen, Partition type: Primary, Partition number: 2, Startwert: 125056 (der notierte, NICHT der default Wert), Endwert: Default für volle Größe
  • p – überprüfen der Eingaben
  • w – schreiben der Partitionen (Fehlermeldung ignorieren)

Vorbereitungen

Bash-Tuning

alias +=’pushd .‘
alias ..=’cd ..‘
alias …=’cd ../..‘
alias beep=’echo -en „\007″‚
alias dir=’ls -l‘
alias gzcat=’gunzip -c‘
alias l=’ls -alF‘
alias la=’ls -la‘
alias ll=’ls -la‘
alias ls=’/bin/ls $LS_OPTIONS‘
alias ls-l=’ls -l‘
alias md=’mkdir -p‘
alias o=’less‘
alias rd=’rmdir‘
alias rehash=’hash -r‘
alias rm=’rm -i‘
alias unzip=’tar xfvz‘
alias which=’type -p‘
alias zip=’tar cfvz‘

Betriebssystem und Komponenten auf den neuesten Stand bringen

Firmware updaten

Benchmarks

Diese Befehle benötigt man natürlich nur, wenn man die aktuelle Rechenleistung mit anderen Systemen vergleichen möchte.

Sicherheitsupdates automatisieren

upgrade -y -o APT::Get::Show-Upgraded=true

dann

deb https://security.debian.org/ wheezy/updates main contrib non-free
deb-src https://security.debian.org/ wheezy/updates main contrib non-free

und

OPTIONS=“-o quiet=1 -o Dir::Etc::SourceList=/etc/apt/sources.d/security.sources.list -o Dir::Etc::SourceParts=\“/dev/null\““

abschließend

LAMP

Webmin

Test im Browser:

http://minibian/

http://minibian/phpmyadmin (Benutzer: root, Passwort: siehe oben)

https://minibian:10000/

Und es geht doch: Linux, Skript ausführen beim Herunterfahren

Geradezu abenteuerlich sind die Aussagen einiger selbsternannter Experten beim Thema „Skripte ausführen beim Herunterfahren“. Von „Linux fährt man nicht herunter“ bis zu „ist überhaupt nicht möglich“ habe ich alles schon lesen dürfen.

Dabei ist es ganz einfach. Ich benutze diese Methode auf meiner virtuellen Entwicklungsmaschine, um Dateien und Datenbanken nach einem Arbeitstag auf dem Host zu sichern.

Hier also meine schnelle: „Klicken-und-vergessen“-Methode für

  • Oracle VM VirtualBox Manager
  • Host: Windows 7 64 Bit
  • Gast: Ubuntu Linux 14.04.1 – 64 Bit (Hostname: minlux)
  • Netzwerk: AVM FRITZ!Box 7390, Host über WLAN verbunden

Die auszuführenden Dateien befinden sich in /etc/init.d/.

Wir legen ein Skript an, das nichts anderes macht, als eine leere Datei namens goodbye.txt ins Home-Verzeichnis des Users zu schreiben. Das Skript, das das erledigen soll, erhält den Namen custom-shutdown.sh.

Wir machen die Datei ausführbar:

Prüfen, ob alles geklappt hat:

Nun legen wir in /etc/rc0.d/ einen Link zum Skript. Beachte: das Präfix K04 vor dem Dateinamen, ohne das geht es nicht.

Fertig. Nun starten wir die Maschine neu

Test, ob goodbye.txt auch wirklich angelegt wurde:

Man beachte, dass die Datei für den Nutzer root angelegt worden ist, falls man noch irgendetwas damit plant.

Skript beim Hochfahren ausführen

Wer möchte, kann Skripte auch ausführen lassen beim Hochfahren des Rechners. Dann muss der Link aber nicht in rc0.d sondern in rc6.d platziert werden.

WICHTIG: Server neu starten

Wenn man Datenbanksicherungen beim Herunterfahren anlegen möchte, so muss man natürlich beachten, dass die Datenbank schon längst selbst heruntergefahren ist. Also muss man diese kurz wieder starten:

Mein Dank geht an http://ubuntu.flowconsult.at/linux/ubuntu-14-10-shutdown-script-with-rc0-d-rc6-rcd/ und https://unix.stackexchange.com/questions/34963/running-script-before-shutdown-seemingly-not-working. Mehr Informationen zum Runlevel: https://en.wikipedia.org/wiki/Runlevel#Ubuntu