`awk '{print "ssh -q " $1 " \"echo && hostname && df -h | grep /usr\";"}' essentials`
Es soll eine Verbindung zu einer Reihe von Hostnamen aus der Datei "essentials" herstellen und deren Speicherplatznutzung wiedergeben. Wenn ich die Back Ticks los werde, können Sie sehen, was ausgeführt wird:
ssh -q hostname1 "echo && hostname && df -h | grep /usr";
ssh -q hostname2 "echo && hostname && df -h | grep /usr";
ssh -q hostname3 "echo && hostname && df -h | grep /usr";
Tatsächliche Ausgabe:
-bash-3.2$ `awk '{print "ssh -q " $1 " \"echo && hostname && df -h | grep /usr\";"}' essentials`
bash: echo && hostname && df -h | grep /usr: No such file or directory
hostname2
/dev/xvda3 23G 13G 9.2G 59% /usr
hostname3
/dev/xvda3 23G 1.5G 21G 7% /usr
Irgendwelche Ideen, warum dieser erste Befehl nicht funktioniert?
essentials
Inhalt?Antworten:
Das ist, weil
echo && hostname && df -h | grep /usr
wird als einzelner Befehl behandelt, verwenden Sie stattdessen diesen Befehl:quelle
quelle