SUPONO.
NetAuto • Kursus PraktisiPanduan Praktik Hands-On

Lab 1: Otomasi Backup & Audit RouterOS via Python & Netmiko

Praktikum membuat script Python untuk backup otomatis konfigurasi router dan monitoring CPU/memory harian.

Format: Markdown (.MD)•File: lab_1_python_paramiko_routeros.md•Sasaran: Praktisi & DevOps
Filter Versi CLI:

Objektif #

Membuat skrip Python untuk terhubung ke router MikroTik via SSH menggunakan pustaka netmiko, mengumpulkan informasi sistem (CPU, RAM, Uptime), dan mengambil file backup konfigurasi .rsc secara otomatis.

Topologi #

graph LR AdminPC[Linux / PC Automation: Python Script] -->|SSH Port 22: Netmiko Library| Router1[MikroTik Router 1] AdminPC -->|SSH Port 22| Router2[MikroTik Router 2] AdminPC -->|Menyimpan File RSC Lokal| BackupVault[(Folder Backup Harian)]

Langkah Implementasi #

1. Instalasi Environment Python #

BASH
python3 -m venv venv
source venv/bin/activate
pip install netmiko

2. Skrip Python Otomasi Backup (backup_mikrotik.py) #

PYTHON
from netmiko import ConnectHandler
import datetime

# Daftar router yang akan diaudit
devices = [
    {
        'device_type': 'mikrotik_routeros',
        'host': '192.168.88.1',
        'username': 'admin',
        'password': 'SuponoPassword123!',
        'port': 22,
    }
]

today = datetime.date.today().strftime('%Y-%m-%d')

for dev in devices:
    print(f"[*] Menghubungi router {dev['host']}...")
    try:
        net_connect = ConnectHandler(**dev)
        # Ambil informasi identitas dan resource
        identity = net_connect.send_command('/system identity print')
        resource = net_connect.send_command('/system resource print')
        print(f"[+] Berhasil terhubung ke: {identity.strip()}")
        
        # Ekspor konfigurasi ke memori
        export_cfg = net_connect.send_command('/export')
        
        # Simpan ke file lokal
        filename = f"backup_{dev['host']}_{today}.rsc"
        with open(filename, 'w') as f:
            f.write(export_cfg)
        print(f"[✓] File konfigurasi tersimpan: {filename}")
        
        net_connect.disconnect()
    except Exception as e:
        print(f"[-] Gagal terhubung ke {dev['host']}: {e}")

Verifikasi #

  1. Jalankan skrip: python3 backup_mikrotik.py.
  2. Periksa file backup_192.168.88.1_YYYY-MM-DD.rsc yang terbentuk di direktori kerja.
  3. Buka file tersebut dan pastikan seluruh konfigurasi router tersimpan utuh dan bersih.