MikroTik Scripting: Backup Konfigurasi MikroTik Ke Email

Artikel ini mencatat hasil eksperimen terkait script backup konfigurasi MikroTik yang secara otomatis mengirimkan hasil backup ke email.
Script ini bisa dikombinasikan dengan Scheduler untuk berjalan pada waktu tertentu.

Persiapan

Sebelum menjalankan script, lakukan konfigurasi email di Tools > Email atau melalui CLI.

Konfigurasi Email di RouterOS 6

/tool e-mail set address=smtp.server.com from=[email protected] password=PasswordAman port=587 start-tls=yes user=[email protected]

Konfigurasi Email di RouterOS 7

/tool e-mail set address=smtp.server.com from=[email protected] password=PasswordAman port=587 tls=starttls user=[email protected] \

Script Backup Konfigurasi

Sesuaikan script dengan versi RouterOS dan jenis backup yang diinginkan (.rsc only atau .rsc + .backup).

Backup .rsc (Export Configuration)

RouterOS 6

#BUAT VARIABEL - ROS 6 
:local ptanggal [/system clock get date];
:local d [:pick $ptanggal 4 6];
:local m [:pick $ptanggal 0 3] ;
:local y [:pick $ptanggal 7 11];
:local tanggal "$d $m $y";
:local jam [/system clock get time];
:local perangkat [/system identity get name];
:local perusahaan "WarsCloud";
:local namafile "backup $perusahaan_$perangkat_$tanggal.rsc";
:local mailserver "smtp.server.com"
:local pengirim "[email protected]"
:local penerima "[email protected]";
:local subjek "Recurring Backup Configuration $perusahaan | $perangkat"
:local body "Berikut file backup konfigurasi server $perangkat - $ptanggal  $jam"

#PERINTAH MELAKUKAN BACKUP KONFIGURASI
/export file=$namafile;

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=10s;

#PERINTAH EKSEKUSI MENGIRIM EMAIL
/tool e-mail send server=$mailserver start-tls=yes to=$penerima from=$pengirim subject=$subjek body=$body file=$namafile;

#BUAT KETERANGAN DI LOG
/log warning message="email berhasil dikirim, selanjutnya akan menghapus file backup";

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=20s;

#HAPUS FILE BACKUP
/file remove $namafile;

#BUAT KETERANGAN DI LOG
/log warning message="task backup konfigurasi dan kirim email selesai !!";

RouterOS 7.9.2 Atau Dibawahnya (format tanggal lama)

#BUAT VARIABEL ROS 7.9.2 ATAU DIBAWAHNYA (FORMAT DATE LAMA)
:local ptanggal [/system clock get date];
:local d [:pick $ptanggal 4 6];
:local m [:pick $ptanggal 0 3] ;
:local y [:pick $ptanggal 7 11];
:local tanggal "$d $m $y";
:local jam [/system clock get time];
:local perangkat [/system identity get name];
:local perusahaan "WarsCloud";
:local namafile "backup $perusahaan_$perangkat_$tanggal.rsc";
:local mailserver "smtp.server.com"
:local pengirim "[email protected]"
:local penerima "[email protected]";
:local subjek "Recurring Backup Configuration $perusahaan | $perangkat"
:local body "Berikut file backup konfigurasi server $perangkat - $ptanggal  $jam"

#PERINTAH MELAKUKAN BACKUP KONFIGURASI
/export file=$namafile;

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=10s;

#PERINTAH EKSEKUSI MENGIRIM EMAIL
/tool e-mail send server=$mailserver tls=starttls to=$penerima from=$pengirim subject=$subjek body=$body file=$namafile;

#BUAT KETERANGAN DI LOG
/log warning message="email berhasil dikirim, selanjutnya akan menghapus file backup";

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=20s;

#HAPUS FILE BACKUP
/file remove $namafile;

#BUAT KETERANGAN DI LOG
/log warning message="task backup konfigurasi dan kirim email selesai !!";

RouterOS 7.10 Atau Diatasnya (format tanggal baru)

