Linux

Parallele Ausführung von Prozessen mit xargs

Ein guter Startpunkt ist -P 4 -n 1 um 4 Prozesses parallel laufen zu lassen (-P 4), aber jeder Instanz des auszuführenden Prozesses nur ein Argument zu geben (-n 1)

Dies sind die xargs-Optionen für die parallele Ausführung aus der xargs-manpage:

-P, --max-procs=ANZAHL       höchstens diese ANZAHL Prozesse zugleich ausführen

-n, --max-args=ANZAHL        höchstens diese ANZAHL Argumente in der
                                 Befehlszeile verwenden

Beispiel:

cat urls.txt | xargs -P 4 -n 1 wget

Dieser Befehl führt bis zu 4 wget-Befehle parallel aus, bis jede der URLs aus urls.txt heruntergeladen wurde. Die Folgenden Prozesse würden parallel ausgeführt:

wget [URL #1]
wget [URL #2]
wget [URL #3]
wget [URL #4]

Benutzt man stattdessen die Parameter -P 4 -n 2 dann würden die Folgenden Prozesse parallel ausgeführt:

wget [URL #1] [URL #2]
wget [URL #3] [URL #4]
wget [URL #5] [URL #6]
wget [URL #7] [URL #8]

Ein größerer Wert für -n könnte die Effizienz leicht erhöhen, da nicht für jede URL ein eigener Prozess initialisiert werden muss. Allerdings funktioniert ein Wert von n > 1 für manche Befehle nicht.

Posted by Uli Köhler in Linux

Wie behebt man „Couldn’t run /usr/bin/dumpcap in child process: Permission denied“ auf Linux

Wenn du eine Fehlermeldung wie diese in Wireshark siehst:

liegt das daran, dass der aktuelle Systemnutzer keine Berechtigung hat, Pakete von der Netzwerkkarte abzufangen.

Das kann sogar dann passieren, wenn du während der Installation ausgewählt hast, dass normale Nutzer Pakete abfangen dürfen – denn diese Einstellung wird erst aktiv, wenn du dich aus- und wieder eingeloggt hast (oder den Computer neugestartet hast).

Um das Problem temporär zu beheben, ohne dich aus- und wieder einzuloggen, führe Wireshark als Root aus: sudo wireshark

Um das Problem permanent zu beheben, führe dieses Kommando aus:

sudo usermod -a -G wireshark $USER

und dann logge dich komplett aus und wieder ein (oder starte deinen Computer neu).

Posted by Uli Köhler in Linux

iotop ‚Netlink error: Vorgang nicht zulässig (1)‘ beheben

Problem:

Du versuchst, iotop zu starten, aber siehst nur diese Fehlermeldung:

Netlink error: Vorgang nicht zulässig (1)

The Linux kernel interfaces that iotop relies on now require root priviliges
or the NET_ADMIN capability. This change occured because a security issue
(CVE-2011-2494) was found that allows leakage of sensitive data across user
boundaries. If you require the ability to run iotop as a non-root user, please
configure sudo to allow you to run iotop as root.

Please do not file bugs on iotop about this.

Lösung:

Starte iotop als root:

sudo iotop

Der Grund dafür ist, dass iotop auf Kernel-Interfaces Zugriff benötigt, die nur root oder Prozessen/Nutzern mit der CAP_NET_ADMIN-capability zugänglich sind. Theoretisch könnte man dem iotop-binary diese capability mit sudo setcap cap_net_admin+ep /usr/sbin/iotop geben, unter Ubuntu 18.04 hat dies für mich allerdings nicht funktioniert.

Posted by Uli Köhler in Linux

PDF-Dateien mit pdftk auf der Kommandozeile zusammenführen

Mit dem freien Werkzeug pdftk können auf der Kommandozeile ganz einfach mehrere PDF-Dateien zusammengefügt werden:

pdftk 1.pdf 2.pdf 3.pdf cat output Zusammengeführt.pdf

Dieses Kommando hängt den Inhalt der PDF-Dateien 1.pdf, 2.pdf und 3.pdf (in dieser Reihenfolge) hintereinander und speichert das Resultat in Zusammengeführt.pdf.

cat und output müssen bei diesem Kommando immer gleich bleiben und müssen zwischen Eingabe- und Ausgabedateien stehen.

Posted by Uli Köhler in Linux

NodeJS 10.x auf Ubuntu in einer Minute installieren

Mit den Folgenden Shell-Kommandos kannst du NodeJS 10.x auf Ubuntu installieren:

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

Statt setup_10.x können auch andere Versionen ausgewählt werden, z.B. setup_8.x. Mit dieser Methode können allerdings nicht verschiedene Versionen parallel installiert werden.

Quelle: Offizielle NodeSource-Dokumentation

Posted by Uli Köhler in Linux, NodeJS