blog.bartlweb - a technologist's external brain

Thema: Linux

CD/DVD manuell mounten

Um eine CD oder DVD unter Linux zu mounten muss entweder ein Eintrag in der Fstab-Datei vorhanden sein oder Sie müssen die Parameter per Hand angeben.

per Hand mounten

Erstellen Sie zunächst das gewünschte Mount-Verzeichnis, hier /mount/cdrom bzw. /mount/dvd.

eine CD im CD-Laufwerk

mount -F iso9660 /dev/cdrom /mount/cdrom

eine CD im DVD-Laufwerk

mount -F iso9660 /dev/dvd /mount/dvd

eine DVD im DVD-Laufwerk

mount -F udf /dev/dvd /mount/dvd

mittels Fstab-Eintrag mounten

Zunächst müssen Sie ermitteln unter welcher Gerätedatei Ihr Laufwerk zu finden ist. Überprüfen Sie ob einer der folgenden Einträge vorhanden ist: /dev/dvd oder /dev/cdrom oder /dev/cdrom0.

Abkürzungen für oft verwendete Befehle einrichten

Wer oft verwendete Befehle nicht immer tippen will dem helfen sogennante Alias. Dabei wird für einen langen Befehl einfach eine Kurzform definiert. Für die aktuelle Sitzung funktioniert dies über den folgenden Befehl:

alias <short>='<long>'

Beispiel

alias ll='ls -la'

Um diese Befehle auch nach dem Neustart des Rechners noch verwenden zu können, müssen diese dauerhaft gespeichert werden. Dazu schreibt man die benötigten alias-Befehle einfach in eine der folgenden Dateien im Home-Verzeichnis des jeweiligen Benutzers: .profile, .bashrc oder .bash_profile.

Unter Mac OS X ist es immer die Datei .profile.

Prozesse unter Linux anhand von verwendeten Ports ermitteln

Der folgende Befehl erlaubt die Ermittlung von Prozesses abhängig vom verwendeten Port. So lässt sich zum Beispiel ermitteln welcher Prozess gerade Port 80 belegt und sich daher der Webserver nicht starten lässt.

lsof -i <TCP/UDP>:<Port>

Beispiel

lsof -i TCP:80

Software-Raid unter Linux konfigurieren

Ein Software-Raid unter Linux einzurichten ist nicht sehr aufwändig und empfiehlt sich daher vor allem für RAID0-Konfigurationen wenn es um die Nutzung von einer großen über mehrere Festplatten hinweg verteilten Partition geht.

Eine gute Referenz, die nicht nur die Einrichtung sondern auch die unterschiedlichen RAID-Typen erklärt, findet sich in der Ubuntu-Wiki unter http://wiki.ubuntuusers.de/software-raid.

Partitionen für die Verwendung im RAID vorbereiten

Vorweg ist zu sagen, dass ein Software-RAID nicht aus ganzen Festplatten sondern aus einzelnen Partitionen erstellt wird. D.h. es können die unterschiedlichsten Partitionsgrößen und die verschlungensten Anordnungen über verschiedene physische Festplatten hinweg genutzt werden. Beispiel: Eine große Partition auf einer eigenen Festplatte und eine kleine Partition am Ende der System-Platte lassen sich somit zu einer großen Partition zusammenfügen um den gesamten freien Speicherplatz effektiver als in Einzelpartitionen zu nutzen.

Script für das einfache updaten von mehreren Linux-Servern

Das folgende Skript ist für das einfache installieren von Updates auf mehreren Linux-Servern gedacht. Beachten Sie, dass dieses Skript nur Pakete die nicht den Kernel betreffen installiert, da nach Kernel-Updates meist ein Neustart erforderlich ist und dieser besser einzeln und gezielt pro Server durchgeführt wird.

#!/bin/bash
 
while :
do
 
  clear
 
  echo "Server-Updater"
  echo "========================================================="
  echo "choose system for update:"
  echo
  echo "  1) Ubuntu Servers"
  echo "  2) openSuse Server"
  echo
  echo "(q) quit programm"
  echo "========================================================="
 
  read input
 
  case "$input" in
 
    "1" )
      clear;
      echo "Update Ubuntu Servers"
      echo "========================================================="
      echo
     
 
      echo "Server (sshuser)"
      echo "=============="
      ssh 192.168.10.1 -l sshuser -t "sudo apt-get -y upgrade; exit;"
      echo "=============="
      echo
 
      echo "Server2 (root)"
      echo "=============="
      ssh 192.168.10.2 -l root "apt-get -y upgrade; exit;"
      echo "=============="
      echo
     
     
      echo
      echo "========================================================="
      read -p "press enter to continue ..."
    ;;
 
    "2" )
      clear;
      echo "Update OpenSuse Servers"
      echo "========================================================="
      echo
     
     
      echo "Webserver (sshuser)"
      echo "=============="
      ssh 192.168.0.3 -l sshuser -t "sudo zypper --non-interactive patch; exit;"
      echo "=============="
      echo
     
      echo "Sampleserver (root)"
      echo "=============="
      ssh 192.168.0.4 -l root "zypper --non-interactive patch; exit;"
      echo "=============="
      echo
     
 
      echo
      echo "========================================================="
      read -p "press enter to continue ..."
    ;;
 
    "Q" | "q" | "quit" )
      # exit
      clear
      break
    ;;
   
    * )
     # default 
      clear
    ;;
 
  esac
 
