Copying sources and texts (also in parts) for publishing without our permission is NOT ALLOWED. We are fed up with finding our work on other sites (like stackoverflow).
Das Kopieren von Quellcode und Texten (auch in Auszügen) ist nicht erlaubt. Wir haben es gründlich satt, unsere Arbeit auf anderen Webseiten zu finden.

Copying for non-public usage is allowed.           Das private Kopieren und Benutzen ist natürlich erlaubt und erwünscht.
14. Nov
Teaser

/bin/tar: Argument list too long

Wenn man Verzeichnis(se) mit einigen tausend Dateien packen möchte, kann man schnell folgende Fehlermeldung beim Packen erhalten:

bash: /bin/tar: Argument list too long

Bedeutet, dass das Pack-Programm “tar” sich versucht hat eine Liste mit allen zu packenden Dateinamen zu erstellen. Dabei ist die Maximallänge der Liste überschritten worden.

Lösung

Erstellen Sie zuerst eine Datei mit allen zu packenden Dateinamen. Dafür können Sie z.Bsp. folgenden Befehl benutzen:

find /zu/packen -name '*.txt' -print > files.list

Ersetzen Sie “/zu/packen” durch den Verzeichnisnamen, welchen Sie archivieren möchten. In diesem Fall werden nur die Textdateien (*.txt) gelesen. Wenn Sie alle Dateien lesen möchten, dann ersetzen Sie das ‘*.txt’ bitte durch ‘*’.

Anschließend übergeben Sie diese Datei als Packanweisung:

tar -cvzf backup.tar.gz --files-from files.list

Nachdem das taz.gz-Archiv (hier: backup.tar.gz) fertig erstellt wurde, können Sie die Dateiliste wieder löschen:

rm files.list
09. Sep
Teaser

VirtualMin: Fehler “this system is not setup to use itself as a DNS server”

Wenn Sie bei einer Prüfung der Konfiguration (“Checking Configuration”) unter VirtualMin folgende Fehlermeldung erhalten:

Virtualmin is configured to setup DNS zones, but this system is not setup to use itself
as a DNS server. Either add 127.0.0.1 to the Features and Plugins or turn off the BIND
feature on the page.
.. your system is not ready for use by Virtualmin.

… dann kann Ihnen diese kurze Lösung vielleicht weiterhelfen:

Bearbeiten Sie die Daten “/etc/resolv.conf”:

nano /etc/resolv.conf

Fügen Sie folgende Zeile ein und speichern Sie die Datei:

nameserver 127.0.0.1

Start Sie die Prüfung in VirtualMin erneut und Sie werden folgende Prüfung angezeigt bekommen:

BIND DNS server is installed, and the system is configured to use it.
08. Aug
Teaser

Umgang mit Kundeneigentum bei “banggood”

Die chinesische Plattform “banggood” bietet Artikel zu (meist) Billigpreisen an, aber auch hier lohnt sich ein Vergleich: Teilweise sind lokale oder europäische Anbieter auf anderen Plattformen (EBay, Amazon, usw.) gleich teuer oder sogar günstiger. Dann lohnt sich auf alle Fälle die Bestellung dort, um Zollprobleme und -gebühren zu sparen.

Der wichtigste Punkt ist jedoch der aus meiner Sicht und Erfahrung mangelhafte “Support” (wenn man’s denn so nennen darf) sowie der sehr schlechte Umgang mit dem Eigentum der Kunden bei banggood.

Ein Fall aus der Praxis: Ich habe am 31. Mai Bauteile und Ersatzteile für eine Drone bestellt:

  • Flight-Controller (Chip zur Steuerung der Drone)
  • FPV Kamera (Kamera aus Pilotensicht, 2 Stk. bestellt)
  • Rahmen aus Kohlefaser/Carbon (2 Stk. bestellt)
  • Motoren (8 Stk. bestellt)
  • und ein wenig Kleinkram (Stecker etc)

Nach mehr als 2 Wochen (erster Nachteil bei banggood) kam endlich das Paket an. Es war eine dünne, dunkelgraue Plastiktüte und fand ich meine bezahlte Ware in folgendem Zustand:

