Били грозы как-то наши Ubiquiti (UBNT) антенны, которые потом приходилось ремонтировать, менять и естественно наново настраивать. Поэтому решил сделать автоматическое копирование конфигурации.
Для начала установим утилиту которая потом поможет в скрипте вводить пароль:
sudo apt install sshpass
Ну и собственно пример моего скрипта:
#!/bin/bash
# Создаем директорию с текущей датой и переходим в неё
mkdir /home/backups/devices/ubnt/`date +%Y-%m-%d`
cd /home/backups/devices/ubnt/`date +%Y-%m-%d`
# Укажем пароль
PASS=text
# Делаем копию конфигурационного файла в эту директорию
sudo sshpass -p $PASS scp -oStrictHostKeyChecking=no -oConnectTimeout=3 ixnfo@192.168.1.20:/tmp/system.cfg /home/backups/devices/ubnt/`date +%Y-%m-%d`/20_system.cfg
sudo sshpass -p $PASS scp -oStrictHostKeyChecking=no -oConnectTimeout=3 ixnfo@192.168.1.21:/tmp/system.cfg /home/backups/devices/ubnt/`date +%Y-%m-%d`/21_system.cfg
# и так далее для других антенн
Содержимое указанного выше скрипта поместим в пустой файл, назовем как удобно и добавим ссылку в планировщик /etc/crontab, который будет выполнять его каждый день например в 4 утра:
0 4 * * * root /home/backups/backups_cfg.sh > /dev/null 2>&1
В результате ежедневно будет создаваться директория с датой (ГОД-МЕСЯЦ-ДЕНЬ) и в ней будут резервные копии конфигурационных файлов за этот день.
Если устройство заменено другим и имеет тот же IP, нужно удалить старый ключ командой (можно добавить в скрипт для каждого устройства):
ssh-keygen -f "/root/.ssh/known_hosts" -R 192.168.1.20
На устройстве также можно выполнить команду отправки конфигурации на TFTP сервер и исходя их этого придумать скрипт, жаль что SNMP OID для этой команды я не нашел, например:
tftp -p -l /tmp/system.cfg -r test.cfg 192.168.2.2