Ubuntu Pakete entfernen welche für die Entfernung markiert sind

Das Tool dpkg gibt den Status „rc“ aus. Was bedeutet der Status und welche Maßnahmen sind zu ergreifen?

– r: das Paket zum Entfernen markiert
– c: die Konfigurationsdateien sind derzeit im System vorhanden

Die Idee ist, markierte Pakete auszuwählen und dann Apt „purge“-Befehl für die ausgewählten Pakete auszuführen:

dpkg --list | grep "^rc" | cut -d " " -f 3 | xargs sudo apt-get -y purge

HP Tools unter VMware ESXi

Um ein HP Smart Array unter VMware ESXi zu verwalten, braucht man die HP Tools.

Nach dem Download von VMware überträgt man die VIB Datei auf den ESXi Host. Die Installation erfolgt mit dem ESXCLI Tool.

esxcli software vib install -v /tmp/scsi-hpsa-5.0.0.x86_64.vib

Die erfolgteiche Installation kann man auch prüfen.

esxcli software vib list |grep Hewlett

Jetzt kann man die HPacuCli mit dem ganzen Verzeichnis starten.

/opt/hp/hpacucli/bin/hpacucli

Die Anzeige der Einstellungen erhält man hier mit.

hpacucli> ctrl all show config

Den Status einer Festplatte kann man hiermit anzeigen.

hpacucli> ctrl slot=0 pd 1I:1:3 show status

Jede Festplatte hat eine Status LED welche man nutzen kann, um eine defekte Festplatte zu finden.

hpacucli> ctrl slot=0 pd 1I:1:3 modify led=on

http://www.datadisk.co.uk/html_docs/redhat/hpacucli.htm

VMware ESXi Disk verkleinern

Wird wollen eine Disk von einer Virtual Maschine (VM) von einem VMware ESXi Server verkleinern.

Zuerst müssen wir die Sektoren mit Nullen füllen.

Unter Windows gibt es das Tool SDelete.

sdelete.exe -z c:

Unter Linux können wir mit DD oder CAT arbeiten.

dd bs=1M count=8192 if=/dev/zero of=zero.fill;sync;rm -f zero.fill

cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

Jetzt fahren wir die VM runter und verbinden uns mit dem VMware Host per SSH.

Jetzt können wir den Speicherplatz eine Thin Provisioning Disk wieder verkleinern.

vmkfstools -K /vmfs/volumes/Datastore2/vm1/vm1.vmdk

Sollten wir kein Thin Provisioning verwenden oder die Disk weiter verkeinern wollen, so ist eine Änderung in den Einstellungen notwendig.

Wir öffnen die Einstellungen von der Disk.

vi /vmfs/volumes/Datastore/vm1/vm1.vmdk

Wir suchen den Eintrag mit der Zahl 83886080.

RW 83886080 VMFS "vm1-flat.vmdk"

Die Zahl 83886080 ist die Größe von 40 GB und errechnet sich wie folgt.

40 GB => 40 * 1024 * 1024 * 1024 / 512 = 83886080

Wollen wird die Disk auf 20 GB verringern, so ergibt sich folgede Rechnung.

20 GB => 20 * 1024 * 1024 * 1024 / 512 = 41943040

Zuvor müssen wir sicher gestellt haben, das alle Daten mit einem Partitionstool in die erste Hälte verschoben wurden. Sonst besteht die Möglichkeit, mit der Änderung die Daten im zweiten Teil der Disk zu verlieren.

Jetzt kann die Konvertierung beginnen.

vmkfstools -i "/vmfs/volumes/Datastore2/vm1/vm1.vmdk" "/vmfs/volumes/Datastore2/vm1/vm1-new.vmdk" -d thin -a lsilogic

SSD Lebenszeit verlängern

Um die Lebenzeit einer SSD zu verlängern, sollte man die Schreibzugriff auf die SSD reduzieren. Hierzu sind zwei Einstellung vor zu nehmen.

1. Die Speicherung von Zugriffzeiten sollte man mit noatime deaktivieren.
2. Das Verzeichnis /tmp/ kann man in den RAM speicher legen.

sudo vim /etc/fstab

