matze's blog
Packet aus Quellode unter Ubuntu bauen
Um unter Ubuntu aus einem Quellcode-Paket ein .deb datei zu erstellen gibt es das tool checkinstall:
apt-get install checkinstall
Um aus dem Packet ein debian packet zu bauen, muss man es erst entpacken:
tar xifz dovecot-1.2.10.tar.gz
dann mit
./configure --prefix=/usr --sysconfdir=/etc/dovecot
konfigurieren. Dann noch
checkinstall
ausführen. Um mehrere provides anzugeben verwendet man das plus-zeichen:
provides dovecot-common+dovecot-imapd+dovecot-pop3d
Nachdem man alles konfiguriert hat wird das Paket gebaut und installiert. Das erstellte packet dovecot_1.2.10-1_amd64.deb am besten noch sichern.
Einfacher Sicherheitscheck für Windows
Um Windows mal kurz zu testen, ob alle Sicherheitsupdates installiert sind und Java / Flash / Skype und Co aktuell sind, dafür eignet sich der Secunia Software Inspector. Dieser überprüft mitels eines Java-Applets, ob die Software aktuell ist.
Backup von einem Server auf den Privatrechner
Da ich gerne zusätzlich ein Backup von meinem Server auf meinem Rechner mache und nicht nur auf dem Rechenzentrum sichere habe ich mir ein Script ausgedacht, was folgendes erfüllt:
- Das Backup soll jederzeit starten können, also unabhängig davon, wann ich den Rechner eingeschaltet habe
- maximal alle 24 Stunden wird ein Backup gemacht
- Es sollen nur geänderte Dateien kopiert werden
- /tmp, /var/tmp usw. soll nicht gesichert werden
- Die Geschwindigkeit soll gedrosselt sein, damit es im Hintergrund laufen kann
- Alte Backup-stände sollen erhalten bleiben und nur manuell gelöscht werden
Das Script das das alles erfüllt ist erstaunlich kurz, dank rsync:
#!/bin/sh
BACKUPDIR=/path/to/backup
LOCKFILE=/path/to/.backup.lock
BACKUPCUR=$BACKUPDIR/current
BACKUPDATE=$BACKUPDIR/`date +"%d.%m.%Y_%H-%M-%S"`
EXCLUDE="--exclude=/tmp \
--exclude=/var/tmp \
--exclude=/usr/portage \
--exclude=/usr/src \
--exclude=/proc \
--exclude=/list+found \
--exclude=/var/lib/clamav/ \
--exclude=/var/log/"MAXSECSOLD=$((24*60*60))
KBLIMIT=200if [ "$1" == "--force" ] ; then
echo -n
elif ! [ "$(( $(date +"%s") - $(stat -c "%Y" $LOCKFILE) ))" -gt "$MAXSECSOLD" ];
then
exit 0;
fi
flock -n $LOCKFILE nice rsync -avz --delete --delete-excluded --bwlimit=$KBLIMIT -e ssh root@abma.de:/ $BACKUPCUR $EXCLUDE --backup --backup-dir=$BACKUPDATE
touch $LOCKFILE
touch $BACKUPCUR
Kurz zur Erklärung:
es wird überprüft, ob der Parameter --force angegeben wurde, wenn ja wird das Backup ausgeführt. Wenn nicht wird überprüft die letzte Änderung von LOCKFILE weniger als MAXSECSOLD Sekunden her ist, wenn ja wird das Script beendet.
Dann wird das lockfile erstellt, damit das script / der rsync nur einmal gestartet wird und der rsync mit niedriger Priorität gestartet.
Nach dem Backup wird das Änderungsdatum des Lockfile und des Backup-Verzeichnisses auf die Aktuelle Zeit gesetzt.
In BACKUPDIR/current befindet sich das aktuellste Backup, in BACKUPDIR/uhrzeit sind die Dateien, die seit dem letzten Backup geändert worden sind.
Der einzig große Nachteil ist: Sollte man das Backup doch einmal benötigen, muss man über die vermutlich langsame Internetanbindung die Dateien hochladen, was u.u. sehr Lange dauern kann, von daher ist noch zusätzlich ein Backup beim Hoster zu empfehlen.
Noch zu empfehlen wäre, wenn eine Datenbank mit gesichert wird, diese zu beenden und dann dieses Verzeichnis extra zu kopieren, oder einen sql-dump zu machen.
Das Script liegt im Verzeichnis /etc/cron.hourly/.
Dateien nach Viren überprüfen
Um Dateien nach Viren zu überprüfen sind Onlinevirenscanner wie VirusTotal oder Jotti zu empfehlen. Oder wer hat 20 Virenscanner installiert? :-)
Compress maildir with dovecot's zlib plugin
With dovecots zlib plugin, it's possible to have compressed mails in the users maildir.
I've written a script to compress all mails on my mailserver:
#!/bin/sh
compress_maildir () {
cd $1
DIRS=`find -maxdepth 2 -type d -name cur`
for dir in $DIRS; do
echo $dir
cd $dir
FILES=`find -type f -name "*,S=*" -not -regex ".*:2,.*Z"`
#compress all files
for FILE in $FILES; do
NEWFILE=../tmp/${FILE}
#echo bzip $FILE $NEWFILE
if ! bzip2 -9 $FILE -c > $NEWFILE; then
echo compressing failed
exit -1;
fi
#reset mtime
if ! touch -r $FILE $NEWFILE; then
echo setting time failed
exit -1
fi
done
echo Locking $dir/..
if PID=`/usr/libexec/dovecot/maildirlock .. 120`; then
#locking successfull, moving compressed files
for FILE in $FILES; do
NEWFILE=../tmp/${FILE}
if [ -s $FILE ] && [ -s $NEWFILE ]; then
echo mv $FILE $NEWFILE
mv $FILE /tmp
mv $NEWFILE ${FILE}Z
else
echo mv failed
exit -1
fi
done
kill $PID
else
echo lock failed
exit -1
fi
cd - >/dev/null
done
}compress_maildir /home/user/.maildir/
chown -R username:users /home/user/.maildir/
If using this script, please do it after an backup/copy of the maildir, the script is far away from being perfect :-)
If the Script is rerun, it checks the files for a Z at the end of the filename, so the file isn't recompressed.
With compressed mails i saved ~25% of space.
ReactOS 0.3.11 veröffentlicht
Eine neue Version von ReactOS wurde veröffentlicht:
Neue Features gibt es kaum, aber der Memorymanager wurde neu geschrieben und bringt damit eine höhere Stabilität, außerdem wurde ein Easteregg eingebaut und es gibt nun Spider Solitaire :-)
Auf Golem.de gibt es ein paar Screenshots.
Linux 2.6.33 - Interessantes in Aussicht
Linux 2.6.33 scheint die beiden Probleme anzugehen, dass es keine offenen Grafiktreiber und kein HA/Cluster-Dateisysteme ohne zusätzliche Patches im Kernel gibt.
Es wird gleich zwei neue Möglichkeiten für ein verteiltes Dateisystem geben:
- DRBD ist verteiltes Block-basiertes Gerät, im Prinzip ein RAID übers Netzwerk, benötigt auch für andere Cluster-Dateisysteme
- Ceph ist ein Cluster-Dateisystem, wird als Kernel-Modul integriert, bisher war es nur als Fuse-Dateisystem verfügbar
Der "nouveau" Treiber wird integriert. Damit sind endlich für ATI und Nvidia Opensource-Treiber verfügbar in die auch über längere Zeit eine 3D-Beschleunigung integriert wird. Aktuell waren eigentlich nur die proprietären Treiber für den alltäglichen Gebrauch geeignet.
Der Kernel wird vermutlich im April 2010 veröffentlicht.