Â
Audiocodes Gateways Backup Script
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