#BUAT VARIABEL ROS => 7.10 (ATAU DIATASNYA)
:local tanggal [/system clock get date];
:local jam [/system clock get time];
:local perangkat [/system identity get name];
:local perusahaan "WarsCloud";
:local namafile "backup $perusahaan_$perangkat_$tanggal.rsc";
:local mailserver "smtp.server.com"
:local pengirim "[email protected]"
:local penerima "[email protected]";
:local subjek "Recurring Backup Configuration $perusahaan | $perangkat"
:local body "Berikut file backup konfigurasi server $perangkat - $tanggal  $jam"

#PERINTAH MELAKUKAN BACKUP KONFIGURASI
/export file=$namafile;

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=10s;

#PERINTAH EKSEKUSI MENGIRIM EMAIL
/tool e-mail send server=$mailserver tls=starttls to=$penerima from=$pengirim subject=$subjek body=$body file=$namafile;

#BUAT KETERANGAN DI LOG
/log warning message="email berhasil dikirim, selanjutnya akan menghapus file backup";

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=20s;

#HAPUS FILE BACKUP
/file remove $namafile;

#BUAT KETERANGAN DI LOG
/log warning message="task backup konfigurasi dan kirim email selesai !!";

Backup .rsc + .backup (Export & Binary Backup)

RouterOS 6

#BUAT VARIABEL - ROS 6 
:local ptanggal [/system clock get date];
:local d [:pick $ptanggal 4 6];
:local m [:pick $ptanggal 0 3] ;
:local y [:pick $ptanggal 7 11];
:local tanggal "$d $m $y";
:local jam [/system clock get time];
:local perangkat [/system identity get name];
:local boardname [/system resource get board-name];
:local rosversion [/system resource get version];
:local perusahaan "WarsCloud";
:local namafilersc "$perusahaan_$perangkat_$tanggal.rsc";
:local namafilebackup "$perusahaan_$perangkat_$tanggal";
:local mailserver "smtp.server.com"
:local pengirim "[email protected]"
:local penerima "[email protected]";
:local subjek "Recurring Backup Configuration $perusahaan | $perangkat"
:local body "Berikut kami lampirkan file backup konfigurasi\n\nNama perangkat: $perangkat \nBoard: $boardname\nVersi RouterOS: $rosversion\nTanggal & jam backup: $tanggal  $jam"

#PERINTAH MELAKUKAN BACKUP KONFIGURASI
/log warning message="proses backup type rsc sedang berlangsung";
/export file=$namafilersc;
/log warning message="proses backup type rsc selesai";
/log warning message="proses backup type backup sedang berlangsung";
/system backup save name=$namafilebackup;
/log warning message="proses backup type backup selesai";

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=10s;

#PERINTAH EKSEKUSI MENGIRIM EMAIL
/log warning message="proses pengiriman email sedang berlangsung";
/tool e-mail send server=$mailserver start-tls=yes to=$penerima from=$pengirim subject=$subjek body=$body file="$namafilersc,$namafilebackup.backup";

#BUAT KETERANGAN DI LOG
/delay delay-time=2s;
/log warning message="email berhasil dikirim, selanjutnya akan menghapus file backup";

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=20s;

#HAPUS FILE BACKUP
/file remove $namafilersc;
/file remove $namafilebackup
/log warning message="file backup telah dihapus";

#BUAT KETERANGAN DI LOG
/log warning message="task backup konfigurasi dan kirim email selesai !!";

RouterOS 7.9.2 Atau Dibawahnya (format tanggal lama)

#BUAT VARIABEL ROS 7.9.2 ATAU DIBAWAHNYA (FORMAT DATE LAMA)
:local ptanggal [/system clock get date];
:local d [:pick $ptanggal 4 6];
:local m [:pick $ptanggal 0 3] ;
:local y [:pick $ptanggal 7 11];
:local tanggal "$d $m $y";
:local jam [/system clock get time];
:local perangkat [/system identity get name];
:local boardname [/system/resource/get board-name];
:local rosversion [/system/resource/get version];
:local perusahaan "WarsCloud";
:local namafilersc "$perusahaan_$perangkat_$tanggal.rsc";
:local namafilebackup "$perusahaan_$perangkat_$tanggal";
:local mailserver "smtp.server.com";
:local pengirim "[email protected]";
:local penerima "[email protected]";
:local subjek "Recurring Backup Configuration $perusahaan | $perangkat";
:local body "Berikut kami lampirkan file backup konfigurasi\n\nNama perangkat: $perangkat \nBoard: $boardname\nVersi RouterOS: $rosversion\nTanggal & jam backup: $tanggal  $jam";