Da kommt Freude auf – warum sollte man auch empfindliche Bauteile für einen Transport um die halbe Welt geschützt verpacken ?!

  • Flight-Controller = € 38,58
  • FPV Kameras = 2x € 21,00 = € 42,00
  • Rahmen = weggeworfen
  • Motoren (8 Stk. bezahlt, 7 geliefert) = 8x € 11,66 = € 93,28

In Summe also € 173,86 Gesamtschaden.

Also habe ich den Schaden bei banggood gemeldet:

  • Per Formular online auf der Webseite inkl. diverser Photos
  • Per Chat (online im Bestellbereich, inkl. Photos)
  • Per E-Mail (da man nach Photos fragte …)

Antwort:

Die Ware sei nicht defekt. Sie möchten ein Video.

Klar. Kein Problem. Wenn mir jemand erklärt, wie man ein Video von einem defekten Flight-Controller macht. Soll ich den defekten Kram zusammenlöten, hoch werfen und dann abstützen lassen ?

Banggood macht auf der Webseite große Versprechen:

Original: “Within 7 days of receiving the product, contact us with a photo or video showing the issue and whether you want a refund or replacement”
Quelle: https://www.banggood.com/Banggood-guarantees_hl103_at435
Übersetzt: “Innerhalb von 7 Tagen nach Erhalt der Ware, senden Sie uns ein Photo oder Video welches das Problem zeigt und ob Sie Erstattung oder Ersatz wünschen”
Erfolg: Naja. Hat ja schonmal nicht geklappt.

Original: “If you are not satisfied with your purchase and the product is still in brand new conditions, …”
Quelle: https://www.banggood.com/Banggood-guarantees_hl103_at437
Übersetzt: “Wenn Sie unzufrieden mit Ihrem Kauf sind und das Produkt noch in ‘brand neuem’ Zustand ist, …”
Erfolg: Nein, da die Produkte ja schon beschädigt hier ankamen.

Jetzt ist Anfang August und banggood diskutiert noch immer. Für einen Schaden iHv mehr als € 170,- wollen Sie € 30,- gutschreiben:

“We deeply apologize for what happened to your order 670…. In this case how about we refund you 30 EUR?”

Fazit:

Wer Support auf akzeptablem Niveau sucht und keine Lust auf Diskussionen hat, der sollte lokal oder bei den westlichen Plattformen bestellen. Die chinesischen Plattformen haben hier noch eine Menge zu lernen und zu verbessern. Sollte der Support keine Lösung finden, ist auch die rechtliche Lage bei europäischen Handlern einfacher. Vielleicht kostet die Ware ein paar Euro mehr – dafür entfällt das Risiko der Zollgebühren, die Ware ist meist schneller da und man hat eine einfache Kommunikation.

Update:
Banggood hat versucht nachzurechnen und ist nun auf eine Summe iHv € 152,40 gekommen. Schon besser, aber immernoch daneben. Rechnen ist halt eine Kunst …

03. Jan
Teaser

Aspire: Fehler “Invalid Symbol Table Name” bei DXF Export beheben

Wenn beim Export in Aspire Vectric (oder anderer Software) beim Export in eine DXF Datei folgender Fehler auftritt:

Invalid Symbol Table Name

… dann prüfen Sie bitte, ob die Namen der Layer in Aspire ggf. “ungültige Zeichen” (Slashes, Doppelpunkte, etc.) enthalten.

Keine Probleme gab bis jetzt mit den Zeichen A-Z (in Groß- und Kleinschreibung), Zahlen und Leerzeichen.

Wenn Sie die Layer umbenannt haben (Layer mit der Maus berühren, rechte Maustaste, “Layer umbenennen” anklicken), dann versuchen Sie den DXF Export erneut.

13. Dez 2018
Teaser

Linux: Installierte Pakete auf anderes System übernehmen

Wenn Sie unter Linux installierte Pakete von einem System auf ein anderes System übernehmen möchten, dann kann Ihnen dieser Artikel helfen.

