Festplatte unter Linux löschen

Da ich aktuell ein paar Platten unter Linux zu löschen hatte will ich hier kurz beschreiben, wie ich es gemacht habe.

Da es sich hierbei um einen länger laufenden Task handelt ist die Gefahr groß, zwischendurch die Verbindung zu verlieren. Als äußerst hilfreich hat sich dafür die Verwendung von screen einem Multiplexer für Konsolen. Damit ist es möglich, innerhalb einer ssh-Session verschiedene virtuelle Konsolensitzungen zu erzeugen und zu verwalten. Darüberhinaus können Sitzungen getrennt und später fortgeführt werden. Ich starte auf dem System also eine screen – Session mit

  screen -S NameDerSitzung

Das eigentliche Löschen der Festplatte erreiche ich, in dem ich die gesamte Festplatte mit Nullen vollschreibe. Dies erreiche ich mit dem Befehl dd:

  dd if=/dev/zero of=/dev/sda2 bs=65535

Wobei /dev/sda2 durch die zu löschende Festplatte zu ersetzen ist. Wie die zu löschende Platte bzw. Partition heist kann man sich mit fdisk -l anzeigen lassen.

Das dumme ist nur, das mir dd standardmäßig keinen Fortschritt anzeigt und der ganze Prozess je nach Platten- bzw. Partitionsgröße ewig dauern kann. Ich kann dd aber zur Ausgabe des Fortschrittes bewegen, wenn ich ihm ein Signal SIGUSR1 (10) schicke. Dazu mache ich mit [Strg] + [A] + [C] in meiner Screen – Session einfach eine neue Konsole auf. Dort angekommen muss ich erstmall die Prozess ID meines dd – Prozesses herausfinden:

  ps auxw | grep dd

Mit der Prozess ID kann ich das Signal in einer Endlosschleife absetzen:

  while /bin/true; do sleep 5; kill -USR1 HierDiePID; done

Mit [Strg] + [A] + [Leertaste] kann ich wieder in meine erste Session zurück wechseln und den Fortschritt meiner Löschaktion beobachten.

nützliche Exim Kommandos

Hier ein paar nützliche Exim Kommandos:

exim -bp

Queue anzeigen lassen

exim -q

Queue abarbeiten

exim -bpc

Anzahl der queued Messages anzeigen lassen

exim -Mt

Versenden von “Frozen” E-Mails

exiqgrep -o 86400 -i | xargs exim -Mrm

alle Mails aus der Queue löschen, die älter als 1 Tag sind (86400 Sekunden)

MySQL Backup mit mysqlhotcopy unter Debian

Da Datenbanken nicht einfach im laufenden Betrieb weg gesichert werden können (Inkonsistenzen, DB Zugriff während der Sicherung), hier ein einfacher Weg MySQL Datenbanken im laufenden Betrieb in ein Verzeichnis zu sichern. Dieses kann dann mit beliebiger Backupsoftware gesichert werden kann.

Zuerst die Ordnerstruktur herstellen:

/backup/
/backup/db/
/backup/db/files/

jetzt das Backupscript erstellen:

touch /backup/db/hotcopy.sh
chmod +x /backup/db/hotcopy.sh

mit folgendem Inhalt:

#!/bin/sh

rm -rf /backup/db/files/
mkdir /backup/db/files/

mysqlhotcopy "--regexp=.*" /backup/db/files/ --quiet --user=root

Passwort in User Profil speichern, damit es nicht im Script hinterlegt werden muss (diese Datei kann dann nur von root gelesen werden):

touch /root/.my.cnf
chmod 600 /root/.my.cnf

Inhalt für .my.cnf

[client]
password=deinGeheimesRootPasswortFürMySQL

cron anlegen in /etc/crontab:

50 2 * * * root /backup/db/hotcopy.sh

LAMP unter Debian 5 (Lenny) installieren

Hier ein kurzer Abriss einer kompletten LAMP (Apache, PHP, MySQL) Installation unter Debian 5 aka Lenny inkl. APC (Bytecodecache) und Ioncube Laoder:

Benötigte Packete installieren:

$ aptitude install apache2 libapache2-mod-php5 php5-cli php5-common php-pear
php5-dev apache2-prefork-dev build-essential imagemagick php5-gd php5-curl gs-gpl

APC installieren:

$ pecl install apc

Bei der Frage: Use apxs to set compile flags (if using APC with Apache)? [yes] : [Enter] drücken.

Datei /etc/php5/conf.d/apc.ini mit folgendem Inhalt anlegen:

extension=apc.so
apc.enabled=1
apc.shm_size=120

Apache neu starten

$ /etc/init.d/apache2 restart

Mit phpinfo() überprüfen ob APC läuft. Dazu eine PHP-Datei mit folgendem Inhalt erstelllen und aufrufen:

<?php
  phpinfo();
?>

Ioncube Laoder installieren

runterladen:

$ wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Inhalt nach /usr/local/ioncube entpacken

in /etc/php5/apache2/php.ini und /etc/php5/cli/php.ini eintragen:

; IonCube Loader
zend_extension = "/usr/local/ioncube/ioncube_loader_lin_5.2.so"

Apache neu starten:

/etc/init.d/apache2 restart

Installation von MySQL 5

$ aptitude install mysql-server php5-mysql