Kategoriearchive: Ubuntu

Festplattenbelegung mit ncdu ohne GUI analysieren

Eine kurze Vorstellung eines sehr praktischen Tools, um die Festplattenbelegung auf einem Server schnell und übersichtlich zu analysieren:

Das Programm „ncdu“ (NCurses Disk Usage) ist ein kleines Programm, das mal eben eingetippt ist und mit Sicherheit oft Anwendung findet, unter Debian, Ubuntu und Derivaten mit folgendem Befehl zu installieren:

sudo apt-get install ncdu

Den Befehl „ncdu“ eintippen und loslegen, falsch machen kann man „eigentlich“ nichts:

ncdu ohne Parameter
ncdu ohne Parameter

Es können auch Verzeichnisse und Dateien, die ein bestimmtes Muster beinhalten übersprungen werden, etwa mit „ncdu –exclude *nagios“. Wildcards sind erlaubt:

ncdu mit "exclude" Parameter
ncdu mit „exclude“ Parameter

Shrew Soft VPN Client auf Ubuntu 13.04 / 13.10 installieren

In früheren Versionen fand sich der Shrew Soft VPN Client im offiziellen Repository Ubuntus. Leider ist das nicht mehr der Fall. Allerdings lässt sich der Client recht einfach auch für neuere Ubuntu Versionen installieren.

Changelog

  • 02. Mär – Init-Script „update-rc.d“ was missing

Client Installation

Zuerst den Client von der offiziellen Shrew Soft Seite laden. Zum aktuellen Zeitpunkt ist die neueste Version 2.2.1. Im Anschluss entpacken und in das neue Verzeichnis wechseln:

cd ~/Downloads
wget https://www.shrew.net/download/ike/ike-2.2.1-release.tbz2
tar xfvj ike-2.2.1-release.tbz2
cd ike

Folgende Abhängigkeiten sind für das Bauen des Clients notwendig:

sudo apt-get install cmake build-essential libedit-dev libssl-dev flex bison lsb-cxx lsb-qt4 qt4-qmake libqt4-core libqt4-dev

Nun kann der Client kompiliert werden:

cmake -DCMAKE_INSTALL_PREFIX=/usr -DQTGUI=YES -DETCDIR=/etc -DNATT=YES
make
sudo make install

Leider wird hierbei keine Verknüpfung zur GUI erstellt, auch fand ich kein hochauflösendes Icon. Google hat geholfen. Das Icon habe ich auf meinen Server geladen. Eine Quellenangabe hierzu fand ich leider nicht:

sudo wget https://www.debinux.de/wp-content/uploads/shrew.png -O /usr/share/icons/shrew.png
sudo nano /usr/share/applications/ike.desktop

Im Editor nun folgenden Inhalt einfügen:

[Desktop Entry]
Name=Shrew Soft VPN Access Manager
Name[en_CA]=Shrew Soft VPN Access Manager
Name[de]=Shrew Soft VPN Zugangsverwaltung
Comment=Application to manage remote site configurations
Comment[en_CA]=Application to manage remote site configurations
Comment[de]=Anwendung zum Verwalten der VPN-konfigurationen
Exec=/usr/bin/qikea
Icon=/usr/share/icons/shrew.png
Terminal=false
Type=Application
Categories=Network

Das ganze sieht dann etwa so aus:

Shrew Soft VPN Icon
Shrew Soft VPN Icon

Die Beispielkonfiguration für den Daemon, der parallel läuft, reicht in der Regel aus. Diese Konfiguration hat erstmal nichts mit der VPN Konfiguration zu tun, die man später im Client importiert/erstellt:

sudo cp /etc/iked.conf.sample /etc/iked.conf

Der Client kann nun gestartet werden, allerdings wird eine Verbindung zum Server nicht funktionieren, da der „iked“ Dienst erst noch gestartet werden muss. Der Fehler lautet dann etwa „failed to attach to key daemon„.

Automatischer Start

Anstatt die Datei „/usr/sbin/iked“ jedes mal manuell anzustoßen, kann entweder ein Upstart- oder Init-Script verwendet werden.

Upstart

sudo nano /etc/init/iked.conf

Folgender Inhalt muss eingefügt werden:

# this script will start/stop the IKE daemon
# that the IKE client depends upon

description "Start and stop the IKE daemon"
expect fork

start on startup
stop on runlevel [!2345]
script
exec /usr/sbin/iked
end script

Anschließend den Dienst starten:

sudo initctl start iked

Init-Script

sudo nano /etc/init.d/iked

Folgender Inhalt muss eingefügt werden:

#! /bin/sh -e
### BEGIN INIT INFO
# Provides: IKE daemon
# Required-Start: $network $syslog
# Required-Stop:  $network $syslog
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Description:    start and stop the Shrew Soft IKE daemon
### END INIT INFO

test -x /usr/sbin/iked || exit 0

