Kategorie: Linux

  • Ermitteln der Linuxdistribution, Linuxversion, Kernelversion, CPU, RAM, HD-Kapazität

    Befehle zum Ermitteln der Linux-Distribution und der Version der Linux-Distribution:

    cat /etc/issue

    Beispielausgabe:

    Fedora release 9 (Sulphur)
    Kernel \r on an \m (\l)

    oder

    Welcome to openSUSE 11.1 - Kernel \r (\l).

    Befehle zum Ermitteln der Version des Linuxkernels:

    uname -r

    Ausgabe:

    2.6.27.12-78.2.8.fc9.x86_64
    
    2.6.18-028stab064.7
    
    2.6.27.48-0.1-pae

    oder

    cat /proc/version

    Ausgabe:

    Linux version 2.6.18-028stab064.7 (root@rhel5-64-build) (gcc version 4.1.2 20070 626 (Red Hat 4.1.2-14)) #1 SMP Wed Aug 26 13:11:07 MSD 2009
    
    Linux version 2.6.27.48-0.1-pae (geeko@buildhost) (gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux) ) #1 SMP 2010-07-05 22:20:39 +0200

     

    Befehle zum Ermitteln der CPU Informationen:

    cat /proc/cpuinfo

    Ausgabe:

    processor : 0
    vendor_id : AuthenticAMD
    cpu family : 16
    model : 2
    model name : Quad-Core AMD Opteron(tm) Processor 2347 HE
    stepping : 3
    cpu MHz : 1431.598
    cache size : 512 KB
    physical id : 0
    siblings : 4
    core id : 0
    cpu cores : 4
    apicid : 0
    fpu : yes
    fpu_exception : yes
    cpuid level : 5
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc pni cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy altmovcr8 abm sse4a misalignsse 3dnowprefetch osvw
    bogomips : 3817.59
    TLB size : 1024 4K pages
    clflush size : 64
    cache_alignment : 64
    address sizes : 48 bits physical, 48 bits virtual
    power management: ts ttp tm stc 100mhzsteps hwpstate [8]

    oder

    lscpu

    Ausgabe:

    lscpu
    Architecture:          i686
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                4
    Vendor ID:             AuthenticAMD
    CPU family:            16
    Model:                 2
    Stepping:              3
    CPU MHz:               1425.000
    BogoMIPS:              3817.70
    Virtualization:        AMD-V

    Befehle zum Ermitteln der HD Speicherplatzbelegung:

    df -h

    Ausgabe:

    Dateisystem Size Used Avail Use% Eingehängt auf
    /dev/vzfs   25G  21G  4,6G  82%  /

    Befehle zum Ermitteln der RAM Speicherbelegung:

    free -m -t

    Ausgabe:

          total used free shared buffers cached
    Mem:  2048  72   1975 0      0       0
    -/+ buffers/cache: 72 1975
    Swap: 0 0 0
    Total: 2048 72 1975
  • Unter Linux eine Liste der größten Dateien ausgeben

    Folgende Problemstellung: Es soll unter Linux eine nach Dateigröße sortierte Liste von Dateien ermittelt werden, die eine bestimmte Größe überschreiten.

    find /srv -type f -size +50000k

    Mit dem Find-Befehl wird eine Liste aller Dateien im Verzeichnis /srv und den darin enthaltenen Unterverzeichnissen ermittelt, die größer als 50000 Kb sind. Das Ergebnis ist noch nicht ganz zufriedenstellend, da nur die Dateien ausgegeben werden, nicht aber ihre Größe. Ebenfalls sind die Dateien noch nicht sortiert. Dies lässt sich erreichen, indem man das Ergebnis des Find-Befehls mithilfe des Befehls xargs mit dem ls Befehl kombiniert.

    find /srv -type f -size +50000k| xargs ls -lahS

    Jetzt erhält man die gewünschte Liste mit den Dateien im Verzeichnis /srv, die größer als 50000Kb sind – sortiert nach der Dateigröße.

  • Minimal CPU Benchmark für Linux

    Nachdem ich heute zwei unterschiedliche virtuelle Server von Strato geordert hatte, suchte ich nach einer Möglichkeit, mit wenig Aufwand die CPU-Leistung der virtuellen Server zu vergleichen. Im Forum www.linux-club.de fand ich einen Einzeiler, mit dem die Zeit ermittelt wird, die Zahl Pi auf 1000 Stellen zu berechnen.

    time echo "scale=1000; 4*a(1)" | bc -l

    Hier noch ein paar Ergebnisse:

    Root KVM vServer Netcup S v6
    4,99€ / Monat
    40GB HD RAID1
    2GB RAM
    1 vCore  Westmere E56xx/L56xx/X56xx (Nehalem-C) cpu MHz : 2000.000

    (25.08.2015)
    real 0m0.613s
    user 0m0.592s
    sys 0m0.016s

    (29.10.2015)
    real 0m0.631s
    user 0m0.620s
    sys 0m0.004s

    (29.10.2016)
    real 0m0.660s
    user 0m0.628s
    sys 0m0.028s

    Root Server Linux Small (bkm-v1411.1.29)  (Hardware)
    19,00 €/Monat
    500GB HD Raid 1
    4 GB Ram
    Dual-Core AMD Opteron(tm) Processor 1214 HE cpu MHz : 1000.000

    (29.12.2014)
    real 0m0.764s
    user 0m0.760s
    sys 0m0.000s

    (29.10.2015)
    real 0m0.763s
    user 0m0.756s
    sys 0m0.000s

    Strato Virtual Server Linux V20-49 (1609.1de)
    10,00€/Monat
    300GB HDD
    Min 2GB RAM, max 4GB RAM
    2 vCores (Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz  cpu MHz:1998.828 )

    (29.10.2016)
    real 0m0.376s
    user 0m0.375s
    sys 0m0.000s

     

    Virtual Server Linux Level 1 Site (Wandel.1406.ERG)
    8,99 €/Monat
    200GB HDD
    Min 2GB RAM, max 4GB RAM
    2 vCores (Quad-Core AMD Opteron(tm) Processor 2347 HE cpu MHz : 379.443)

    (29.12.2014)
    real 0m2.272s
    user 0m0.932s
    sys 0m0.004s

     

    Virtual Server Linux Level 1 Site (Wandel.1406.ERG)
    8,99 €/Monat
    200GB HDD
    Min 2GB RAM, max 4GB RAM
    2 vCores (Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz cpu MHz : 239.648)

    (29.12.2014)
    real 0m2.638s
    user 0m1.069s
    sys 0m0.005s

    (29.10.2016)
    aktuelle CPU MHz: 1998.828!!!
    real 0m0.412s
    user 0m0.394s
    sys 0m0.012s

     

    Virtual Server Linux Level 1 Site (Wandel.1406.ERG)
    8,99 €/Monat
    200GB HDD
    Min 2GB RAM, max 4GB RAM
    2 vCores (Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz cpu MHz : 559.179)

    (29.12.2014)
    real 0m1.032s
    user 0m0.388s
    sys 0m0.044s

    (29.10.2015)
    real 0m1.100s
    user 0m0.394s
    sys 0m0.000s

    Strato Virtual Server Linux Level 1 (v1304.1)
    7,99 €/Monat
    50GB HDD
    Min 1GB RAM, max 2GB RAM
    1 x Quad-Core AMD Opteron(tm) Processor 2347 HE 1425.000 MHz (physikalische CPU, nicht die nutzbaren Kerne)

    (31.10.2013)
    real 0m1.225s
    user 0m0.921s
    sys 0m0.005s

    Strato Virtual Server Linux Level 2UP
    14,90 €/Monat
    100GB HD
    Min 2GB RAM, max 4GB RAM
    1 x Octo-Core AMD Opteron(tm) Processor 6128 1500.105 MHz (physikalische CPU, nicht die nutzbaren Kerne)

    (31.10.2013)
    real 0m1.278s
    user 0m0.969s
    sys 0m0.006s

    (02.12.2012)
    real    0m1.476s
    user    0m1.224s
    sys     0m0.023s

    V-PowerServer S (v5.1)
    7,90 €/Monat
    25GB HDD
    2048 MB RAM (physikalisch)
    1 x Quad-Core AMD Opteron(tm) Processor 2347 HE 1431.598 MHz (physikalische CPU, nicht die nutzbaren Kerne)

    (31.10.2013)
    real 0m1.267s
    user 0m0.958s
    sys 0m0.008s

    (01.12.2012)
    real 0m1.674s
    user 0m1.324s
    sys 0m0.008s

    STRATO V-PowerServer S (v4.1)
    9,90 €/Monat
    (20.02.2010)
    real 0m1.793s
    user 0m1.405s
    sys 0m0.035s

    (09.05.2011)
    real 0m1.371s
    user 0m1.090s
    sys 0m0.006s

    STRATO V-PowerServer L (v4.3)
    29,90 €/Monat
    50GB HDD
    4096 MB RAM (physikalisch)
    2 x Quad-Core AMD Opteron(tm) Processor 2347 HE 1670.198 MHz (physikalische CPU, nicht die nutzbaren Kerne)

    (31.10.2013)
    real 0m0.953s
    user 0m0.942s
    sys 0m0.002s

    (01.12.2012)
    real 0m0.950s
    user 0m0.940s
    sys 0m0.005s

    (09.05.2011)
    real 0m0.987s
    user 0m0.978s
    sys 0m0.008s

    (20.02.2010)
    real 0m0.680s
    user 0m0.674s
    sys 0m0.007s

    STRATO V-PowerServer L (v5.3)
    24,90 €/Monat

    (09.05.2011)
    real 0m1.074s
    user 0m1.067s
    sys 0m0.008s

    STRATO V-PowerServer A (v2.5)
    (20.02.2010)
    real    0m0.875s
    user    0m0.866s
    sys     0m0.007s

    STRATO PowerServer MR (v4.3)  (Hardware)

    (20.02.2010)
    real    0m1.695s
    user    0m1.688s
    sys     0m0.008s

    ThinClient mit Via 800 Mhz CPU

    (20.02.2010)
    real    0m9.423s
    user    0m6.800s
    sys     0m0.020s

    Raspberry Pi

    (10.02.2013)
    real    0m4.566s
    user   0m3.730s
    sys     0m0.020s

    PC mit Intel Core 2 CPU 1600 Mhz CPU

    (02.12.2012)
    real    0m0.600s
    user    0m0.596s
    sys     0m0.004s

    Dell Poweredge 2950  (Hardware)
    Dual-Quad Core Intel(R) Xeon(R) CPU E5430 @ 2.66GHz  cpu MHz : 2660.011

    (29.12.2014)
    real 0m0.489s
    user 0m0.488s
    sys 0m0.000s

    Intel Atom  (Hardware)
    Quad Core Intel(R) Atom(TM) CPU D525 @ 1.80GHz cpu MHz : 1800.150

    (29.10.2015)
    real 0m1.759s
    user 0m1.752s
    sys 0m0.004s

    Strato Server Cloud VM
    1CPU 1GB Ram 20GB HDD
    Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz cpu MHz : 2300.050

    (29.10.2015)
    real 0m0.666s
    user 0m0.652s
    sys 0m0.008s

    Wie in der Überschrift erwähnt, ist dies nur ein Minimal CPU Benchmark. Er liefert nur als Momentaufnahme grobe Anhaltspunkte über die Geschwindigkeit der CPU (eines CPU Cores) und ersetzt keineswegs einen vollständigen Benchmark, der alle Systemkomponenten einbezieht.

  • Kombination der Linux/Unix Befehle find und ls mit xargs

    Ich wollte die Dateigröße aller Logdateien verschiedener vhosts eines Webservers anschauen. Mit

    find /srv/ -name access_log.log

    konnte ich mir die Logdateien anzeigen lassen. Nähere Informationen zu den Dateien inklusive Dateigröße erhoffte ich mir von folgendem Befehl:

    /srv/ -name access_log.log | ls-alh

    Die Pipe funktionierte leider nicht so, wie ich es erwartete. Ich bekam nur die Liste der Dateien im aktuellen Ordner. Eine Internetrecherche brachte dann die richtige Befehlskombination:

    find /srv/ -name access_log.log| xargs ls -lah

  • Variablen bei sed-Ausdrücken

    Problem: Beim Suchen und Ersetzen eines Strings in einer Textdatei mit dem Linux-Programm sed (Stream Editor) trat das Problem auf, dass bei der Verwendung von Shellvariablen als Suchmuster der gewünschte Text, also der Wert der Variablen, nicht durch den Zieltext ersetzt wurde. Ein Test ohne Variablen funktionierte aber ohne Probleme.

    sed ’s/suchmuster/zieltext/g‘ Eingabedatei > Ausgabedatei
    mv Ausgabedatei Eingabedatei

    ersetzte den Text „suchmuster“ in der „Eingabedatei“ mit dem Text „zieltext“ und schrieb das Ergebnis in die „Ausgabedatei“.

    Folgendes funktionierte aber nicht:

    suchmuster=“das ist der quelltext“
    zieltext=“das ist der zieltext“
    sed ’s/$suchmuster/$zieltext/g‘ Eingabedatei > Ausgabedatei
    mv Ausgabedatei Eingabedatei

    Der Text „das ist der quelltext“ wurde nicht durch den Text „das ist der zieltext“ ersetzt.

    Lösung: Durch eine Suchmaschinenrecherche fand ich die Lösung. Sed wertet den Inhalt von Variablen nicht aus, wenn man einfache Anführungszeichen (‚) beim Erstellen des Ausdrucks verwendet. Ersetzt man die einfachen Anführungszeichen durch doppelte Anzührungszeichen („), werden zuerst die Variablen expandiert und dann erst der Sed-Ausdruck ausgeführt.

    Der funktionierende Code sah dann so aus:

    suchmuster=“das ist der quelltext“
    zieltext=“das ist der zieltext“
    sed s/$suchmuster/$zieltext/g Eingabedatei > Ausgabedatei
    mv Ausgabedatei Eingabedatei

    Quelle: http://www.unixboard.de

  • SSH Login scheitert mit der Fehlermeldung „sshd[xxxx]: fatal: daemon() failed: No such device“

    Plötzlich war bei unserem OpenSuse 10.3 Rootserver kein SSH Login mehr möglich. Der Verbindungsaufbau wurde mit der Meldung „Connection Refused“ verweigert. Glücklicherweise hatte ich noch Zugriff auf die Konsole des Servers, wo ich mich auch lokal anmelden konnte. Eine Überprüfung mit

    rcsshd status

    zeigte, dass der SSH Daemon nicht lief. Auch ließ er sich mit

    rcsshd start

    nicht mehr starten. Ein Blick in /var/log/messages zeigte folgende Fehlermeldung: sshd[27256]: fatal: daemon() failed: No such device.
    Eine Internetrecherche brachte dann die Lösung des Problems. Anscheinend war die Datei /dev/null daran Schuld, dass sich der SSH Daemon nicht starten ließ. Mit folgenden Befehlen wurde die Datei /dev/null gelöscht und neu erstellt:

    rm -rf /dev/null
    mknod /dev/null c 1 3

    Danach funktionierte das Starten des SSH Daemons mit

    rcsshd start

    wieder.

    Gefunden habe ich die Lösung unter:

    http://forums.misdivision.com/showthread.php?t=633

  • Bash: Löschen von Zeilen aus einer Datei, die ein bestimmtes Suchmuster enthalten

    Das Löschen von bestimmten Zeilen aus einer Datei kann mithilfe einer temporären Datei und dem Kommandozeilentool grep geschehen. Grep gibt alle Zeilen einer Textdatei aus, die einem bestimmten Suchmuster entsprechen. Die Option -v von grep negiert die Ausgabe von grep. Es werden dann nur Zeilen einer Datei ausgegeben, die ein bestimmtes Suchmuster nicht enthalten. Die Ausgabe auf dem Bildschirm kann man nun in eine temporäre Datei umleiten. Im Anschluss daran kann man die Originaldatei mit der temporären Datei überschreiben. Nun hat man eine Datei, aus der diejenigen Zeilen entfernt wurden, die ein bestimmtes Suchmuster enthielten.

    grep -v  suchmuster originaldatei > tempdatei
    mv tempdatei originaldatei

  • Packen und Entpacken mit tar

    Weil ich als Windowsadmin immer wieder den Syntax von tar nachschlagen muss:

    Packen

    tar cfvz archiv.tar.gz verzeichnis/

    • Sichert das Verzeichnis „verzeichnis“ in die Datei archiv.tar.gz – dabei wird die GZip Komprimierung verwendet.
    • Das Verzeichnis ‚verzeichnis‘ wird mit relativem Pfad im Archiv gespeichert.
    • Symbolischen Links wird nicht gefolgt, sondern der Link wird gesichert.
    • Owner und Group Informationen sowie Rechte werden unverändert mitgesichert.

    tar cfvz archiv.tar.gz /srv/www/vhosts/verzeichnis/

    • Sichert das Verzeichnis mit absolutem Pfad. Dieser Pfad wird beim Entpacken ausgehend vom aktuellen Verzeichnis wiederhergestellt.

    Entpacken

    tar xfvz archiv.tar.gz

    • Entpackt den Inhalt des Archivs „archiv.tar.gz“ in den aktuellen Ordner.
  • CPU Last unter Linux monitoren – sar

    Die CPU-Last lässt sich unter Linux ganz einfach mit dem Befehl top ermitteln. Hier erfährt man die gesamte CPU-Last, aber auch den CPU Verbrauch einzelner Prozesse.

    Wenn man die gesamte CPU-Auslastung in bestimmten Zeitintervallen ermitteln möchte, eignet sich der Befehl sar besser.

    Um den Befehl sar benutzen zu können, muss das Programmpaket sysstat installiert sein.

    Der Syntax, um mit dem sar-Befehl die CPU-Last zu monitoren, lautet:

    sar -u 5 100

    5 gibt das Intervall in Sekunden an, in dem die CPU-Last ermittelt werden soll.

    100 gibt die Gesamtanzahl an, wie oft die CPU-Last ermittelt werden soll.

    Die Ausgabe sieht dann folgendermaßen aus:

    14:30:08 CPU %user %nice %system %iowait %idle
    14:31:08 all 16.87 0.00 3.41 5.02 74.70
    14:31:13 all 31.12 0.00 9.44 9.64 49.80
    14:31:18 all 23.85 0.00 6.81 2.61 66.73
    —— snip —-
    Average: all 5.72 0.00 1.14 0.58 92.56

    Unter Debian befindet sich das Programm sar im Paket sysstat.

     apt-get install sysstat

     

  • Aktivieren und Deaktivieren von Apache2 Modulen – a2enmod – a2dismod

    Nachdem ich schon etliche Male die Apache Konfigurationsdatei /etc/sysconfig/apache2 bei Suse von Hand bearbeitet hatte, um Apache2 Module zu aktivieren, ist mir letztens ein Befehl oder, besser gesagt, zwei Befehle untergekommen, die das Ganze automatisieren.

    Dies sind a2enmod um Apache Module zu aktivieren

    und

    a2dismod um Apache Module wieder zu deaktivieren.

    Der Syntax ist denkbar einfach:

    a2enmod MODULNAME aktiviert das Apache2 Modul MODULNAME

    a2dismod MODULNAME deaktiviert das Apache2 Modul MODULNAME

    Weiterhin listet der Befehl a2enmod -l alle aktivierten Apache2 Module auf.

    Beispiel:

    a2enmod ssl aktiviert das ssl Modul.

    a2dismod ssl deaktiviert das ssl Modul.

    Nachtrag 06/2011:

    Apache Modulhandling unter Debian 6

    a2enmod -l funktioniert unter Debian nicht. Eine Liste mit den aktivierten Apache modulen erhält man mit:
    ls -l /etc/apache2/mods-enabled/

    Eine Liste mit den zur Verfügung stehenden Modulen erhält man mit:
    ls -l /etc/apache2/mods-available/

    Eine weitere Möglichkeit sich alle geladenen Module anzuzeigen ist der Befehl
    apachectl -M
    (-M  Dump a list of loaded Static and Shared Modules.)

    apachectl -M
    Loaded Modules:
     core_module (static)
     log_config_module (static)
     logio_module (static)
     version_module (static)
     mpm_prefork_module (static)
     http_module (static)
     so_module (static)
     alias_module (shared)
     auth_basic_module (shared)
     authn_file_module (shared)
     ....
    Syntax OK

    Weitere Infos: Apache Modulverwaltung unter Debian