Недавно начал работать с этими коммутаторами и встал вопрос резервного копирования конфигов. Казалось бы у cisco с этим все прекрасно, ведь есть archive и kron, но не тут-то было
Не буду ходить вокруг да около, но мне не понравилась перспектива копирования конфига по TFTP-протоколу и я начал искать возможность засекурить это дело. Нашел SCP, но он не понимал моих паролей. Вообщем, я пошел другим путем и решил собирать конфиги на linux-сервер и для этого написал следующий скрипт на языке Python 3.5
#!/usr/bin/python3.5 import os import syslog import subprocess from datetime import datetime from pathlib import Path devices={ 'sw-dev1': {'ip':'10.10.10.1', 'username':'backup', 'password':'secret-pass'}, 'sw-dev2': {'ip':'10.10.10.2', 'username':'backup', 'password':'secret-pass'}, } for dev_name, dev_info in devices.items(): dt = datetime.now() cdate = dt.strftime("%Y-%m-%d-%H:%M:%S") cym = dt.strftime("%Y-%m") syslog.syslog("[BACKUP-CISCO] Started backuping %s with IP %s" % (dev_name, dev_info['ip'])) code = subprocess.run("sshpass -p '%s' scp %s@%s:config.text /tmp/%s >> /var/log/backup-cisco.log" % (dev_info['password'], dev_info['username'], dev_info['ip'], dev_name), shell=True) if code.returncode == 0: Path("/var/backups/cisco/config/%s/" % (cym)).mkdir(parents=True, exist_ok=True) os.rename("/tmp/%s" % (dev_name), "/var/backups/cisco/config/%s/%s-%s" % (cym, dev_name, cdate)) syslog.syslog("[BACKUP-CISCO] Backuping %s is OK. Result file: %s-%s" % (dev_name, dev_name, cdate)) else: syslog.syslog(syslog.LOG_ERR, "[BACKUP-CISCO] Backuping %s is NOT OK!" % (dev_name))
На железках необходимо создать юзер 15-го уровня для доступа к конфигу и включить scp:
username backup privilege 15 secret 0 secret-pass ip scp server enable
На машине, где будете запускать скрипт, установите пакет
sshpass
Всем удачного Дня Системного Администратора!