Mittwoch, 11. Dezember 2013

Per Shell-Script überprüfen ob ein Dienst läuft und diesen ggf. neu starten

Mit diesem kleinen Shell-Script könnt ihr ermitteln, ob ein Dienst noch läuft und falls nicht, diesen dann neu starten. Verpackt in ein Cronjob wird die Sache dann automatisiert. Getestet auf Scientific Linux 6.4.

#!/bin/sh
SERVICE='Dienst'

if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
echo "$SERVICE service running, everything is fine"
else
echo "$SERVICE is not running"
/etc/init.d/$SERVICE restart
fi

Mittwoch, 20. November 2013

Einzelne Software-Raid-Platte per USB mounten

Neulich hatte ich es mit einem defekten Software-Raid zu tun und wollte die Daten retten, indem ich eine der Raid-Platten per USB mounte und dann abziehe.

Soweit so gut, allerdings ergab sich das Problem, dass sich das Linuxsystem der Platte automatisch annahm (hier: /dev/md127) und das Hinzufügen der Partition zu einem Software-Raid mir einem schnöden "is busy" quittiert wurde.

Anbei die Liste der Kommandos um die LVM-Partition (hier: /dev/sdf1) der Platte in ein eigenes Software-Raid (hier /dev/md0) einzubinden, um letztendlich ein Volume (hier: /dev/appliance/rootfs) innerhalb des LVM zu mounten. openSUSE 12.3 war hier das System der Wahl.

- cat /proc/mdstat (Anzeige der verfügbaren Software-Raids)
- mdadm --manage --stop /dev/md127 (Raid /dev/md127 stoppen)
- mdadm --assemble --run /dev/md0 /dev/sdf1 (LVM zu /dev/md0 hinzufügen)
- lvscan (LVM-Volumes sind noch inaktiv)
- vgchange -ay (LVM-Volumes aktivieren)
- lvscan (LVM-Volumes sind jetzt aktiv)
- mount /dev/appliance/rootfs /mountpoint (LVM-Volume mounten)

Mittwoch, 16. Oktober 2013

Clonezilla zerstört GRUB

Das Klonen mit Clonezilla ist eine feine Sache, allerdings sind dort manche Schalter standardmäßig nicht ganz glücklich gesetzt.

Fährt man z. B. ein Restore eines Linux-Images, kann es passieren, dass auf dem geklonten System beim Start nur noch die Grub-Eingabeauforderung erscheint.

Die Ursache hierfür ist ein Schalter in Clonezilla der den Grub im MBR neu installiert. Dieser zerschießt dann den bestehenden Grub und die Konfiguration wird nicht mehr gefunden.

Um dies zu vermeiden, muss bei der Wiederherstellung im Expert-Mode der Schalter "Reinstall grub in client disk MBR ..." abgewählt werden.

In meinem Fall handelte es sich um einen GRUB 2 und openSUSE 12.3 .



Montag, 14. Oktober 2013

Firefox-Disk-Cache deaktivieren und Pipelining aktivieren

Mit diesem Shell-Script deaktiviert man in seinem Firefox-Profil den Disk-Cache und aktiviert das Pipelining. Das Script liegt als 'tune_ff.sh' im Ordner '/etc/profile.d/' und wird somit bei jedem Login ausgeführt. Getestet unter openSUSE 12.3.

