Linux

Distributionen

  • Eine recht interessante Linux-Distribution ist im Vormarsch: Syllable
  • Kanotix ist ein auf Debian beruhendes Linux. Es enthält die neuesten wichtigen Pakete und erkennt nach Angaben der Entwickler mehr moderne Hardware als irgend ein anderes heutiges Betriebssystem. Kanotix kann als Live-CD nahezu auf jedes Gerät - ohne eine vorherige Treiber-Installation - zugreifen.

Werkzeuge

meine Meinung über Linux

Linux verfolgt leider eine recht oberflächliche Philosophie, Linus Torvalds (Erfinder von Linux) ist der Auffassung, dass es wichtiger ist möglichst viele Funktionen in das System zu bekommen, als es zu perfektionieren. Ihm reicht es (nach eigenen Aussagen), wenn Linux gut genug ist.

Die NetBSD) sehen das etwas anders. Aus diesem Grund sind diese Systeme grundsätzlich für den Server-Einsatz besser geeignet als irgendeine Linux-Distribution. Meine persönlichen Berufserfahrungen aus den letzten 10 Jahren (2000-2010) bestätigen das.

Allerdings will ich mir hier nicht anmaßen zu behaupten, dass Linux grundsätzlich nicht als Server-OS eingesetzt werden sollte. Immerhin verdienen viele Firmen gutes Geld mit Support für Linux im Server-Einsatz und des weiteren gibt es leider ja auch noch einige Treiber und Programme für Linux, die für BSD nicht erhältlich sind.

Ich persönlich, setze Linux seit 2005 auf meinen Desktop- und Laptop-Systemen, wegen der besseren Multimediafähigkeiten, ein. In den Jahren von 2000 bis 2005 habe ich ausschließlich FreeBSD auf jeden Fall drauf bleiben, denn mir ist dort Stabilität wichtiger als Funktionalität! Was nützen einem die tollsten Funktionen, wenn sie nur Zicken…

Java

Seit Anfang 2012 wird empfohlen das OpenJDK zu verwenden, leider funktionieren aber nicht alle Anwendungen damit…

Deshalb bevorzuge ich noch das originale SUN-JavaInstallationsanleitung für SUN-Java 7 / SUN-Java 7.

Installation von SUN-Java 1.7.0 auf Ubuntu 12.04 LTS

Vorbereitungen:

# tar xzf Downloads/jdk-7-linux-x64.tar.gz
# mv /home/manfred/jdk1.7.0 /usr/lib/jvm/

Jetzt werden wir Java 7 in die „Alternativen“ eintragen und aktivieren.

Java 1.7.0 jetzt aktivieren:

# update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0/jre/bin/java 1
# update-alternatives --set java /usr/lib/jvm/jdk1.7.0/jre/bin/java
# java -version

Javac 1.7.0 jetzt aktivieren:

# update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0/bin/javac 1
# update-alternatives --set javac /usr/lib/jvm/jdk1.7.0/bin/javac
# javac -version

Javaws 1.7.0 jetzt aktivieren:

# update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.7.0/bin/javaws 1
# update-alternatives --set javaws /usr/lib/jvm/jdk1.7.0/bin/javaws
# javaws
# ln -s /usr/lib/jvm/jdk1.7.0/lib/amd64/libnpjp2.so .mozilla/plugins/

UMTS

# aptitude install usb-modeswitch modemmanager wvdial ppp
# vi /etc/usb_modeswitch.conf
# reload udev

Sollten keine /dev/ttyUSB*-Gerätedateien vorhanden sein (meist sind dann nur /dev/ttyACM*-Gerätedateien vorhanden), dann kann man das hier mal ausprobieren:

# modprobe -r airprime
# modprobe -r usbserial

usbserial can't handle HSDPA data rates…

# modprobe option

CD/DVD

kopieren

Eine sehr gutes und vor allem kleines Programm zum DVD's kopieren ist VOBCopy.

Die Installation ist ganz einfach:

# aptitude install vobcopy

Auch die Anwendung ist ganz einfach!

CSS-verschlüsselte CD/DVD ansehen

Um kopiergeschützte DVD's am PC ansehen zu können, braucht man die css-Bibliothek.

normalerweise kann man CSS-verschlüsselte CD/DVD so ansehen:

# mplayer dvd://1

oder so:

