2016-07-19 11 views
1

ich einen sed-Befehl mit Messer ssh laufen:Chef Messer ssh sed Befehl

knife ssh 'name:mynode' 'sudo sed -i 's/https:\/\/test1.mydomain.com/https:\/\/test2.mydomain.com/g' /etc/chef/1.rb' -x myuser ./mypem.pem 

bekam ich einen Fehler:

sed: -e expression #1, char 11: unknown option to `s' 

Wenn ich versuche,

knife ssh 'name:mynode' "sudo sed -i 's/https:\/\/test1.mydomain.com/https:\/\/test2.mydomain.com/g' /etc/chef/1.rb" -x myuser ./mypem.pem 

Error: 

sed: can't read ./mypem.pem: No such file or directory 

Auch wenn ich versuche,

knife ssh 'name:mynode' "'sudo sed -i 's/https:\/\/test1.mydomain.com/https:\/\/test2.mydomain.com/g' /etc/chef/1.rb'" -x myuser ./mypem.pem 
Error: 
bash: sudo sed -i s/https://test1.mydomain.com/https://test2.mydomain.com/g /etc/chef/1.rb: No such file or directory 

arbeitet der Befehl aus der Maschine:

sudo sed -i 's/https:\/\/test1.mydomain.com/https:\/\/test2.mydomain.com/g' /etc/chef/1.rb 

Warum ist das passiert?

+0

Verwendung doppelte Anführungszeichen „“ um den gesamten Befehl oder entkommen die Singles zitieren um die sed-Skript., Wie Sie die Anführungszeichen sind Endung ist, einfügen Zeichen und Erneutes Öffnen der Zitate. – Tensibai

+0

Ich versuchte Messer ssh 'Name: Mynode' "'sudo sed -i' s/https: \/\/test1.mydomain.com/https:\/\/test2.mydomain.com/g '/ etc/Chef /1.rb '"-x myuser ./mypem.pem und ich habe einen Fehler erhalten bash: sudo sed -is/https: //test1.mydomain.com/https: //test2.mydomain.com/g/ etc/chef/1.rb: Keine solche Datei oder Verzeichnis –

+0

Starten Sie den Befehl Messer aus Windows oder Linux? – Tensibai

Antwort

0

Rezept zu erstellen und mit Messer ssh laufen

bash 'sed' do 
    code <<-EOH 
    sudo sed -i 's,https://test1.mydomain.com,https://test2.mydomain.com,g' /etc/chef/1.rb 
    EOH 
end