Backup OpenWrt NUT Configuration & Scripts

This commit is contained in:
2026-02-07 20:42:15 +08:00
commit 1ef7c438dd
9 changed files with 160 additions and 0 deletions

70
Langkah_Kerja.md Normal file
View File

@@ -0,0 +1,70 @@
# Panduan Instalasi OpenWrt NUT & Notifikasi MikroTik
Gunakan panduan ini untuk mengkonfigurasi router OpenWrt baru agar sama persis dengan setingan saat ini.
## 1. Persiapan Paket
Pastikan router terhubung internet, lalu install paket yang dibutuhkan via Terminal (SSH):
```bash
opkg update
opkg install nut usbutils curl ca-bundle ca-certificates
```
*Catatan: Paket `nut` biasanya sudah mencakup driver dan tools dasar.*
## 2. Restore File Konfigurasi
Upload file-file berikut dari folder backup ini ke router OpenWrt (gunakan SCP atau WinSCP):
1. **Folder `/etc/nut/`**:
- `ups.conf` (Setingan Driver UPS)
- `upsd.conf` (Setingan Server Listen Port)
- `upsd.users` (User Monitor)
- `upsmon.conf` (Setingan Monitor & Notifikasi)
- `nut.conf` (Mode Netserver)
- `notify_mikrotik.sh` (Script Notifikasi Utama)
2. **Folder `/etc/init.d/`**:
- `nut-server` (Script Startup Server)
- `nut-monitor` (Script Startup Monitor)
## 3. Set Permission (Hak Akses)
Setelah file di-upload, jalankan perintah ini di terminal OpenWrt agar script bisa dijalankan:
```bash
chmod +x /etc/nut/notify_mikrotik.sh
chmod +x /etc/init.d/nut-server
chmod +x /etc/init.d/nut-monitor
```
## 4. Aktifkan Service
Nyalakan service agar jalan otomatis saat router nyala:
```bash
/etc/init.d/nut-server enable
/etc/init.d/nut-monitor enable
/etc/init.d/nut-server start
/etc/init.d/nut-monitor start
```
## 5. Konfigurasi Kunci SSH (PENTING!)
Agar OpenWrt bisa kirim perintah ke MikroTik tanpa password, Anda harus membuat kunci rahasia (SSH Key) baru di OpenWrt.
1. **Buat Key di OpenWrt**:
```bash
ssh-keygen
```
*(Tekan Enter terus sampai selesai, biarkan default)*
2. **Lihat Public Key**:
```bash
cat /root/.ssh/id_rsa.pub
```
*(Copy tulisan yang muncul, biasanya diawali `ssh-rsa ...`)*
3. **Import ke MikroTik**:
- Login ke Winbox MikroTik (192.168.7.1 & 103.125.50.7).
- Masuk ke menu **System -> Users -> SSH Keys**.
- Import key tersebut untuk user `upsuser`.
## 6. Test Sistem
Coba test apakah notifikasi berjalan:
```bash
/etc/nut/notify_mikrotik.sh "TEST_INSTALL"
```
Jika sukses, log akan muncul di MikroTik dan pesan masuk ke Telegram.

27
notify_mikrotik.sh Normal file
View File

@@ -0,0 +1,27 @@
#!/bin/sh
# $1 = event type (ONLINE, ONBATT, LOWBATT, FSD, etc.)
# Configuration
MIKROTIK_TARGETS="192.168.7.1 103.125.50.7"
TELEGRAM_BOT_TOKEN="6770207225:AAG3yNPepyhhGXqNh8BYjLYUMctc1DSfrH4"
TELEGRAM_CHAT_ID="6796478523"
# Message for Telegram
DATE=$(date "+%Y-%m-%d %H:%M:%S")
MESSAGE="UPS Notification: $1 at $DATE"
# 1. Send to Telegram using CURL (Secure)
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" -d chat_id="$TELEGRAM_CHAT_ID" -d text="$MESSAGE" > /dev/null 2>&1 &
# 2. Send to MikroTik Routers
for IP in $MIKROTIK_TARGETS; do
# Log event
ssh -i /root/.ssh/id_rsa -y upsuser@$IP "/log warning \"UPS Notification: $1\"" &
# Shutdown on Critical
if [ "$1" = "LOWBATT" ] || [ "$1" = "FSD" ]; then
ssh -i /root/.ssh/id_rsa -y upsuser@$IP "/system shutdown" &
fi
done
wait

21
nut-monitor Normal file
View File

@@ -0,0 +1,21 @@
#!/bin/sh /etc/rc.common
START=60
USE_PROCD=1
restart() {
stop_service
start_service
}
start_service() {
upsmon -p
}
stop_service() {
upsmon -c stop
}
reload_service() {
upsmon -c reload
}

23
nut-server Normal file
View File

@@ -0,0 +1,23 @@
#!/bin/sh /etc/rc.common
START=50
USE_PROCD=1
restart() {
stop_service
start_service
}
start_service() {
upsdrvctl start
upsd
}
stop_service() {
upsd -c stop
upsdrvctl stop
}
reload_service() {
upsd -c reload
}

1
nut.conf Normal file
View File

@@ -0,0 +1 @@
MODE=netserver

6
ups.conf Normal file
View File

@@ -0,0 +1,6 @@
[myups]
driver = blazer_usb
port = auto
vendorid = 0665
productid = 5161
desc = "UPS 0665:5161"

1
upsd.conf Normal file
View File

@@ -0,0 +1 @@
LISTEN 0.0.0.0 3493

5
upsd.users Normal file
View File

@@ -0,0 +1,5 @@
[monuser]
password = secret
upsmon master
actions = SET
instcmds = ALL

6
upsmon.conf Normal file
View File

@@ -0,0 +1,6 @@
MONITOR myups@localhost 1 monuser secret master
NOTIFYCMD /etc/nut/notify_mikrotik.sh
NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG ONBATT SYSLOG+EXEC
NOTIFYFLAG LOWBATT SYSLOG+EXEC