Schlagwort: linux

MariaDB Monitoring-Issue nach Upgrade auf Debian 10

In Folge eines Updates von Debian 9 (Stretch) auf 10 (Buster) kam es zu fehlerhaften Check_MK-Checks:

/omd/sites/monitoring/lib/nagios/plugins/check_mysql -H 192.168.23.42 -u user -p password
/omd/sites/monitoring/lib/nagios/plugins/check_mysql: error while loading shared libraries: libmariadbclient.so.18: cannot open shared object file: No such file or directory

Lösung:

aptitude install libmariadbclient-dev
ln -s /usr/lib/x86_64-linux-gnu/libmariadb.so.3 /usr/lib/x86_64-linux-gnu/libmariadbclient.so.18

Quelle

MSSQL ODBC Client auf Debian 9 Stretch

Im Folgenden wird die Installation und grundlegende Einrichtung eines MS SQL Clients unter Debian 9 für die Verwendung mit PHP beschrieben.

Datei /etc/apt/sources.list.d/mssql-release.list mit folgendem Inhalt erzeugen:

deb [arch=amd64] https://packages.microsoft.com/debian/9/prod stretch main

Mittels aptitude / apt-get die Pakete msodbcsql17, mssql-tools und php7.0-odbc installieren und anschließend die Datei /etc/odbcinst.ini mit folgendem Inhalt erzeugen:

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.2.1
UsageCount=1

Die Datei /etc/odbc.ini mit folgendem Inhalt erzeugen:

[ODBC_CONNECTION_NAME]
Driver = ODBC Driver 17 for SQL Server
Trace = No
Server = 192.168.23.42
Port = 1433
Database = database_name
Charset = ISO-8859-1

Quelle

Lange Dateinamen unter Linux finden

find . -type f | grep -E "^(.+)/[^/]{127,}$"

Diese Befehlszeile findet Dateinamen mit 127 oder mehr Zeichen.

Wofür braucht man so etwas? Synology unterstützt bei verschlüsselten Volumes nur Dateinamen bis zu einer Länge von 127 Zeichen. Um „problematische“ Files zu identifizieren, welche bspw. ein Backup oder einen Sync auf ein verschlüsseltes Volumen verhindern, sollte man vorher die Länge aller Dateinamen checken.

Debian-Package mittels Puppet und wget installieren

Die Installation von dpkg-Packages mittels Puppet kann mit einer einfachen Klasse realisiert werden. Dabei wird das Installationspaket mit wget herunterladen, auf dem Zielsystem installiert und anschließend wieder entfernt.

class examplesoftware ($url) {

 $package_path = "/tmp/${title}"

 exec {'download':
  command  => "/usr/bin/wget -O ${package_path} ${url}"
 }

 package {'install':
  ensure   => installed,
  name     => "${title}",
  provider => 'dpkg',
  source   => "${package_path}"
 }

 file {'cleanup':
  ensure   => absent,
  path     => "${package_path}"
 }

 Exec['download'] -> Package['install'] -> File['cleanup']

}