Linux: Datei beginnend mit Bindestrich (Minus am Anfang) löschen

Um unter Linux eine Datei mit einem Minuszeichen am Anfang des Dateinamens zu löschen, benutzen Sie folgenden Befehl:
rm ./-dateiname
Wenn man den normalen RM Befehl ohne die Pfadangabe nutzt ("rm dateiname"), dann kommt es zu einer Fehlermeldung, da das Minuszeichen als optionaler Paramter gewertet wird.

Linux: SMART Befehl (smartctl) funktioniert nicht in CronJobs

Die Smart-Tools unter Linux sind Programme zur Überwachung und Auswertung von S.M.A.R.T Festplatten ("Control and Monitor Utility for SMART Disks").

Das Beispiel zeigt Ihnen alls Daten der als "/dev/sda" eingebundenen SMART-Festplatte an.
smartctl -d ata -A /dev/sda
In CronJobs ("scheduled cron jobs") arbeitet der Befehl "smartctl" häufig nicht ordentlich und liefert keine Werte bzw. keine Ausgabe. Um dieses Problem zu lösen, geben Sie im Bash-Script den kompletten Pfad zum Programm "smartctl" mit an:
/usr/sbin/smartctl -d ata -A /dev/sda

Linux "Failed to start poweroff.target" - Herunterfahren erzwingen

Wenn das System auf den normalen Befehl zum Herunterfahren (Shutdown) bzw. Neustart (Reboot)

shutdown -h now
mit folgender Fehlermeldung reagiert,
Failed to start poweroff.target: Unit poweroff.target failed to load
dann sorgt dieser Befehl für das sofortige Ausschalten des Servers:
systemctl --force --force poweroff

Debian: VirtualBox Guest Addons installieren

Um auf einem Debian 8 System die VirtualBox AddOns zu installieren können folgende Befehle benutzt werden:

apt-get install build-essential module-assistant
m-a prepare

Jetzt die CD mit den Dateien für die VirtualBox AddOns einlegen. Dieses wird bei virtuellen Computern (wie hier bei der VirtualBox) in fast allen Fällen per ISO Datei gemacht. Die passende ISO Datei mit den AddOns finden Sie kostenlos auf der VirtualBox Webseite.

Der folgende Schritt wird häufig vollautomatisch durch Debian übernommen. Nur wenn die CD nicht automatisch nach dem virtuellen Einbinden über die VirtualBox Oberfläche erscheint, bitte den folgenden Befehl ausführen:

mount /media/cdrom

Jetzt die Installation der AddOns von der CD starten:

sh /media/cdrom/VBoxLinuxAdditions.run

Nachdem die Installation beendet wurde, den virtuellen Computer bitte einmal neu starten. Erst danach werden alle AddOns (Mousezeiger, Auflösung, etc.) vollständig übernommen.

Debian: Terminal startet in GNOME nicht

Wenn in GNOME unter Debian 8 nach dem Starten des "Terminals" nur kurz das Wartesymbol zu sehen ist und dann kein Terminal geöffnet wird, können fehlende oder fehlerhafte Locales-Einstellungen die Ursache sein. Meist ist dann nur "de_DE@euro" aktiv.

Lösung:

"Alt+F1" drücken um das Terminal TTY1 auf dem Bildschirm zu öffnen. Dort als "root" anmelden.

dpkg-reconfigure locales

Jetzt zusätzlich zu den ausgewählten Sprachen die "de_DE.UTF-8" markieren.

Mit der Tab-Taste auf "OK" gehen und bestätigen

Jetzt das aktuelle Terminal wieder mit "Alt+F7" verlassen und dadurch zurück zur GNOME Oberfläche gelangen.

Jetzt sollte der Start eines "Terminals" erfolgreich verlaufen.

Fehler "AH00016: Configuration Failed" durch SSL Zertifikate beheben

Wenn der Apache2 Server plötzlich streikt und als Fehlermeldung nur ein "AH00016: Configuration Failed" kommt, hilft diese Anleitung vielleicht zur Lösung.

Die Analyse der Apache-Konfiguration wird ja in solchen Fällen meist als erstes durchgeführt:

apachectl configtest

Das Ergebnis ist bei diesem Fehler allerdings meist ernüchternd (jedoch richtig):

