{"id":20973,"date":"2025-10-26T13:12:25","date_gmt":"2025-10-26T12:12:25","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=20973"},"modified":"2025-10-26T13:12:27","modified_gmt":"2025-10-26T12:12:27","slug":"pssh-shell-befehle-auf-mehreren-linux-hosts-gleichzeitig-ausfuehren","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2025\/10\/26\/pssh-shell-befehle-auf-mehreren-linux-hosts-gleichzeitig-ausfuehren\/","title":{"rendered":"pssh &#8211; Shell-Befehle auf mehreren Linux-Hosts gleichzeitig ausf\u00fchren"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In Zeiten von <a href=\"https:\/\/linux-bibel.at\/index.php\/2023\/09\/09\/ansible-aufsetzen-und-anpassen-von-linux-systemen-aus-der-ferne\/\" data-type=\"post\" data-id=\"1653\">Ansible<\/a> gelingt vieles unter mehreren Linux-Rechnern (<em>und viel mehr<\/em>) schneller, ohne etwas auf jedem Rechner einzeln auszuf\u00fchren &#8211; etwa \u00fcber <a href=\"https:\/\/linux-bibel.at\/index.php\/2023\/09\/10\/ssh-secure-shell-unter-linux-am-terminal-und-auf-der-grafischen-oberflaeche\/\" data-type=\"post\" data-id=\"2501\">SSH<\/a>. Um jetzt aber schnell einen Befehl gleichzeitig auf mehreren Linux-Systemen auszuf\u00fchren, muss man nicht gleich eine Ansible-Regel schreiben &#8211; hier kann auch pssh helfen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">pssh installieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Unter auf Debian basierenden Linux-Distributionen gelingt dies wie \u00fcblich ganz einfach \u00fcber die Paket-Verwaltung, etwa \u00fcber <a href=\"https:\/\/linux-bibel.at\/index.php\/2023\/10\/29\/synaptic-die-ultimative-paket-verwaltung-von-debian\/\" data-type=\"post\" data-id=\"10661\">Synaptic<\/a> &#8211; oder noch schneller nat\u00fcrlich als root auf dem Terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update\napt install pssh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Unter Distributionen, die das Paket nicht in ihren Repos mitf\u00fchren, installieren Sie die <a href=\"https:\/\/linux-bibel.at\/index.php\/2023\/09\/09\/python-software-unter-linux-aus-dem-python-package-index-installieren\/\" data-type=\"post\" data-id=\"1910\">Python-Paket-Verwaltung<\/a> und \u00fcber diese das Paket &#8222;<strong>pssh<\/strong>&#8222;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">pssh nutzen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Als Erstes ben\u00f6tigen Sie eine Host-Liste, einfach gesagt eine Textdatei, die die Hosts beinhaltet, auf denen Sie mittels pssh Befehle ausf\u00fchren wollen, SSH muss auf diesen Hosts nat\u00fcrlich aktiv sein und Sie ben\u00f6tigen dort einen Benutzer und root f\u00fcr administrative Befehle. Ein Beispiel &#8211; ich nenne diese Datei jetzt ganz einfach &#8222;<strong>pssh-hosts.txt<\/strong>&#8222;. Diese Datei beinhaltet einen Host je Zeile &#8211; entweder den Hostnamen oder die IP-Adresse und den SSH-Port &#8211; also etwa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>192.168.0.2:22\n192.168.0.3:22\n102.168.0.4:22<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt zu den Optionen &#8211; mit <code>-h<\/code> geben Sie die erstellte Hosts-Datei an, mit <code>-l user<\/code> geben Sie den Benutzer an, unter dem der Befehl ausgef\u00fchrt werden soll, mit <code>-A<\/code> geben Sie den Befehl an &#8211; inklusive Optionen unter Anf\u00fchrungszeichen. Mit <code>-i<\/code> sorgen Sie daf\u00fcr, dass Sie auch R\u00fcckmeldungen als Ausgabe bekommen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als Beispiel will ich den Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df -h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">auf den Systemen als root ausf\u00fchren &#8211; unter Debian als Debian-Paket installiert, nutzen Sie <code>parallel-ssh<\/code>, ansonsten <code>pssh<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>parallel-pssh -h pssh-hosts.txt -l root -i -A \"df -h\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Als Beispiel-Ausgabe:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;1] 12:53:27 &#91;ERFOLGREICH] 192.168.0.2:22\nDateisystem                     Gr\u00f6\u00dfe Benutzt Verf. Verw% Eingeh\u00e4ngt auf\nudev                             7,7G       0  7,7G    0% \/dev\ntmpfs                            1,6G    2,3M  1,6G    1% \/run\nefivarfs                         192K    183K  4,5K   98% \/sys\/firmware\/efi\/efivars\n\/dev\/mapper\/debian--hp--vg-root  467G    105G  339G   24% \/\ntmpfs                            7,7G    270M  7,5G    4% \/dev\/shm\ntmpfs                            5,0M    8,0K  5,0M    1% \/run\/lock\ntmpfs                            1,0M       0  1,0M    0% \/run\/credentials\/systemd-journald.service\ntmpfs                            7,7G    6,3M  7,7G    1% \/tmp\n\/dev\/nvme0n1p2                   456M    265M  166M   62% \/boot\n\/dev\/nvme0n1p1                   511M    4,4M  507M    1% \/boot\/efi\ntmpfs                            1,6G    128K  1,6G    1% \/run\/user\/1000\n\n&#91;2] 12:53:27 &#91;ERFOLGREICH] 192.168.0.3:22\n...\n...\n...\n\n&#91;3] 12:53:27 &#91;ERFOLGREICH] 102.168.0.4:22\n---\n---\n...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Software arbeitet nach der Eingabe des Passwortes einen Rechner nach dem anderen in der Textdatei von oben nach unten ab. Weitere Hilfe bietet nat\u00fcrlich die Manpage mit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>man parallel-pssh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Oder:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pssh --help<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nachdem Sie <strong>pssh<\/strong> erst einmal installiert haben, haben Sie auch noch weitere Werkzeuge dabei<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>pscp<\/strong> \/ <strong>parallel-scp<\/strong> &#8211; zum Kopieren von Dateien \/ Verzeichnissen auf mehrere Systeme.<\/li>\n\n\n\n<li><strong>pnuke<\/strong> \/ <strong>parallel-nuke<\/strong> &#8211; Prozesse auf mehreren Systemen beenden.<\/li>\n\n\n\n<li><strong>prsync<\/strong> \/ <strong>parallel-rsync<\/strong> &#8211; zum Syncen von Dateien \/ Verzeichnissen auf mehrere Systeme.<\/li>\n\n\n\n<li><strong>pslurp<\/strong> \/ <strong>parallel-slurp<\/strong> &#8211; zum Kopieren von Dateien \/ Verzeichnissen von mehreren Systemen auf einen gew\u00fcnschten oder lokalen Host.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Wie immer nat\u00fcrlich auch:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>man parallel-scp\nman parallel-nuke\nman parallel-rsync\nman parallel-slurp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Oder eben:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pscp --help\npnuke --help\nprsync --help\npslurp --help<\/code><\/pre>\n<div class=\"pld-like-dislike-wrap pld-custom\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir\" data-post-id=\"20973\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Hoch.png\" alt=\"Gef\u00e4llt mir\" \/>\r\n            <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">6    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir nicht\" data-post-id=\"20973\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Runter.png\" alt=\"Gef\u00e4llt mir nicht\" \/>\r\n            <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\"><\/span>\r\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>In Zeiten von Ansible gelingt vieles unter mehreren Linux-Rechnern (und viel mehr) schneller, ohne etwas auf jedem Rechner einzeln auszuf\u00fchren &#8211; etwa \u00fcber SSH. Um jetzt aber schnell einen Befehl gleichzeitig auf mehreren Linux-Systemen auszuf\u00fchren, muss man nicht gleich eine Ansible-Regel schreiben &#8211; hier kann auch pssh helfen. pssh installieren Unter auf Debian basierenden Linux-Distributionen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":20974,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[12,7,6],"class_list":["post-20973","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-terminal","tag-kommandozeile","tag-shell","tag-terminal"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/20973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=20973"}],"version-history":[{"count":1,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/20973\/revisions"}],"predecessor-version":[{"id":20975,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/20973\/revisions\/20975"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media\/20974"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=20973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=20973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=20973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}