Auf dem System, dessen Pakete Sie übernehmen möchten (der “Quelle”), führen Sie als Benutzer “root” (oder per “sudo”) bitte folgenden Befehl aus:

dpkg --get-selections > pakete.txt

Die durch den Befehl erstellte Datei “pakete.txt” kopieren Sie bitte auf das neue System (das “Ziel”).

Importieren Sie dort bitte die Pakete durch Ausführen der folgenden Befehle:

apt-get update
dpkg --clear-selections
dpkg --set-selections < pakete.txt
apt-get dselect-upgrade

Jetzt sollte Sie auf dem Ziel den gleichen Paketzustand wie auf der Quelle haben.

Bitte beachten Sie, dass evtl. Einstellungen durch diese Methode NICHT übernommen werden.

18. Nov 2018
Teaser

Sicherheit: NetData Port ändern

Da (zumindest derzeit) kein im Standard vorhandener Zugangsschutz (Passwort o.ä.) in Netdata vorhanden ist, wäre eine recht einfache Lösung die Verlagerung des WebGUI Ports. Das ist natürlich keine wirkliche Sicherheit und kein Schutz, kann aber Scanner (Port-Scanner) ggf. ablenken oder zumindest die breits Masse abhalten.

Öffnen Sie die Netdata Konfiguration:

nano /etc/netdata/netdata.conf

Im Bereich “[web]” finden Sie die Einstellung “default port”. Diese ist nach der Installation auf “19999” gesetzt:

[web]
        # ses max window = 15
        # des max window = 15
        # mode = static-threaded
        # listen backlog = 4096
        # default port = 19999

Entfernen Sie das “#” Zeichen am Anfang der Zeile und ändern Sie den Wert “19999” auf Ihren gewünschten Port ab. In diesem Beispiel wird “18888” genommen:

[web]
        # ses max window = 15
        # des max window = 15
        # mode = static-threaded
        # listen backlog = 4096
        default port = 18888

Beenden und speichern Sie die Änderungen (Strg + X).

Starten Sie den NetData Service neu:

systemctl restart netdata

Öffnen Sie Ihre NetData UI im Browser mit dem neuen Port, wobei Sie bitte “domain.de” durch Ihren Servernamen oder die Server-IP ersetzen:

http://domain.de:18888

Fertig.

Erhalten Sie die Fehlermeldung, dass diese Seite nicht verfügbar ist, dann prüfen Sie bitte auch Ihre Firewalleinstellungen. Auf dem Server können Sie die aktuellen Regeln der Firewall (z.Bsp. ipTables) auflisten:

iptables -L -n

Sollte der neue Port (hier 18888) nicht freigegeben sein, können Sie dies’ mit folgendem Befehl nachholen:

iptables -A INPUT -p tcp --dport 18888 -j ACCEPT

Die Änderung/Freigabe ist sofort nach EIngabe des Befehles durchgeführt.

17. Nov 2018
Teaser

mySQL (mariaDB) in Netdata einbinden

Wie Sie einen Netdata Service auf Ihrem Server installieren, haben wir Ihnen in unserem Beitrag “Netdata auf einem Debian Server installieren” gezeigt. In diesem Beitrag zeigen wir einen möglichen Weg, Analysedaten und Auslastungen Ihres mySQL (oder mariaDB) Servers auf der Netdata Seite anzuzeigen.

Das benötigte Python DB Modul wurde bereits installiert. Sollten Sie eine andere Installation benutzt haben, können Sie das Paket durch folgenden Befehl installieren; sollte es bereits vorhanden sein, dann erhalten Sie nur eine entsprechende Meldung:

apt-get install python-mysqldb

Erzwingen Sie den Start des mySQL Modules:

nano /etc/netdata/charts.d.conf

Fügen Sie folgende Zeile ein:

mysql=force

Speichern und beenden Sie die Datei mit “Strg + X”.

Erstellen (oder bearbeiten) Sie nun die Konfigurationsdatei für das NetData mySQL Modul:

nano /etc/netdata/mysql.conf
mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uUSERNAME -pPASSWORD"

