Intro
This script is meant to back up Audiocodes gateways that are being managed manually (without using sipXecs)
Prerequisites
You must have python and curl installed and create the file: /etc/cron.daily/current_devices.csv
CSV format
The CSV format that is used to determine the gateway is as follows:
IP address |
Descriptive Gateway Name |
username |
password |
Device Location |
---|---|---|---|---|
192.168.1.4 |
Tech-Services-MP114-FXO |
admin |
password |
Information Technology |
So the csv would look like:
current_devices.csv
192.168.1.4,Tech-Services-MP114-FXO,admin,password,Information Technology
The Script
voip_backup.py
#!/usr/bin/python import csv import string import os import sys import time import datetime today = datetime.date.today() csv_filename = '/etc/cron.daily/current_devices.csv' backup_dir = '/var/sipxdata/backup/external' datecode = str(today.strftime('%Y%m%d')) csv_dump = [] reader = csv.reader(open(csv_filename),delimiter=',') for row in reader: csv_attrib={} csv_attrib["IP"] = row[0] csv_attrib["name"] = row[1] csv_attrib["username"] = row[2] csv_attrib["password"] = row[3] csv_attrib["location"] = row[4] csv_dump.append(csv_attrib) r = 1 while r < len(csv_dump): if (os.path.exists(backup_dir + '/' + datecode + '/' + csv_dump[r]["location"]) == False): print "Directory doesn't exist....creating..." os.makedirs(backup_dir + '/' + datecode + '/' + csv_dump[r]["location"], 0755) if (os.path.isfile(backup_dir + '/' + datecode + '/' + csv_dump[r]["location"] + '/' + csv_dump[r]["name"] + '.ini') == True): print "File exists, removing..." os.remove(backup_dir + '/' + datecode + '/' + csv_dump[r]["location"] + '/' + csv_dump[r]["name"] + '.ini') os.system('curl --digest -C - -o ' + backup_dir + '/' + datecode + '/' + csv_dump[r]["location"] + '/' + csv_dump[r]["name"] + '.ini http://' + csv_dump[r]["username"] + ':' + csv_dump[r]["password"] + '@' + csv_dump[r]["IP"] + '/FS/BOARD.ini') r = r + 1
The code is attached here: voip_backup.py
If you want to do a daily backup simply place this script and the CSV file into /etc/cron.daily and make the script executable:
chmod +x /etc/cron.daily/voip_backup.py