# totem dvd://1

Sollte das nicht funktionieren, dann muss man noch die CSS-Bibliothek installieren:

zu Fuß

Paket mit der CSS-Bibliothek installieren:

# aptitude install $(aptitude search libdvdread | awk '{print $2}')
# /usr/share/doc/libdvdread*/install-css.sh

Jetzt den Regional-Code überprüfen (für Deutschland Region 2):

Bei manchen Laufwerken ist ab Werk kein Regionalcode gesetzt, dann lassen sich auf dem Laufwerk keine verschlüsselten DVDs abspielen!

Jetzt den Regional-Code überprüfen und ggf. setzen (für Deutschland Region 2):

# regionset

die Rechte der Gerätedatei sollten so aussehen:

# # ls -l /dev/cdrom              
lrwxrwxrwx 1 root root 3 2011-10-09 17:14 /dev/cdrom -> sr0
# ls -l /dev/sr0 
brw-rw----+ 1 root cdrom 11, 0 2011-10-09 17:14 /dev/sr0

evtl. müssen noch die Rechte der Gerätedatei richtig gesetzt werden:

# chmod 660 /dev/sr0
# chgrp cdrom /dev/sr0

Jetzt muss der entsprechende Benutzer noch in die Gruppe „cdrom“ aufgenommen werden.

nützliches

Monitor

  • mpstat - CPU-Status, Hard/Soft Interrupt
  • netstat - NIC-Status, Errors, Statistik
  • vmstat - VM Page Info, HDD
  • lspci - Listet alle Geräte am PCI-Bus auf
  • lsusb - Listet alle Geräte am USB-Bus auf
  • oprofile - system level profiling, kernel/driver code
  • modinfo - Liste der geladenen Module
  • sar - collect, report, save system activity information
  • iptraf - Netzwerk-Bandbreitenmessung

Werkzeuge

  • ethtool - View and change Ethernet card settings
  • sysctl - View and set /proc/sys settings
  • ifconfig - View and set ethX variables
  • setpci - View and set pci bus params for device
  • netperf - Can run a bunch of different network tests

Kernelparameter

Wenn ein Linux gestartet wurde, kann man die Parameter (wie folgt) auslesen, welche dem Kernel beim booten übergeben wurden:

# cat /proc/cmdline 
BOOT_IMAGE=/vmlinuz-2.6.32-5-amd64 root=/dev/sda5 ro quiet

Partitionsname ermitteln

Die folgende Kommandozeile ermöglicht es, mit minimalen Mitteln, alle Partitionen im Rechner aufzulisten.

# ls /sys/class/block/*/removable | egrep -v 'loop|ram|dm-' | while read DREMNAME;do ls $(dirname ${DREMNAME})/ | fgrep "$(echo "${DREMNAME}" | awk -F'/' '{print $5}')";done

Die folgende Kommandozeile ermöglicht es, mit minimalen Mitteln, alle Partitionen im Rechner aufzulisten, die auf fest eingebauten Laufwerken liegen. Es werden also keine Partitionen der USB-Stick's bzw. USB-Festplatten angezeigt.

# fgrep -H 0 /sys/class/block/*/removable | egrep -v 'loop|ram|dm-' | while read DREMNAME;do ls $(dirname ${DREMNAME})/ | fgrep "$(echo "${DREMNAME}" | awk -F'/' '{print $5}')";done

SysRQ

Schonmal das Problem gehabt das sich ein Linux so aufgehängt hat das keine Tastatur oder Mauseingaben gemacht werden können, geschweige STRG-ALT-ENTF unter der Console zum gewünschtem Erfolg führt?

Hier die Lösung

In Linux gibt es bestimmte Tastaturkombinationen (SysRQ Shortcuts) die immer funktionieren sofern folgender Parameter gesetzt ist:

# echo "1" > /proc/sys/kernel/sysrq

Die rettende Befehlsfolge

Mit dieser Folge sollte man seine Daten retten und den Server/Rechner sauber herunterfahren können.

  1. Alt + Druck + r – nimmt X die Kontrolle von Maus und Tastatur
  2. Alt + Druck + s – Daten aus dem Festplatten-Cache werden geschrieben (emergency sync)
  3. Alt + Druck + e – Prozesse werden sauber beendet (SIGTERM) / ein wenig warten damit die Prozesse Zeit haben sich zu beenden
  4. Alt + Druck + i – Prozesse die sich aufgehangen haben werden beendet (SIGKILL)
  5. Alt + Druck + u – umount aller gemounteten Dateisysteme
  6. Alt + Druck + b – neustart

