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 su
ettiğ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 sudo
veya anahtarla su -c
TTY 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 sudo
genellikle sadece prepending, tekrar kök şifre isteyen önce birkaç dakika size yetki seviyesini hatırlar sudo
kö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. NOPASSWD
Kullanıcınız için bir kural eklemek /etc/sudoers
işlemi daha da sorunsuz hale getirir.
Umarım bu yardımcı olur :-)