Passen Sie dabei die Werte bitte an Ihren Datenbankserver an:

USERNAME = Benutzernamen, für die NetData-Verbindung
PASSWORD = Passwort für den Benutzer “USERNAME”

Sollte Ihr mySQL Server nicht lokal (= localhost = 127.0.0.1) laufen, dann passen Sie bitte auch die IP Adresse entsprechend an. Die Verbindung wird im Beispiel “local” benannt. Sie können den Namen ändern, indem Sie beide Zeile anpassen.

Beispiel für den Benutzer “root” mit dem Passwort “hallo123”:

mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uroot -phallo123"

Wenn Sie mehrere Server oder unterschiedliche Benutzer gleichzeitg überwachen lassen möchten, dann erstellen Sie in dieser Datei die passenden Einträge.

Beispiel: Nebn dem Benutzer “root” (Verbindung mit dem Namen “local”) möchten Sie auch den Benutzer “demo” mit dem Passwort “passdemo” überwachen. Dieser Eintrag soll “demo1” heißen:

mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uroot -phallo123"

mysql_cmds[demo1]="/usr/bin/mysql"
mysql_opts[demo1]="-h 127.0.0.1 -udemo -ppassdemo"

Starten Sie den Netdata-Service auf Ihrem Server neu. Dadurch werden die Einstellungen neu geladen:

systemctl restart netdata

Fertig.

Wenn Sie die Einstellungen in Netdata protokollieren (debuggen) möchten, dann hilft folgender Befehl in diesem Fall recht gut. Dieser Befehl zeigt Ihnen auch Fehler (Verbindungsprobleme, fehlende Dateien, usw.) für NetData an:

/usr/libexec/netdata/plugins.d/charts.d.plugin debug 10 mysql
16. Nov 2018
Teaser

Netdata auf einem Debian Server installieren

Sicherheitshinweis:
Bitte beachten Sie, dass (derzeit) der Netdata Port (19999) nicht per Passwort o.ä. geschützt ist. Jeder (!) kann daher auf Ihrem Server die Netdata Seite aufrufen und (wie Sie) nutzen !

Voraussetzungen installieren:

apt-get install git zlib1g-dev uuid-dev libmnl-dev pkg-config curl gcc autogen autoconf autoconf-archive make automake netcat python python-yaml nodejs lm-sensors python-psycopg2 python-mysqldb

Aktuelle Netdata Sourcen von Github kopieren:

git clone https://github.com/firehol/netdata.git --depth=1 ~/netdata

In das Verzeichnis wechseln:

cd ~/netdata

Die Netdata Installation starten:

./netdata-installer.sh

Ihnen wird eine Übersicht mit den Installationspfaden angezeigt:

  ^
  |.-.   .-.   .-.   .-.   .  netdata
  |   '-'   '-'   '-'   '-'   real-time performance monitoring, done right!
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->


  You are about to build and install netdata to your system.

  It will be installed at these locations:

   - the daemon     at /usr/sbin/netdata
   - config files   in /etc/netdata
   - web files      in /usr/share/netdata
   - plugins        in /usr/libexec/netdata
   - cache files    in /var/cache/netdata
   - db files       in /var/lib/netdata
   - log files      in /var/log/netdata
   - pid file       at /var/run/netdata.pid
   - logrotate file at /etc/logrotate.d/netdata

  This installer allows you to change the installation path.
  Press Control-C and run the same command with --help for help.

Press ENTER to build and install netdata to your system >

Wenn Sie einverstanden sind, dann drücken Sie “Enter” … ansonsten können Sie mit “Strg+C” hier die Installtion abbrechen.

Sobald die Installation beendet ist (meist nach ca. 1-2 Minuten, je nach Serverleistung), erhalten Sie folgende Anzeige:

If you want to have version update check, please re-install it
following the procedure in:

https://github.com/netdata/netdata/wiki/Installation

 --- Check apps.plugin ---
 --- Generate netdata-uninstaller.sh ---
 --- Basic netdata instructions ---

