command line - Schnipsel

Sunday, April 15. 2012

Kleinigkeiten, die ich immer wieder nachsuchen muss: 

Recursively rename all files containing "dings" into "bums"
for i in `find .` ; do mv $i `echo $i | sed 's/dings/bums/'` ; done 

Recursively list all files '.forward' containing string 'bin'
find -type f -name '.forward' -exec grep -H -n 'bin' {} \;

in eine Logdatei protokollieren, was ein Programm so treibt:
strace -e trace=open -o logfile.log ./xyz

umount /dev/sdc1 scheitert, weil irgendeine Datei offen ist, wer hat sie?  
fuser -m /dev/sdc1

Recursively chmod only directories
find . -type d -exec chmod 755 {} \;

Recursively chmod only files
find . -type f -exec chmod 644 {} \;

Recursively chmod only files with extension .php
find . -type f -name '*.php' -exec chmod 644 {} \;

Recursively find all files > some size
find . -type f -size +10000000k -exec ls -lh {} \;

Recursively find all files > some size named like something and delete
find . -type f -size +100000k -name access.log -exec rm -i {} \;

Password generator
openssl rand -base64 32|head -c 12;echo 

View the contents of a certificate signing request (csr)
openssl req -text -noout -in host.csr
 
View x509 certificate details
openssl x509 -in filename.crt -noout -text 
 
View the fingerprint to verify ssh goes to the right machine directly
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

alle an einem best Datum geaenderten Dateien auflisten:
ls -AlturR --time-style=long-iso  | grep ^.*2004\-03\-19.2.* >/home/dp/katalog_040319_2x:xx:xx.txt 

Haeufigkeit bestimmter Eintraege in messages nach Tagen sortiert ausgeben
grep DPT=1434 /var/log/messages >/var/log/SQL.slammer.txt
for i in 24 25 26 27 28; do j=`grep Jan\ $i SQL.slammer.txt -c`;echo $i, $j;done

user passwd fuer geschuetztes web-verzeichnis mit .htaccess anlegen
htpasswd -b /usr/local/httpd/.htpasswd user pass 

haessliches XML lesbar formatieren
xmllint –format ugly.xml –output pretty.xml

 

KDE clipboard history aus cli löschen
qdbus org.kde.klipper /klipper clearClipboardHistory

 

 

 

 

 

KeepassX Konverter

Monday, November 21. 2011

download: convert2keepass.03a.tar.gz

Die Ausgangslage: auf einer kleinen verschlüsselten Partition halte ich eine seit vielen Jahren gehegte Sammlung von mehr oder weniger geheimen Infos, in vorwiegend kleinen Textdateien. Und diese wollte ich in eine Keepass - Datenbank überführen. Bei zusammen doch mehreren hundert Schnipseln war Handarbeit keine Option.

Die Zielanwendung ist KeepassX (v.0.43), das ich mit sudo apt-get install keepassx aus den Debian repositories installiert habe. Bis auf das Schnuller-Logo, das leider auch als Icon verwandt wird, habe ich an der Anwendung wenig auszusetzen: klein, flottt, unaufdringliche Oberfläche und es gibt sie in Versionen für alle Betriebssysteme und Architekturen, die ich habe. Ich kann die unter Linux erstellte Datenbank auf Windows, auf dem Mac, ja auch auf meinem Androiden öffnen, ergänzen, die veränderte .kdb vom Handy wieder auf Linux zurückspielen, die Sicherheitsfeatures machen auch einen guten Eindruck.

KeepassX kann Daten exportieren - als gegliederte Textdatei oder als keepassx.xml - und importieren - keepassx.xml, kwallet.xml und PwManager-Datei. Da nur ein Format sowohl für Export als auch Import zur Verfügung steht, war nicht lange zu überlegen, welches Format ich für einen Konverter wählen würde.

Es ist ein kleines Bash-Script geworden, das mit den Parametern QuellVerzeichnis zielVerzeichnis ZieldateiName aufgerufen wird und dann vom 'Quellverzeichnis abwärts durch alle Unterverzeichnisse alle Dateien sucht und einträgt. Dabei wird der Titel des Eintrags aus dem Namen der Textdatei (ohne Extension) gebildet und der Inhalt der Datei wird in das Feld Comment geschrieben.

Das Ergebnis ist dann eine lange xml-Datei, die mit der Import-Funktion als eine Keepassx-db geladen werden kann. Die Sache ist frisch und Alpha, derzeit kann es

  • prüft auf taugliche Parameter, Schreibrechte im ZielVerzeichnis
  • rekursive Bearbeitung, die Struktur in der Keepass-DB entspricht der Verzeichnisstruktur
  • prüft mimeType der Dateien und bearbeitet nur text* und message*
    • ruft dazu file
    • Texte, die von MacOS <10 stammen, machen uU Probleme
  • ersetzt die für XML unverträglichen Zeichen &<>"' und Zeilenenden durch html entities
  • gibt Statistik über bearbeitete Dateien und Verzeichnisse aus
  • schreibt für keepassX importierbares .xml und nennt dessen Dateipfad.

 

Um die damit erzeugten Datenbankeinträge nicht als eigene .kdb zu importieren, sondern mit einer bereits bestehenden zu vereinen, muss man dann doch Hand anlegen: die bestehende kdb als .xml exportieren, die beiden xml in einem Editor zusammensetzen und neu importieren. Grade gemacht, funzt.

(Page 1 of 1, totaling 2 entries)