/dev/sda1  / ext4   defaults,noatime   0  1
tmpfs  /tmp tmpfs   nosuid,noatime,noexec,mode=1777,size=1024M   0  0

Webserver mit Python

Will man auf einem Linux System nur einige Dateien per HTTP übertragen, brauche man nicht gleich Apache installieren.

Man braucht man nur Python, was bei den meisten Distributionen schon installiert ist.

Mit diesem Script können Sie auf Port 8080 alle Dateien als Webserver bereit stellen.

#!/usr/bin/python
import socket
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
 
class MyHandler(SimpleHTTPRequestHandler):
  def do_GET(self):
    if self.path == '/ip':
      self.send_response(200)
      self.send_header('Content-type', 'text/html')
      self.end_headers()
      self.wfile.write('Your IP address is %s \n' % self.client_address[0])
      return
    else:
      return SimpleHTTPRequestHandler.do_GET(self)
 
class HTTPServer(HTTPServer):
  address_family = socket.AF_INET
 
def main():
  server = HTTPServer(('', 8080), MyHandler)
  server.serve_forever()
 
if __name__ == '__main__':
  main()

Ubuntu LTS 14.04 auf 16.04.1 Update nicht möglich

Vielleicht haben Sie auch das Problem, dass ein Update von Ubuntu 14.04. auf 16.04.1 nicht möglich ist.

Zuerst brauchen wir die Update Tools.

sudo apt-get install update-manager-core

Jetzt sollte das Update von LTS 14.04 auf 16.04.1 möglich sein.

sudo do-release-upgrade

Checking for a new Ubuntu release
No new release found

Es wird keine neue Version gefunden, obwohl Ubuntu 16.04.1 veröffentlicht ist. Das Problem liegt in der Freigabe, welche noch nicht erteilt wurde. Dazu muss die Version in der Text Datei veröffentlicht werden.

Die Einstellung welche Version verwendet wird, sind in der Datei /etc/update-manager/release-upgrades gespeichert.

Die Quelle ist in der Datei /etc/update-manager/meta-release definiert. Die LTS Quelle lautet…

http://changelogs.ubuntu.com/meta-release-lts

Die Veröffentlichung wird erst eine Woche nach dem Relese Datum durchgeführt! Will man nicht warten, kann man auf Ubuntu 14.06 ein Update durchführen.

sudo do-release-upgrade --devel-release

Hier wird auf diese Freigabe zugegriffen.

http://changelogs.ubuntu.com/meta-release-lts-development

Will man von Ubuntu 14.04 auf Ubuntu 14.10 updaten, so muss man die Einstellungen von LTS auf Normal ändern.

sudo sed -i s/Prompt=lts/Prompt=normal/g /etc/update-manager/release-upgrades

Quellen: askubuntu.com #1 #2

Ubuntu Pakete sichern

Will man den Server – Anbieter wechselt, so muss man alle Ubuntu Pakete auf ein neues System installieren.

Zu erst Exportieren wird die Liste alle installieren Paket in eine Text-Datei.

sudo dpkg --get-selections > my-packages.list

Auf dem neuen Server kann man die Ubuntu Paket mit der Liste ganz einfach installieren.

sudo dpkg --set-selections < my-packages.list

Jetzt noch die Updates installieren und Abhängigkeiten prüfen.

sudo apt-get -y update
sudo apt-get dselect-upgrade

Weitere Arbeitsschritte:

- Einstellung aus dem Verzeichnis /etc/* kopiert (ggf. anpassen)
- Benutzerdateien aus Verzeichnis /home/* kopieren
- Anwendungsdaten kopieren...
Apache in /var/www/
MySQL in /var/lib/mysql/
Check_MK Agent in /var/lib/check_mk_agent/

Ubuntu Snap mit Proxy

Wenn man Ubuntu Snap hinter einem Proxy betreiben will, muss man die Einstellung für Snap hinterlegen.

sudo apt install snapd

Mit dem Befehl systemctl kann man die Einstellungen von dem Dienst ändern.

sudo systemctl edit snapd.service

Jetzt kann man die Einstellung für den Proxy hinterlegen.

[Service]
Environment="HTTP_PROXY=http://BENUTZER:PASSWORD@proxy.hostname.de:8080/"
Environment="NO_PROXY=localhost,127.0.0.0/8"

Die Einstellungen werden in dem Verzeichnis /etc/systemd/system/snapd.service.d/override.conf gespeichert.

Nach dem Neustart von dem Dienst kann man den Proxy verwenden.

sudo systemctl daemon-reload
sudo systemctl restart snapd.service

Jetzt kann es los gehen. Als Beispiel installieren wir VLC.

sudo snap find vlc
sudo snap install vlc

Die Anwendung VLC liegt jetzt für die Start bereit.

/snap/bin/vlc

Die De-Installation ist auch nicht schwer.

sudo snap remove vlc

NFS und Windows Share unter Ubuntu mounten

Um unter Ubuntu auf eine Windows Freigabe zugreifen zu können, ist die Installation von Samba notwendig.

sudo apt-get install samba-client samba-common cifs-utils

Zum prüfen der Freigaben, kann man diesen Befehl verwenden.

smbclient -L SERVER

Um die Freigabe zu Mounten kann man den Mount Befehl verwenden.

sudo mount -t cifs -o USERNAME //SERVER/SHARE /mnt

Will man die Einstellung im System speichern, sind zwei Einträge notwendig.

sudo vim /etc/fstab

//SERVER/SHARE /mnt cifs credentials=/root/.smbcredentials,iocharset=utf8,_netdev 0 0

Sollte die Freigabe mit einem Passwort geschützt sein, kann man die Zugangsdaten für ein Auto-Mount speichern.

sudo vim /root/.smbcredentials

username=USERNAME
password=PASSWORD

Nun kann man das Mount so durchführen.

sudo mount /mnt

Für ein NFS Share ist diese Installation notwendig.

sudo apt-get install nfs-common

Zeigt die NFS Shares an.

showmount -e SERVER

Um die NFS Freigabe zu Mounten kann man den Mount Befehl verwenden.

sudo mount -t nfs SERVER:/SHARE /mnt

Will man die Einstellung im System speichern, sind diese Einträge notwendig.

sudo vim /etc/fstab

SERVER:/SHARE /mnt nfs defaults,_netdev 0 0

Check_MK Agent – JSON Daten auslesen

Mit diesem lokalen Check kann man zwei Messwerte (Temperatur und Luftfeuchtigkeit) von einer Messstation per JSON auslesen und an den Check_MK Agent übergeben. Die Daten werden von Check_MK ausgelesen und als Statistik angezeigt.

Für die Verarbeitung von JSON brauchen wir ein kleines Tool mit dem Namen JSON Query, kurz JQ.

sudo apt-get install jq

Die Messwerte haben folgendes JSON Format.

{"sensor":{"temperature":24,"humidity":33},"timestamp":1464340616}

Jetzt erstellen wir ein Shell Script im Verzeichnis /usr/lib/check_mk_agent/local/.

#!/bin/sh
NAME="Sensor"
URL="http://hostname/sensor.json"
 
RESULT=$(curl -s $URL)
TEMP=$(echo $RESULT | jq '.sensor.temperature')
HUMI=$(echo $RESULT | jq '.sensor.humidity')
TIME=$(echo $RESULT | jq '.timestamp')
DATE=$(date -d @$TIME)
 
#TEMP-WARNING=30
#TEMP-CRITICAL=40
#HUMI-WARNING=(Min=20/Max=40)
#HUMI-CRITICAL=(Min=10/Max=60)
 
echo "P ${NAME} Temperature=${TEMP};30;40|Humidity=${HUMI};20:40;10:60;0;100; ${DATE}"

Will man die Daten für 120 Sekunden vom Check_MK Agent zwischen speichern, so erstellt man das Script im Verzeichnis /usr/lib/check_mk_agent/local/120/. Die Daten werden dann im Verzeichnis /etc/check_mk/cache/ für 120 Sekunden gespeichert und erst nach Ablauf der Zeit von einem Hintergrundprozess aktualisiert.

Nach der Inventarisierung in Check_MK, wird ein neue Service „Sensor“ mit zwei Statistiken erzeugt.