. /lib/lsb/init-functions

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
  start)
	log_begin_msg "Starting Shrew Soft IKE daemon..."
	start-stop-daemon --start --quiet --exec /usr/sbin/iked || log_end_msg 1
	log_end_msg 0
	;;
  stop)
	log_begin_msg "Stopping Shrew Soft IKE daemon..."
	start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/iked || log_end_msg 1
	log_end_msg 0
	;;

  restart)
	log_begin_msg "Restarting Shrew Soft IKE daemon..."
	start-stop-daemon --stop --quiet --oknodo --retry 30 --exec /usr/sbin/iked || log_end_msg 1
	start-stop-daemon --start --quiet --exec /usr/sbin/iked || log_end_msg 1
	log_end_msg 0
	;;

  *)
	log_success_msg "Usage: /etc/init.d/iked {start|stop|restart}"
	exit 1
esac

exit 0

Die Datei ausführbar machen und den Dienst installieren und starten:

sudo chmod +x /etc/init.d/iked && sudo update-rc.d iked defaults && sudo /etc/init.d/iked start

Die Verbindung sollte jetzt funktionieren!

Per RDP auf Ubuntu >=12.10 zugreifen mit xrdp und gnome-session-fallback

Da ich häufig an verschiedenen Maschinen arbeite und diese auf Grund meiner Arbeit fast immer mit Windows laufen, habe ich mich gegen VNC und halb-fertige (und vor allem verbuggte) Lösungen wie Splashtop oder Teamviewer entschieden. WIN+R, „mstsc“, „Enter“ geht eben doch schneller als erst einmal Fremdsoftware zu installieren. Mit „xrdp“ und „gnome-session-fallback“ ist das möglich.

Aber Vorsicht! Auf die 3D-Oberfläche Unity muss verzichtet werden.

Als Ausweichlösung verwende ich gnome-session-fallback, sozusagen die 2D-Alternative für den Ubuntu Desktop. Damit auch das Menü korrekt angezeigt wird, kommen noch ein paar Indikatoren dazu:

sudo apt-get install xrdp gnome-session-fallback indicator-applet-complete indicator-applet-session indicator-applet-appmenu

Beim Verbinden mit einem RDP-Client, liest xrdp die Datei „~/.xsession“. Über diese kann also die zu verwendende Session definiert werden:

echo "gnome-session --session=gnome-fallback" > ~/.xsession

Am besten noch einmal den Dienst neustarten:

sudo /etc/init.d/xrdp restart

Nun sollte die Verbindung zum Ubuntu Desktop so funktionieren, wie sie es auch zu einem Windows Client täte.

minidlna: Einrichtung unter Ubuntu

minidlna stellt einen DLNA-Server zur Verfügung. Jeder Linux-Rechner wird damit zum Medienserver (Bilder, Videos, Hörbücher, etc.) für alle digitalen Geräte, die DLNA unterstützen und an das Heimnetz angeschlossen sind. DLNA/UPnP-Geräte erkennen den Medienserver automatisch. Die Inhalte des Medienservers werden auf den Geräten angezeigt und sind von dort als Stream abrufbar.

…schreibt http://wiki.ubuntuusers.de/MiniDLNA

Getestet habe ich es unter Ubuntu 12.04, 13.04 und 13.10. Ich denke nicht, dass sich sonderlich viel in zukünftigen Versionen ändern wird.

Die Einrichtung läuft wie folgt ab; zuerst die Installation:

sudo apt-get install minidlna

Nun die Konfiguration als root öffnen, dazu sudo und einen Editor verwenden:

sudo gedit /etc/minidlna.conf

Folgende Punkte sind zu ändern:

media_dir=V,/path/to/media
db_dir=/var/lib/minidlna
log_dir=/var/log
log_level=warn
friendly_name=MiniDLNA
inotify=yes

media_dir: Das vorangestellte „V“ steht für Video. Möglich sind außerdem A (Audio), P (Pictures) oder nichts (media_dir=/path).
db_- und log_dir empfehle ich zu setzen, um bei Fehlern einfacher debuggen zu können.
Das log_level „warn“ ist recht ruhig, trotzdem noch hilfreich.
inotify dient zum automatischen scannen von Änderungen. Durch inotify werden neue Dateien quasi sofort erkannt.
friendly_name ist lediglich der Anzeigenarme des Servers im Netzwerk. Kann beliebig verändert werden.
Achtung! Ohne Erweiterung der „max_user_watches“ für inotify, könnte eine große Bibliothek in minidlna schnell Probleme machen, daher wird diese via /etc/sysctl.conf erhöht:

gksudo gedit /etc/sysctl.conf

An das Ende einzufügen:

fs.inotify.max_user_watches=1048576

Die Datei speichern, schließen und die Änderungen wirksam machen:

sudo sysctl -p

Abschließend den minidlna Dienst reloaden:

sudo /etc/init.d/minidlna force-reload

Die aktuelle Datenbank mit indizierten Dateien, kann ganz einfach im Browser aufgerufen werden: