Seçeneklerin kabuk tarafından nasıl ayrıştırılacağı ile ilgili olduğunu düşünüyorum. Örneğin, bu çalışır:
$ ssh root@server /bin/sh -c '"cd /boot && ls -l"'
Bu, emrinizle aynı konuyu içeriyor:
$ ssh root@server /bin/sh -c 'cd /boot && ls -l'
-v
Düğmeyi etkinleştirirseniz, ssh
neler olduğunu görebilirsiniz:
1. komut:
debug1: Gönderme komutu: / bin / sh -c "cd / boot && ls -l"
2. komut:
debug1: Gönderme komutu: / bin / sh -c cd / boot && ls -l
Genellikle komutları gönderirken ssh
, çeşitli katmanlar bunları sıyırırken alıntılara ve tırnak içindeki tırnaklara özel önem vermeniz gerekir. Ayrıca gönderme zahmet etmeyin /bin/sh
.
ssh
Aşağıdaki gibi alıntıyı anladıktan sonra çok faydalı bir şey yapabilirsiniz . Bu, uzak sunucudaki komutu çalıştıracak ancak sonuçları yerel olarak ssh
komutu çalıştırdığınız sistemdeki bir dosyada toplayacaktır :
$ ssh root@server 'free -m' > /tmp/memory.status
ya da uzak bir sunucuda bir dizin tartıp yerel sistemde oluşturduğunuzda:
$ ssh remotehost 'tar zcvf - SOURCEDIR' | cat > DESTFILE.tar.gz
Referanslar
ssh root@server /bin/sh -c "ls -l /boot"
?