Syntax OK

Der Syntax der Apache2 Konfiguration und Config-Dateien ist auch richtig; es ist meist ein fehlerhaftes SSL Zertifikat. Nur welches, wenn auf dem Apache ein paar mehr Server / Domains mit SSL laufen ?

Die Lösung bietet das Tool strace, welches einfach per "apt-get" installiert werden kann:

apt-get install strace

Mit hilfe dieses Programmes kann der Start des Apache-Servers detailliert analysiert und das fehlerhafte SSL Zertifikat identifiziert werden:

strace -f apache2ctl start

Wer jetzt die meist sehr umfangreiche Ausgabe nicht verfolgen konnte, der kann diese auch durch folgenden Befehl in eine Datei umleiten lassen:

strace -f apache2ctl start &> log.txt

Jetzt finden Sie die vollständige Ausgabe der Apache2-Start-Analyse in der Datei "log.txt".

Am Ende finden Sie auch die o.a. Fehlermeldung des Servers:

[pid  7199] exit_group(1)               = ?
[pid  7199] +++ exited with 1 +++
<... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 7199
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=7199, si_uid=0, si_status=1, si_utime=3, si_stime=7} ---
rt_sigreturn()                          = 7199
write(1, "Action 'start' failed.\n", 23) = 23
write(1, "The Apache error log may have mo"..., 48) = 48
exit_group(1)                           = ?
+++ exited with 1 +++

Suchen Sie dann in den Zeile davor rückwärts die Fehlermeldung, welche z.Bsp. so aussehen kann:

[pid  7218] close(57)                   = 0
[pid  7218] munmap(0x7f70ca8b2000, 4096) = 0
[pid  7218] open("/home/example/ssl.key", O_RDONLY) = 57
[pid  7218] fstat(57, {st_mode=S_IFREG|0700, st_size=3268, ...}) = 0
[pid  7218] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f70ca8b2000
[pid  7218] read(57, "-----BEGIN PRIVATE KEY-----\nMIIJ"..., 4096) = 3268
[pid  7218] close(57)                   = 0
[pid  7218] munmap(0x7f70ca8b2000, 4096) = 0
[pid  7218] write(21, "[Sun May 01 09:34:22.173754 2016"..., 182) = 182
[pid  7218] write(2, "AH00016: Configuration Failed\n", 30) = 30
[pid  7218] select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
[pid  7218] close(53)                   = 0

Im oberen Beispiel ist es die Datei "/home/example/ssl.key", welche das Problem verursacht.

Korrigieren Sie das SSL Zertifikat (die Datei neu auf den Server kopieren o.ä.) und starten Sie den Apache dann erneut:

/etc/init.d/apache2 restart

Meist wird er dann problemlos wieder starten:

[ ok ] Restarting apache2 (via systemctl): apache2.service.

Achtung bei Templates von "Apollo" (apollotheme.com)

ApolloThemes.com ist ein Anbieter von Templates für Webseiten, OnlineShops und augenscheinlich vieles mehr.

Bei der Installation eines PrestaShop Templates (genau: "1611-free-ap-funiture") haben wir auf einem Testserver jedoch folgende (aus unserer Sicht beunruhigende und recht versteckt eingebaute) "Features" entdeckt:

Das Template kommuniziert u.a. mit folgenden Servern, ohne dass diese Kommunikation oder Aktivität der Benutzer (bzw. hier der Shopbetreiber) klar und deutlich darauf hingewiesen wird:

http://apollotheme.com
http://apollotheme.com/upfiledownload/slidershow/jquery.themepunch.enablelog.js
http://apollotheme.com/upfiledownload/slidershow/jquery.themepunch.revolution.js
http://apollotheme.com/upfiledownload/slidershow/jquery.themepunch.tools.min.js

https://www.youtube.com
https://www.youtube.com/embed/iZoR21juRzs

https://s.ytimg.com
https://s.ytimg.com/yts/jsbin/www-embed-player-vflSg2DNi/www-embed-player.js
(und einigen URLs auf dieser Domain für CSS und JS mehr)

https://www.google.com
https://www.google.com/js/bg/MdyApZkAHG2-UELdOwjNjjFZXSz-CGj4o1JtDR7aGgs.js

