Bash: Mehrere Dateien umbenennen
Mai 2, 2014 — 10:45

Manchmal bekomme ich aus der Windows-Welt Dateien mit folgendem Schema: „abc.jpg.jpg, def.jpg.jpg“. Ursache dürfte das imo unsinnige Feature sein Extensions zu verstecken in Verbindung mit Benutzern/Programmen, welche damit nicht klar kommen.

Die Dateien lassen sich zum Glück recht fix umbenennen:


for file in *.jpg.jpg; do mv "$file" "${file/.jpg/}"; done

Centos 6: Fehlende Apachemodule aus den Sourcen erstellen
November 26, 2013 — 16:40

Beim Umzug eines Webservers von SLES 11 auf CentOS 6 stellte sich heraus, das ein selten verwendetes Apache-Modul nicht in den Repositorys zur Verfügung stand. Das Modul Imagemap wurde aber leider für den Webauftritt benötigt. Es muss also selber kompiliert werden.

Benötigt werden dafür die Pakete gcc und httpd-devel:


yum -y install gcc httpd-devel

Hier finden sich die Sourcen für Module des mitgelieferten Apache Webservers in der Version 2.2.x:

http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/

Nachdem das entsprechende Modul gefunden ist holen wir uns dieses auf den Webserver und kompilieren den Code:

curl 'http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/mappers/mod_imagemap.c?view=co' > mod_imagemap.c
apxs -cia mod_imagemap.c

Das Modul wird automatisch in die Konfiguration eingetragen. Mittels apachectl lässt sich ermitteln ob das Modul zur Verfügung steht:

apachectl -t -D DUMP_MODULES

Je nach Modul muss die Konfiguration des Webservers um einige Parameter ergänzt werden. Hier hilft die Doku zu dem Modul weiter.

CentOS: Fehlendes updatedb / locate
Oktober 22, 2013 — 11:01

CentOS installiert bei einer Minimalinstallation kein locate/updatedb. Ohne lässt sich auf der Festplatte leider nicht schnell nach Dateien suchen. Ein yum provide locate bzw. yum provide updatedb  führt leider nicht zum Ziel.

Abhilfe schafft folgendes:

$ yum install mlocate
$ /etc/cron.daily/mlocate.cron

Der erste Befehl sorgt für die Installation und der zweite für die erste Indexierung der Festplatte. Die erste Indexierung kann ein paar Minuten dauern. Der Index wird täglich aktualisiert. Anschließend sollte der schnellen Suche nach Dateinamen nichts im Wege stehen.

$ locate hosts
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/modules/active/modules/denyhosts.pp
/lib64/security/pam_rhosts.so
/usr/share/ghostscript
/usr/share/doc/pam-1.1.1/html/sag-pam_rhosts.html
/usr/share/doc/pam-1.1.1/txts/README.pam_rhosts
/usr/share/ghostscript/conf.d
/usr/share/man/man5/hosts.allow.5.gz
/usr/share/man/man5/hosts.deny.5.gz
/usr/share/man/man5/hosts_access.5.gz
/usr/share/man/man5/hosts_options.5.gz
/usr/share/man/man8/denyhosts_selinux.8.gz
/usr/share/man/man8/pam_rhosts.8.gz
/usr/share/selinux/devel/include/services/denyhosts.if
/usr/share/selinux/targeted/denyhosts.pp.bz2
/usr/share/vim/vim72/ftplugin/denyhosts.vim
/usr/share/vim/vim72/ftplugin/hostsaccess.vim
/usr/share/vim/vim72/syntax/denyhosts.vim
/var/cache/yum/timedhosts.txt
/var/cache/yum/x86_64/6/timedhosts.txt