Alle SysRQ-Befehle

Hier eine Übersicht über alle verfügbaren Befehle.

  • Alt + Druck + r – nimmt X die Kontrolle von Maus und Tastatur (unRaw)
  • Alt + Druck + o – System wird ausgeschaltet (powerOff)
  • Alt + Druck + s – Daten aus dem Festplatten-Cache werden geschrieben (Sync)
  • Alt + Druck + u – umount aller gemounteten Dateisysteme (Unmount)
  • Alt + Druck + b – reboot (reBoot)
  • Alt + Druck + m – listet Speicherinfos in der Konsole auf (showMem)
  • Alt + Druck + t – listet alle Prozesse in der Konsole auf (showTasks)
  • Alt + Druck + k – killt Prozesse auf dem Terminal (saK)
  • Alt + Druck + e – sendet ein SIGTERM an alle Prozesse, ausser Init (tErm)
  • Alt + Druck + i – sendet SIGKILL zu allen Prozessen, ausser Init (kIll)
  • Alt + Druck + c – macht ein Dump (Crashdump)
  • Alt + Druck + w – listet alle blockierten Prozesse in der Konsole auf(shoW-blocked-tasks)
  • Alt + Druck + q – listet alle Timer in der Konsole auf (show-all-timers(Q))

CPU's zählen

physikalische Anzahl der CPU's im System zählen

In Linux (2.6.x - Kernel) kann man wie folgt die im System steckenden CPU's zählen:

# ls -1d /sys/devices/system/cpu/cpu[0-9]* | wc -l
4

physikalische Anzahl der CPU-Kerne anzeigen

# fgrep 'cpu cores' /proc/cpuinfo
cpu cores       : 4
cpu cores       : 4
cpu cores       : 4
cpu cores       : 4

Anzahl aller Kerne im System zählen

# fgrep 'cpu cores' /proc/cpuinfo | awk '{z=$4;s+=z}END{print s}'
16

Anzahl der CPU's

# awk '/core id/ {s=$NF}END{print s+1}' /proc/cpuinfo
4

IP-Forward

abschalten

# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0

oder

# vi /etc/sysctl.d/weiterleitung.conf
net.ipv4.ip_forward = 0

oder temporär:

# echo "0" > /proc/sys/net/ipv4/ip_forward

Firewall-Regeln

Regeln anzeigen

Filter
# iptables -L -t filter

oder einfach so:

# iptables -L

ausführlicher so:

# iptables -L -v
NAT
# iptables -t nat -L

um lange DNS-Abfragen zu vermeiden, besser so:

# iptables -t nat -n -L

ausführlicher so:

# iptables -t nat -n -L -v

Regeln Boot-fest machen

# iptables-save > /etc/firewall.conf
# echo "#!/bin/sh" > /etc/network/if-up.d/iptables 
# echo "iptables-restore < /etc/firewall.conf" >> /etc/network/if-up.d/iptables 
# chmod 0755 /etc/network/if-up.d/iptables

ALLE Regeln flushen

# iptables -P INPUT DROP
# iptables -F INPUT
# iptables -P OUTPUT DROP
# iptables -F OUTPUT
# iptables -P FORWARD DROP
# iptables -F FORWARD
# iptables -t nat -F

USB-Stick mit FAT formatieren

FAT32:

# mkfs -t vfat -F 32 /dev/sdc1
# mkdosfs -F 32 /dev/sdc1

FAT16:

# mkfs -t vfat -F 16 /dev/sdc1
# mkdosfs -F 16 /dev/sdc1

FAT12:

# mkfs -t vfat -F 12 /dev/sdc1
# mkdosfs -F 12 /dev/sdc1

kurzer Dateisystemvergleich

Dateisysteme Vorteile Nachteile
ext3 sehr verbreitet erfordert in regelmäßigen Abständen einen Dateisystem-Check; Dateisystem-Check ist sehr langsam; Plattenkapazität wird schlecht ausgenutzt
ext3 bei Systemausfall
ext3 extrem hohes Daten-Risiko bei Systemausfall
xfs
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki