Category Archives: Linux

Create iso from optical media

It is becoming increasingly rare, still from time to time I get a DVD or CDROM as installation media. To create an iso-image from optical media under Ubuntu, run:

readom dev=device -f file.iso
# e.g.:
readom dev=/dev/disk/by-label/your-media-label -f /place/to/store/the/image.iso

The program readom (read optical media) a is available from the package wodim

apt-get install wodim

readom serves for me better than dd as it has build-in error checking and shows progress out-of-the-box.

Instant network connection with wpa_supplicant

The snippet below shows how to make wpa_supplicant taking your ssid and passphrase directly from command line. This is very handy for instant connections, e.g. if your network manager was broken during upgrades or to obtain the driver for your network card.

  • Authenticate using WPA/WPA2 in foreground (better for debugging):
1
2
nohup wpa_passphrase <ssid> <passphrase> \
| wpa_supplicant -i wlan0 -c /dev/stdin 2>&1 &
  • Or authenticate using WPA/WPA2 in background:
1
2
wpa_passphrase <ssid> <passphrase> \
| wpa_supplicant -B -i wlan0 -c /dev/stdin
  • To inquire the name of the access point (ssid). The link has to be up (ip link set wlan0 up):
1
iwlist wlan0 scanning | egrep 'Cell |Frequency|ESSID'
  • To obtain an IP via DHCP:
1
dhclient wlan0

.DS_Store auf dem NAS

Die von Mac OS X Finder angelegten .DS_Store-Dateien sind für die meisten an meinem Linux-NAS angeschlossenen Geräte sinnlos. Nachfolgend zwei Schnipsel zum löschen der Dateien und ausschalten der Funktion im Finder.

1
2
3
# Rekursiv alle .DS_Store Dateien
# ausgehend vom aktuellen Verzeichnis löschen 
find . -type f -name ".DS_Store" -print0 | xargs -0 rm
1
2
# .DS_Store am Mac für Netzlaufwerke abschlaten
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
Referenz

Chromium Browser Cache ausschalten

Da mein Linux-Desktop auf einem Flash-Memory läuft, möchte ich unnötige Schreiboperationen vermeiden. In Chromium habe ich hierfür keine direkte Einstellung gefunden. Das Cache-Verzeichnis lässt sich jedoch per Start-Parameter auf /dev/null schreiben

1
2
3
4
5
cp /usr/share/applications/chromium-browser.desktop \
~/.local/share/applications/
 
vi ~/.local/share/applications/chromium-browser.desktop
# Exec=chromium-browser --disk-cache-dir=/dev/null %U
Referenz:

Apache Speicherbedarf senken

Die Standard Apache-Konfiguration ist für ausgewachsene Maschinen ausgelegt und daher für kleine virtuelle Server-Instanzen ungeeignet. Nachfolgend beschriebe Änderung senkt den Speicherbedarf deutlich.

Konfiguration

1
sudo vi /etc/apache2/apache2.conf
1
2
3
4
5
6
7
8
9
10
# Low memory setup
# Low memory setup
<IfModule mpm_prefork_module>
    StartServers 2
    MinSpareServers 2
    MaxSpareServers 5
    ServerLimit 128
    MaxClients 128
    MaxRequestsPerChild 4000
</IfModule>

Ergebnis

Munin-memory
Im Chart sind zwei Senkung des für Anwendungen allokierte Speichers (committed) sichtbar. Die erste Senkung ist auf eine Anpassung der MySQL Konfiguration zurückzuführen. Die zweite Senkung wurde durch die oben beschriebene Anpassung der Apache-Konfiguration verursacht.

WordPress DB Backup & Restore

Das Sichern und Rücksichern einer WordPress Datenbank (MySQL) kommt bei mir nicht jeden Tag vor, daher habe ich die wichtigsten Schritte nachfolgend kurz zusammengefasst:

Datenbanken finden

Die von WordPress verwendete Datenbank kann in der wp-config.php gefunden werden. Um eine Übersicht aller Datenbanken zu erhalten:

1
mysql --user=user_name --password=your_password
1
2
3
4
5
6
7
8
9
10
11
12
SHOW DATABASES;
+--------------------+
| DATABASE           |
+--------------------+
| information_schema |
| wordpress          |
| mysql              |
+--------------------+
3 ROWS IN SET (0.00 sec)
 
quit
Bye

Datenbank sichern

Ist die richtige Datenbank gefunden, kann diese in eine Datei (etwa backup.sql) gesichert werden:

1
2
mysql --user=user_name \
--password=your_password db_name > backup.sql

Datenbank anlegen

Für die Rücksicherung wird eine Datenbank sowie ein neuer Benutzer mit Kennwort entsprechend der wp-config.php angelegt:

1
mysql --user=user_name --password=your_password
1
2
3
4
5
6
7
CREATE DATABASE db_name;
CREATE USER @localhost IDENTIFIED BY 'your_password';
GRANT ALL ON db_name.* TO user_name@localhost;
 
SHOW DATABASES LIKE 'db_name';
SELECT Host, USER FROM mysql.user WHERE USER LIKE 'user_name';
SHOW grants FOR user_name@localhost;

Datenbank zurücksichern

Jetzt kann die Datenbank zurückgesichert werden:

1
2
mysql --user=user_name \
--password=your_password db_name < backup.sql

MySQL Speicherbedarf senken

Kleinere LAMP-Instanzen laufen heute meist in virtuellen Server-Umgebungen, hier ist Speicher knapp bemessen. Mit dem Abschalten der InnoDB Database Engine lässt sich MySQL deutlich abspecken.

Schritt 1 — prüfen ob InnoDB als Engine verwendet wird:

1
2
3
4
5
6
7
8
9
10
$mysql_pass=your_password
mysql -p$mysql_pass -e "select distinct ENGINE FROM information_schema.TABLES"
+--------------------+
| ENGINE             |
+--------------------+
| MEMORY             |
| MyISAM             |
| CSV                |
| PERFORMANCE_SCHEMA |
+--------------------+

Im Beispiel taucht InnoDB nicht auf und kann daher deaktiviert werden.

Schritt 2 — InnoDB deaktivieren

Sollte eine Datenbank InnoDB-Tabellen haben, lässt sich die DB-Engine mit folgende Script auf MyISAM umstellen. (Vorher Backup anlegen!)

1
2
3
4
5
mysql_pass='your_password'
db='your_database'
for t in `mysql -p$mysql_pass --skip-column-names -B -e "select table_name FROM information_schema.TABLES where engine = 'innodb'"`; do
    mysql -p$mysql_pass $db -e "ALTER TABLE $t ENGINE=MYISAM";
done

Schritt 3 — InnoDB deaktivieren

Unter Debian/Ubuntu lässt sich die InnoDB Engine in der Konfigurationsdatei /etc/mysql/my.cnf mit folgenden Zeilen deaktivieren:

1
2
innodb=OFF
default_storage_engine=MyISAM

Schritt 4 — Test

sudo service mysql restart
mysqladmin -u root -p$mysql_pass var | grep have_innodb

#Vorher
| have_innodb        | YES

#Nachher
| have_innodb        | DISABLED

Ergebnis

Munin-memory
Im Chart sind zwei Senkung des für Anwendungen allokierte Speichers (committed) sichtbar.
Die erste Senkung ist auf die oben beschriebene Anpassung der MySQL-Konfiguration zurückzuführen. Die zweite Senkung wurde duch eine Anpassung der Apache Konfiguration verursacht.