# Disable Disk-Cache and enable Pipelining in Firefox profile
if [ -d ~/.mozilla/firefox/ ] ; then
pkill -f firefox
rm -rf ~/.mozilla/firefox/*.default/lock ~/.mozilla/firefox/*.default/.parentlock
echo "user_pref(\"browser.cache.memory.enable\", true);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.enable\", false);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.capacity\", 0);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.max_entry_size\", 0);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.offline.enable\", false);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.offline.capacity\", 0);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.disk_cache_ssl\", false);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.smart_size_enabled\", false);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.smart_size.first_run\", false);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.smart_size.use_old_max\", false);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.smart_size_cached_value\", 0);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"mailnews.database.global.indexer.enabled\", false);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"network.http.pipelining\", true);" >> ~/.mozilla/firefox/*.default/prefs.js
echo "user_pref(\"network.http.proxy.pipelining\", true);" >> ~/.mozilla/firefox/*.default/prefs.js
fi


Zusätzlich lassen sich diese Einstellungen auch als Standard für neue Nutzer setzen. Ebenfalls unter openSUSE 12.3.

// /usr/lib64/firefox/browser/defaults/preferences/firefox-openSUSE.js
// Disk-Cache deaktivieren
user_pref("browser.cache.memory.enable", true);
user_pref("browser.cache.disk.enable", false);
user_pref("browser.cache.disk.capacity", 0);
user_pref("browser.cache.disk.max_entry_size", 0);
user_pref("browser.cache.offline.enable", false);
user_pref("browser.cache.offline.capacity", 0);
user_pref("browser.cache.disk_cache_ssl", false);
user_pref("browser.cache.disk.smart_size_enabled", false);
user_pref("browser.cache.disk.smart_size.first_run", false);
user_pref("browser.cache.disk.smart_size.use_old_max", false);
user_pref("browser.cache.disk.smart_size_cached_value", 0);
user_pref("mailnews.database.global.indexer.enabled", false);
// Pipelining aktivieren
user_pref("network.http.pipelining", true);
user_pref("network.http.proxy.pipelining", true);

Samstag, 12. Oktober 2013

Akonadi deaktivieren

Mit diesem kleinen Shell-Script deaktiviert man Akonadi in den Linux-Nutzeraccounts. Das Script liegt als 'disable_akonadi.sh' im Ordner '/etc/profile.d/' und wird somit bei jedem Login ausgeführt. Getestet unter openSUSE 12.3.

#!/bin/sh
# Disable Akonadi-Indexer
if [ -e ~/.config/akonadi/akonadiserverrc ] ; then
sed -i 's/StartServer=true/StartServer=false/g' ~/.config/akonadi/akonadiserverrc
fi

Indexer, Disk- und IMAP-Cache in Thunderbird deaktivieren

Mit diesem Shell-Script deaktiviert man in seinem Thunderbird-Profil den Indexdienst und den Disk- und IMAP-Cache für alle eingetragenen E-Mail-Konten. Das Script liegt als 'tune_tb.sh' im Ordner '/etc/profile.d/' und wird somit bei jedem Login ausgeführt. Getestet unter openSUSE 12.3.

#!/bin/sh
# Disable Indexer, Disk- and IMAP-Cache in Thunderbird profile
if [ -d ~/.thunderbird/ ] ; then
pkill -f thunderbird-bin
rm -rf ~/.thunderbird/*.default/lock ~/.thunderbird/*.default/.parentlock
echo "user_pref(\"browser.cache.memory.enable\", true);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.enable\", false);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.capacity\", 0);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.max_entry_size\", 0);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.offline.enable\", false);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.offline.capacity\", 0);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.disk_cache_ssl\", false);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.smart_size_enabled\", false);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.smart_size.first_run\", false);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.smart_size.use_old_max\", false);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"browser.cache.disk.smart_size_cached_value\", 0);" >> ~/.thunderbird/*.default/prefs.js
echo "user_pref(\"mailnews.database.global.indexer.enabled\", false);" >> ~/.thunderbird/*.default/prefs.js
i=1
until [ $i -gt 50 ]; do
if grep "server$i.type\", \"imap\"" ~/.thunderbird/*.default/prefs.js >/dev/null 2>&1 ; then
echo "user_pref(\"mail.server.server$i.offline_download\", false);" >> ~/.thunderbird/*.default/prefs.js
fi
let i+=1
done
rm -rf ~/.thunderbird/*.default/global-messages-db.sqlite
find ~/.thunderbird/*.default/ImapMail | grep -v "msgFilterRules.dat" | xargs rm >/dev/null 2>&1
fi