netdata by default listens on all IPs on port 19999,
so you can access it with:

  http://this.machine.ip:19999/

To stop netdata run:

  systemctl stop netdata

To start netdata run:

  systemctl start netdata

Uninstall script generated: ./netdata-uninstaller.sh
Update script generated   : ./netdata-updater.sh

netdata-updater.sh can work from cron. It will trigger an email from cron
only if it fails (it does not print anything when it can update netdata).
Run this to automatically check and install netdata updates once per day:

sudo ln -fs /root/netdata/netdata-updater.sh /etc/cron.daily/netdata-updater

 --- We are done! ---

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

  enjoy real-time performance and health monitoring...

Ab jetzt können Sie die Oberfläche von Netdata in Ihrem Browser öffnen. Ersetzen Sie dafür im folgenden Befehl “domain.de” durch Ihren Servernamen oder Ihre Server-IP:

http://domain.de:19999

Bitte beachten Sie, dass SSL Verbindungen (derzeit) nicht bzw. nur über Umwege möglich sind. Aufrufe per “https://…” führen daher zu einer Fehlermeldung.

Folgende Befehle können Sie auch im späteren Einsatz von Netdata benötigen:

Netdata starten

systemctl start netdata

Netdata stoppen

systemctl stop netdata

Den aktuellen Netdata Status (läuft, gestoppt, ggf. Fehler) anzeigen

systemctl status netdata

Updates installieren

cd ~/netdata
git pull
./netdata-installer.sh

Netdata deinstallieren

cd ~/netdata
./netdata-uninstaller.sh --force
12. Nov 2018
Teaser

WordPress: Die robots.txt ohne Plugin anpassen

Um den Inhalt der “robots.txt” in einem WP Blog zu verändern oder zu ersetzen, brauchen Sie nicht zwingend ein Plugin oder komplexe Ersatzstrukturen.

Im aktuellen Theme (= Layout / Design) die Datei “functions.php” finden und bearbeiten. Dort am Ende folgende Zeilen einfügen:

add_filter('robots_txt', 'addToRoboText');

function addToRoboText($robotext) {
    $additions = "User-agent: *
Allow: /";
    return $robotext . $additions;
}

In der Variablen $robotext steht der Inhalt der WordPress Installation bzw. der bisher erzeugten Zeilen.

Soll nur der eigene Text angezeigt werden, so kann diese Variable unterdrückt werden indem sie nicht zurück gegeben wird. Dazu ersetzen Sie die Zeile “return …” durch folgende Zeile:

return $additions;
28. Okt 2018
Teaser

Postfix: Mails mit ZIP/EXE/COM Anhängen (Attachments) ablehnen

Um alle Mailkonten auf Ihrem Server vor E-Mails mit ZIP/EXE/… Anhängen zu schützen, können Sie folgende Anleitung nutzen:

Öffnen Sie die Konfigurationsdatei von Postfix auf Ihrem Server:

nano /etc/postfix/main.cf

Ergänzen Sie die Datei (bzw. die “mime_header_checks”) um folgende Zeile:

mime_header_checks = regexp:/etc/postfix/mime_header_checks

Speichern und beenden Sie die Bearbeitung (Strg+X in nano).

Öffnen Sie nun bitte die Datei “mime_header_checks”:

nano /etc/postfix/mime_header_checks

Ergänzen Sie die Datei um folgende Zeile:

/name=[^>]*\.(bat|com|exe|zip|dll|vbs)/ REJECT

Speichern und beenden Sie die Bearbeitung (Strg+X in nano).

Durch diese Zeile werden E-Mails mit Dateianhängen mit der Endung “.bat”, “.com”, “.exe”, “.zip”, “.dll”, “.vbs” automatisch vom Server abgelehnt. Der Absender erhält eine entsprechende Nachricht mit dem Fehlercode

<mail@server.tld>: host server.tld[12.34.56.78] said:
    550 5.7.1 message content rejected (in reply to end of DATA command)".

Zum Abschluß starten Sie den Postfix Service einmal neu:

/etc/init.d/postfix restart

Fertig.