Bir komutu SSH'ye bağımsız değişken olarak ileterek o komutu sunucuda çalıştırabilir ve çıkabilirsiniz:
ssh user@host "command to run"
Bu, birden çok komutun listesi için de geçerlidir:
ssh user@host "command1; command2; command3"
Veya alternatif olarak:
ssh user@host "
command1
command2
command3
"
Diğer kullanıcıların benden önce işaret suettiği gibi, sunucuda çalıştırmak, komut dosyasında sonraki komutları kök olarak yürütmek yerine yeni bir kabuk başlatacaktır. Yapmanız gereken şey, ya kullanmaktır sudoveya anahtarla su -cTTY ayırmayı SSH'ye zorlamaktır -t(kök parolayı girmeniz gerekiyorsa gereklidir):
ssh -t user@host 'su - -c "command"'
ssh -t user@host 'sudo command'
Her şeyi özetlemek gerekirse, ne yapmak istediğinizi başarmanın bir yolu:
#!/bin/bash
ssh -t user@172.1.1.101 "
sudo some_command
sudo service server_instance stop
sudo some_other_command
"
Yana sudogenellikle sadece prepending, tekrar kök şifre isteyen önce birkaç dakika size yetki seviyesini hatırlar sudokök olasılıkla sunucuda root olarak komutları çalıştırmak için en kolay yoludur olarak çalıştırmak için gereken tüm komutlara. NOPASSWDKullanıcınız için bir kural eklemek /etc/sudoersişlemi daha da sorunsuz hale getirir.
Umarım bu yardımcı olur :-)