Performance Probleme auf einem Linux System ermitteln

Aktuell habe ich auf einem meiner virtuellen Server Probleme mit der Performance, ein Blick in top offenbart das auf einer CPU 100% Waiting ist, Hintergrund war das der Provider einen ZFS scrub auf dem Host laufen ließ was die Disk Performance in den Keller gezogen hat. Ich nehme das zum Anlass ein paar Tools zu … Weiterlesen

Defekten GRUB Bootloader reparieren

Defekten Rechner mit Knoppix oder der systemrescuecd starten, mit fdisk -l oder parted -l kann man sich alle Partitionen anzeigen lassen. Je nach Installation ist die Bootpartition einzeln z.B. bei einem LVM Setup oder in einer Partition. Um per Chroot in die Installation des Rechners zu wechseln müssen die Partitionen gemountet werden, im Beispiel befindet … Weiterlesen

Festplatte aus einem kaputten Seagate NAS System mounten – EXT4 mit 64k Blocksize mounten

Neulich hat mir ein Kunde eine kaputte Seagate NAS gebracht, eine der Disks hatte ein Problem, die NAS hat nicht mehr zuverlässig gebootet. Ich habe die Disks in meinen Linux PC eingebaut, mit mdadm –scan –assemble hat er die Software RAIDs gefunden. Auf ein Problem bin ich dann doch gestoßen, ein Linux mit Standardkernel kann … Weiterlesen

Python: Arbeiten mit YAML Files

YAML ist eine vereinfachte Auszeichnungssprache zur Datenserialisierung. Das Format ist einfach gehalten und ist eine schöne alternative zu XML, JSON usw. Ist auch ein super Format für Configfiles als alternative zu INI Files. Einfaches YAML File: variable_str: value variable_num: 33 list: – a – b – c – d dictionary: – list1: – a – … Weiterlesen

Python: Entfernen von Steuerzeichen in ASCII Strings

Bin heute wieder mal über ein Problem mit ASCII Strings gestolpert. Im String war ein CTRL+C welches als \x03 in der ASCII Tabelle ist. Ich bin auf eine Seite gestoßen welche für alle möglichen Script und Programmiersprachen Codesnippets bereitstellt um Steuerzeichen zu entfernen. ASCII Tabelle bei Wikipedia: https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange Hier für Python: stripped = lambda s: „“.join(i … Weiterlesen

Cisco/Python: Backup der Konfiguration bei write Event auf externen Server

Diverse Cisco Geräte können bei einem write Event die Konfiguration an einen anderen Server z.B. über HTTP pushen. Cisco Config: archive path http://1.2.3.4/cisco_config/put/$h-$t write-memory Apache /etc/httpd/conf.d/zzz_cisco_backup.conf: WSGIDaemonProcess cisco_backup user=apache group=apache threads=10 WSGIPythonPath /opt/cisco_backup/web_root WSGIScriptAlias /cisco_backup /opt/cisco_backup/web_root/cisco_backup.wsgi <Directory /opt/cisco_backup/web_root> WSGIProcessGroup cisco_backup WSGIApplicationGroup %{GLOBAL} WSGIScriptReloading On Order deny,allow Allow from all <Files cisco_backup.py> Require all granted </Files> … Weiterlesen

Python: Snippet – E-Mail versenden, alternative zu Mailer

#!/usr/bin/env python # -*- coding: utf-8 -*- import smtplib from email.mime.text import MIMEText def postmaster(mfrom, mto, msubject, message, smtphost): msg = MIMEText(message.encode(„utf-8“)) msg[‚Subject‘] = msubject msg[‚From‘] = mfrom msg[‚To‘] = mto s = smtplib.SMTP(smtphost) s.sendmail(msg[‚From‘], msg[‚To‘], msg.as_string()) s.quit()  

Python: Snippet: SSH shell on Cisco devices

Mit dem Snippet können Kommandos auf einer Cisco Shell via SSH ausgeführt werden. #!/usr/bin/env python import paramiko import sys def send_string_and_wait_for_string(command, wait_string, should_print): shell.send(command) receive_buffer = „“ while not wait_string in receive_buffer: receive_buffer += shell.recv(1024) if should_print: print receive_buffer return receive_buffer client = paramiko.SSHClient() client.load_system_host_keys() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(„10.62.62.10″, username=“testuser“, password=“testpasswd“, look_for_keys=False, allow_agent=False) shell = client.invoke_shell() send_string_and_wait_for_string(„“, … Weiterlesen

NGINX Reverse Proxy für Exchange 2016

Folgende Pakete müssen auf einem Ubuntu 16.04 LTS installiert werden: apt install nginx nginx-extras Die Konfiguration wird abgelegt unter /etc/nginx/conf.d/exchange.conf Folgende Dinge müssen angepasst werden: DNS Name unter dem OWA etc. erreichbar sein soll z.B. mail.example.org Autodiscover DNS Name z.B. autodiscover.example.org Interner Exchange Server z.B. exchange-server.example.internal server { listen 80; server_name mail.example.org autodiscover.example.org; return 301 … Weiterlesen

Check_MK: Problem mit Apache HTTP Proxy – SELinux blockt Reverse Proxy Verbindung zur Check_MK Instanz

Habe gerade auf ein frisch installiertes CentOS 7.4 Check_MK 1.4.0p19 installiert. Nach dem Start einer OMD Instanz kommt nur die Fehlermeldung: OMD: Site Not Started You need to start this site in order to access the web interface. Im Apache Log ist folgendes zu sehen: [Mon Dec 04 08:50:48.097245 2017] [proxy_http:error] [pid 20887] [client x.x.x.x:31372] … Weiterlesen