https://static.doubleclick.net
https://static.doubleclick.net/instream/ad_status.js

Gerade die Links zu "doubleclick.net" und "google.com" (inkl. "youtube.com") sind nach unserer Ansicht bedenklich. Sie könnten dem ahnungslosen Betreiber ders OnlineShops als Tracking- bzw. Analysetools ausgelegt werden und dadurch durch die Konkurrenz oder Verbraucherschutzeinrichtungen abgemahnt werden. Die Kosten könnten beträchtlich sein. Der deutsche Datenschutz ist in diesem Punkt (und das ist gut so !) sehr streng; das zeigt auch die aktuelle Entwicklung in Bezug auf die Anzeige von Datenschutzhinweisen und Datenschutzrichtlinien.

Bitte deachten und bedenken Sie diese Hinweise vor der Nutzung eines solchen Templates. Holen Sie vor dem Einsatz auf Ihrem System fachkundigen Rat und ggf. eine juristische Einschätzung ein. Das wird Sie im Ernstfall weniger Kosten als der Aufwand, Ärger und die Kosten durch Abmahnungen, kurzfristige Templateanpassungen und ggf. Einnahmeausfall durch Offline-Zeiten.

Apache2 gelöschte Configuration neu erstellen

Um unter Linux (z.Bsp. Debian oder Ubuntu) eventuell gelöschte Konfigurationsdateien wieder herstellen zu lassen, nutzen Sie z.Bsp. folgenden Befehl:

apt-get -o DPkg::Options::="--force-confmiss" --reinstall install apache2

Alternativ können Sie Apache2 auch komplett löschen:

apt-get purge apache2

... und neu installieren:

apt-get install apache2

Linux: Prozess inkl. Unterprozessen (Children/Childs/Grandchilds) beenden ("killen")

Um unter Linux (z.Bsp. Debian Jessy) eine komplette Prozessstruktur (Prozessbaum) mit einem Befehl sofort zu beenden, hilft folgendes Syntax:

kill `pstree -l -p PID |grep "(*)" -o |tr -d '()'`

Beispiel:

Sie haben ein Backup mit der PID (Prozess ID) 12345 gefunden, welchen Sie sofort beenden möchten. Wie viele solcher Prozesse haben Backups häufig Unterprozesse (Childs) laufen, welche durch die «normalen Kill-Befehle» nicht immer automatisch mit beendet werden. Der Befehl für den Beispiel PID 12345 würde also lauten:

kill `pstree -l -p 12345 |grep "(*)" -o |tr -d '()'`

Virtualmin: Datenbank Prefix für SubServer anpassen (Domainname als Prefix)

Wenn Sie in VirtualMin einen SubServer (Unter-Server) zu einem bestehenden Server einrichten, dann wird dabei (sofern ausgewählt) auch eine mySQL Datenbank automatisch angelegt.

Dabei wird in den Standardeinstellungen nur der Prefix des neuen SubServers als Datenbankname ausgewählt:

Beispiel:
Ihre bestehende Domain (= aktueller virtueller Server):

mydomain.com

Prefix des erstellten SubServers ist "test" ... dann heißt Ihre neue mySQL Datenbank:

test

Das kann nicht nur zu ärgerlichen und nervigen Problemen führen (wenn z.Bsp. ein anderer Benutzer die gleiche Idee für seine Domain hat), sondern wird mit der Zeit auch sehr unübersichtlich. Besser ist es daher, die Domain des virtuellen Servers als Prefix für den Datenbanknamen zu verwenden.

  1. Gehen Sie dafür in die "Server Templates" in Virtualmin
  2. Wählen Sie die "Settings for Sub-Servers" aus
  3. Dort wählen Sie aus der DropDownbox den Eintrag "mySQL Database"
  4. Aktivieren Sie bei "Default database name" den Eintrag "Template"
  5. Geben Sie in das angezeigte Feld folgenden Text ein:
    ${USER}_${PREFIX}
  6. Klicken Sie auf "Save"

Wenn Sie jetzt einen neuen SubServer erstellen (sh. Beispiel oben), dann wird Ihnen folgende mySQL Datenbank angelegt:

mydomain_test