Anda bisa meneruskan perintah sebagai argumen ke SSH untuk menjalankan perintah itu di server, dan kemudian keluar:
ssh user@host "command to run"
Ini juga berfungsi untuk daftar beberapa perintah:
ssh user@host "command1; command2; command3"
Atau sebagai alternatif:
ssh user@host "
command1
command2
command3
"
Seperti yang ditunjukkan oleh pengguna lain sebelum saya, menjalankan suserver akan meluncurkan shell baru alih-alih mengeksekusi perintah berikutnya dalam skrip sebagai root. Yang perlu Anda lakukan adalah menggunakan salah satu sudoatau su -c, dan memaksa alokasi TTY ke SSH dengan -tsaklar (diperlukan jika Anda perlu memasukkan kata sandi root):
ssh -t user@host 'su - -c "command"'
ssh -t user@host 'sudo command'
Singkatnya, satu cara untuk mencapai apa yang ingin Anda lakukan, adalah:
#!/bin/bash
ssh -t user@172.1.1.101 "
sudo some_command
sudo service server_instance stop
sudo some_other_command
"
Karena sudobiasanya mengingat tingkat otorisasi Anda selama beberapa menit sebelum meminta kata sandi root lagi, hanya dengan menambahkan sudosemua perintah yang perlu Anda jalankan sebagai root kemungkinan cara termudah untuk menjalankan perintah sebagai root di server. Menambahkan NOPASSWDaturan untuk pengguna Anda /etc/sudoersakan membuat proses lebih lancar.
Saya harap ini membantu :-)