#PERINTAH MELAKUKAN BACKUP KONFIGURASI
/log/warning message="proses backup type rsc sedang berlangsung";
/export file=$namafilersc;
/log/warning message="proses backup type rsc selesai";
/log/warning message="proses backup type backup sedang berlangsung";
/system/backup/save name=$namafilebackup;
/log/warning message="proses backup type backup selesai";

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=10s;

#PERINTAH EKSEKUSI MENGIRIM EMAIL
/log/warning message="proses pengiriman email sedang berlangsung";
/tool e-mail send server=$mailserver tls=starttls to=$penerima from=$pengirim subject=$subjek body=$body file="$namafilersc,$namafilebackup.backup";

#BUAT KETERANGAN DI LOG
/delay delay-time=2s;
/log warning message="email berhasil dikirim, selanjutnya akan menghapus file backup";

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=20s;

#HAPUS FILE BACKUP
/file/remove $namafilersc;
/file/remove $namafilebackup;
/log warning message="file backup telah dihapus";


#BUAT KETERANGAN DI LOG
/log warning message="task backup konfigurasi dan kirim email selesai !!";

RouterOS 7.10 Atau Diatasnya (format tanggal baru)

#BUAT VARIABEL ROS => 7.10 (ATAU DIATASNYA)
:local tanggal [/system clock get date];
:local jam [/system clock get time];
:local perangkat [/system identity get name];
:local boardname [/system/resource/get board-name];
:local rosversion [/system/resource/get version];
:local perusahaan "WarsCloud";
:local namafilersc "$perusahaan_$perangkat_$tanggal.rsc";
:local namafilebackup "$perusahaan_$perangkat_$tanggal";
:local mailserver "smtp.server.com";
:local pengirim "[email protected]";
:local penerima "[email protected]";
:local subjek "Recurring Backup Configuration $perusahaan | $perangkat";
:local body "Berikut kami lampirkan file backup konfigurasi\n\nNama perangkat: $perangkat \nBoard: $boardname\nVersi RouterOS: $rosversion\nTanggal & jam backup: $tanggal  $jam";


#PERINTAH MELAKUKAN BACKUP KONFIGURASI
/log/warning message="proses backup type rsc sedang berlangsung";
/export file=$namafilersc;
/log/warning message="proses backup type rsc selesai";
/log/warning message="proses backup type backup sedang berlangsung";
/system/backup/save name=$namafilebackup;
/log/warning message="proses backup type backup selesai";

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=10s;

#PERINTAH EKSEKUSI MENGIRIM EMAIL
/log/warning message="proses pengiriman email sedang berlangsung";
/tool e-mail send server=$mailserver tls=starttls to=$penerima from=$pengirim subject=$subjek body=$body file="$namafilersc,$namafilebackup.backup";

#BUAT KETERANGAN DI LOG
/delay delay-time=2s;
/log warning message="email berhasil dikirim, selanjutnya akan menghapus file backup";

#DELAY UNTUK MELAKUKAN PERINTAH SELANJUTNYA
/delay delay-time=20s;

#HAPUS FILE BACKUP
/file remove $namafilersc;
/file remove $namafilebackup;

#BUAT KETERANGAN DI LOG
/log warning message="task backup konfigurasi dan kirim email selesai !!";

Penjadwalan Otomatis dengan Scheduler

Agar backup dilakukan otomatis di jam tertentu gunakan scheduler.
Contoh disini saya akan melakukan penjadwalan backup setiap hari di jam 1 malam, Silakan sesuaikan script dengan versi RouterOS dan tipe backup nya, diatas.