This is a Linux script for creating and backing up backups on Mikroitk routers.
Features
- Creates the backups automatically, no need to manually create a backup on the Mikrotik
- Uses SSH and SCP for encrypted communication between the router and the server
- Runs on linux
- Easy to use command line interface
- Can back up single or multiple routers
Future Features
These are features I am planning on adding to the script in the future
- Ability to compare backups and remove duplicates
- Make the script smarter so it can detect a backup on a router and leave it instead of deleting it
- Add better logging
- Add the functionality to upload the backups to an online service like DropBox, or OneDrive automatically
- Add alert mechanism to alert you if a backup failed or router is unreachable
Current Bugs or limitations
- Deletes all backups off of the router, so if you manually created a backup it will delete it without asking
- To stop backing up a router, you’ll need to manually delete the IP address out of the IP database i.e(ip.lst file.)
- It does not currently have the ability to delete backups
Requirements
- Linux box to run the script from and to store the backups. You can run it from a laptop or VirtualBox.
- You’ll need the following programs for this script to work(fping, sshpass)
- The Linux box need to be able to ping the routers, if it can’t the script will fail
Installing
Download program
wget www.incredigeek.com/home/downloads/mtbackup/mtbackup.sh
chmod +x mtbackup.sh
Now open up the script and edit the variables at the top for your username, password, and where you want the backups.
nano mtbackup.sh
When you have finished editing the variables, hit CTRL+x, and then “y” and then “enter” to save the file.
If you want to setup the script to backup on a regular basis then setup the script to run in cron.
Run “crontab -e” and add the following line
10 1 * * 1 cd /root/mtbackup-1.0/ & sh mtbackup -b
Hit CTRL+x, and then “y” and then “enter” to save the file.
Adding routers to backup
Adding routers is really easy. All you have to do is run the script with the -a option and then the ip address and the script will check if it can reach the IP and then add it to the IP Database i.e.(ip.lst file that contains all the routers ip addresses)
./mtbackup.sh -a 192.168.88.1
Example:
[root@localhost mtbackup-1.0]# ./mtbackup.sh -a 192.168.88.1 ################################################################# This is a Mikrotik Backup Utility. Still being updated and worked on!!! ################################################################# Adding 192.168.88.1 to the ip DB Added 192.168.88.1 to ipDB [root@localhost mtbackup-1.0]#
Backing up all routers
You can manually backup all the routers by running the script with just the “-b” option. It’ll read every IP in the IP database and create a backup for each one and put it in the backup folder with is normally “./backups”, you can change it in the variables portion of the script.
./mtbackup.sh -b
Other examples
List routers in the IP Database
[root@localhost mtbackup-1.0]# ./mtbackup.sh -L ################################################################# This is a Mikrotik Backup Utility. Still being updated and worked on!!! ################################################################# Listing Hosts... 192.168.88.1 10.200.1.1 172.20.1.1 33.11.2.22 [root@localhost mtbackup-1.0]#
Backup Single router
[root@localhost mtbackup-1.0]# ./mtbackup.sh -B 192.168.88.1 ################################################################# This is the Mikrotik Backup Utility. Currently under construction!!! ################################################################# Starting to do backup on 10.9.0.1 Configuration backup saved [root@localhost mtbackup-1.0]#
Other commands
[root@localhost mtbackup-1.0]# ./mtbackup.sh -h ################################################################# This is the Mikrotik Backup Utility. Still being updated and worked on!!! ################################################################# Usage ./mtbackup.sh [OPTIONS] ./mtbackup.sh -b 192.168.88.1 -l List backups -L List Hosts -b Backup all hosts in the IP database -B {ip} Backup Single Host, Specife IP -a {ip} Add ip to IP database -v Version [root@localhost mtbackup-1.0]#