Python: Mengeksekusi Perintah Pada Server Melalui SSH

March 28, 2018

Python digunakan untuk operasi sistem, pengembangan web, server dan alat administrasi, penyebaran, pemodelan ilmiah, dan banyak lagi. Sebagai bahasa yang digunakan dibanyak sistem operasi kehandalan Python tidak diragukan lagi.

Jika anda terbiasa menangani server dan ingin membuat aplikasi untuk mengeksekusi perintah-perintah pada server tersebut anda bisa menggunakan Python. Pada tulisan ini saya berbagi cara sederhana bagaimana mengeksekusi command atau perintah pada server melalui SSH.

Pastikan anda sudah menginstall Python dan setting environtment variable kemudian buka aplikasi command prompt. Sebelum membuat program Python silahkan install library paramiko menggunakan pip

pip install paramiko

Install paramiko python library

Saya secara pribadi menyarankan anda untuk menggunakan IDE Visual Studio Code karena banyak fitur yang dimilikinya seperti terminal, debug console, terintegrasi dengan GIT, error highlight, dan yang paling penting gratis hahaha

Silahkan buat file baru dan copy paste code dibawah ini.
import paramiko
p = paramiko.SSHClient()
p.set_missing_host_key_policy(paramiko.AutoAddPolicy())
p.connect("192.168.1.114", port=22,username="root", password="mysecretpassword")
stdin, stdout, stderr = p.exec_command("service tomcat7 restart") #execute the command
opt = stderr.readlines()
opt = "".join(opt)
print(opt) #print errors
print(stdout.readlines()) #print outputs

Kode diatas digunakan untuk login ke server (192.168.1.114) via SSH kemudian mengeksekusi command "/opt/lampp/./lampp status" dimana perintah tersebut adalah untuk mendapatkan status dari lampp yang sudah diinstall sebelumnya pada server. stdout untuk menampilkan hasil eksekusi command dan stderr untuk menampilkan status error.

Selanjutnya mengeksekusi script tersebut pada command prompt atau terminal VSC dengan perintah:

python server_services.py

Coding dan jalankan script Python menggunakan Visual Studio Code
Hasilnya program tersebut menampilkan status services dari lampp pada server 192.168.1.114

1 comment:

Powered by Blogger.