Wir haben eine mehrfache Bereitstellung einer Anwendung auf Servern wie app00, app01 und so weiter. Ich muss eine einzelne Protokolldatei von all diesen Servern auf meinen lokalen Mac kopieren, damit ich etwas greifen und schneiden kann.
Ich habe csshX zum Anzeigen dieser Datei verwendet, aber ich kann kein Äquivalent für scp finden. Grundsätzlich möchte ich zwei Dinge:
- Möglichkeit, eine Verbindung zu n Nummern solcher Server herzustellen und die Datei zu kopieren
- Vermeiden Sie lokale Namenskonflikte, indem Sie der Protokolldatei möglicherweise den Server-Hostnamen voranstellen
Wie mache ich das?
Antworten:
Dies ist trivial, um mit einem kleinen Skript zu tun. Beispielsweise:
Das Obige kopiert die Datei nacheinander von jedem Server und benennt sie
SERVERNAME_file
. Die Datei vonapp0
wird alsoapp0_file
usw. sein . Sie können die Namen natürlich beliebig ändern.quelle
&
am Ende desscp
Befehls undwait
am Ende ein, und Sie haben Parallelität ohne zusätzliche Kosten.Verwenden Sie GNU parallel :
Im Gegensatz zu Lösungen, die a verwenden
for
, werden alle Downloads parallel ausgeführtquelle
quelle
Wenn Sie in der Lage sind, Python zu verwenden, gibt es ein interessantes Modul, das die maschinenverwaltungsbezogenen Aufgaben namens Fabric vereinfachen soll: http://docs.fabfile.org/en/latest/tutorial.html
Ich wollte es benutzen, bin aber nicht dazu gekommen
quelle
Das hat bei mir funktioniert
quelle