done
 
exit 0

setlocale warning unter Ubuntu

Wird Ubuntu in Englisch aber mit deutschen Layout und deutschem Standort installiert kann es unter Umständen zu kryptischen Fehlermeldungen im Zusammenhang mit setlocale kommen. Diese treten  beim erweitern eines Pfades mit Tabulator oder beim installieren von Software mit apt-get auf.

Fehlermeldung

cd /etc/ho<TAB> cd /etc/ho-bash-static: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8) -bash-static: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8)sts

Fehlerbehebung

Installieren Sie das deutsche Sprachpaket. Nachteil: alle Ausgaben vom System (z.B.: apt-get) sind nun auf Deutsch.

sudo apt-get install language-pack-de

Um die Systemausgaben wieder auf Englisch umzustellen, müssen Sie die folgenden Schritte durchführen. Installieren Sie zunächst das englische Sprachpaket.

Script zum überprüfen auf neue Updates

Die folgenden Perl-Skripte überprüfen unter Ubuntu oder openSuse Linux auf neue Updates und senden bei Verfügbarkeit von neuen Updates eine E-Mail an die definierte E-Mail-Adresse.

Um die Überprüfung jeden Tag um 08:00 Uhr anzustoßen, richten Sie den folgenden Cronjob ein:

0 8 * * * /<path>/check_updates.sh >> /dev/null 2>&1

Ubuntu

#!/usr/bin/perl
 
#
# settings
#
 
$mailfrom = "<sendername>\@domain.com";
$mailto = "<recipient>\@domain.com";
$subject = "Server: Updates available!";
 
#
# script
#
 
use FileHandle;
 
@check=`apt-get update`;
@check=`apt-get -s dist-upgrade`;
 
@warn = grep(/^0 updated,/, @check);
# german language pack installed
#@warn = grep(/^0 aktualisiert,/, @check);
 
if(scalar(@warn) == 0){
    $mail = new FileHandle;
    $mail->open("| /usr/sbin/sendmail -t") || die "Cannot open: $!";
    $mail->print("From: $mailfrom\n");
    $mail->print("To: $mailto\n");
    $mail->print("Subject: $subject\n\n");
        
    foreach (@check) {
      $mail->print($_, "\n");
    }
                      
    $mail->close();
}

openSuse

#!/usr/bin/perl
 
#
# settings
#
 
$mailfrom = "<sendername>\@domain.com";
$mailto = "<recipient>\@domain.com";
$subject = "Server: Updates available!";
 
#
# script
#
 
use FileHandle;
 
@check=`zypper refresh`;
@check=`zypper lp`;
 
@warn = grep(/^No updates found./, @check);
# german language pack installed
@warn = grep(/^Keine Aktualisierungen gefunden./, @check);
 
if(scalar(@warn) == 0){
    $mail = new FileHandle;
    $mail->open("| /usr/sbin/sendmail -t") || die "Cannot open: $!";
    $mail->print("From: $mailfrom\n");
    $mail->print("To: $mailto\n");
    $mail->print("Subject: $subject\n\n");
         
    foreach (@check) {
      $mail->print($_, "\n");
    }
                      
    $mail->close();
}

USB-Festplatte unter Linux einrichten

Folgen Sie den folgenden Anweisung um eine USB-Festplatte unter Linux zu verwenden. Führen Sie alle Befehle als root aus.

Festplatte formatieren

Wenn es sich um eine neue Festplatte handelt muss diese zunächst mit einer Partition versehen und formatiert werden. Für Festplatten unter 2TB Kapazität können Sie mit herkömmlichen Partitionstabellen arbeiten und das Tool fdisk nutzen.

  1. Ermitteln Sie die Bezeichnung der Festplattte /dev/<hdd> (z.B. /dev/sdc) mittels fdisk -l.
  2. Führen Sie fdisk /dev/<hdd> (Bsp.: fdisk /dev/sdc) aus und erstellen Sie mittels n eine neue Partition. Mit q beenden Sie fdisk.
  3. Formatieren Sie die Partition mit dem Befehl: mkfs.ext4 /dev/<hdd>1 (Bsp.: mkfs.ext4 /dev/sdc1).

Autostart-Dienste unter Ubuntu verwalten

Wer unter Ubuntu Dienste automatisch beim Start (booten) des Systems mitstarten möchte kann dies über den Befehl update-rc.d tun. Einzige Voraussetzung ist die Existenz eines Startup-Skripts unter /etc/init.d für den betreffenden Service.

Dienst automatisch starten

sudo update-rc.d <service> defaults

Beispiel

sudo update-rc.d mysql defaults

automatischen Start eines Dienstes deaktivieren

sudo update-rc.d <service> remove

Linux-Befehl oder Skript im Hintergrund ausführen

Gerade bei Befehlen oder Skripten die eine längere Laufzeit haben, ist es oft von Vorteil wenn man diese im Hintergrund ausführen kann. Somit wird die Konsole bzw. die SSH-Sitzung nicht blockiert bzw. im Falle der SSH-Verbindung kann diese Beendet werden ohne, dass die Ausführung des Befehls abgebrochen wird.

Um einen Befehl im Hintergrund auszuführen fügen Sie diesem am Ende ein & hinzu.

./myscript& rm -R largefolder&