Backup по SSH с логированием изменений

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
Engineer_MikroTik
Сообщения: 6
Зарегистрирован: 23 окт 2023, 08:57
Контактная информация:

Скрипт подключается по SSH к MikroTik, делает export, сравнивает с существующим бэкапом. Если различий нет - бэкап не делается, полученный .rsc сохраняется.

Если различия есть - делается бинарный .backup и файл diff с различиями с предыдущим .rsc

Оригинал скрипта:
https://настройка-микротик.рф/backup-ssh-diff/

Ставим пакет:

Код: Выделить всё

apt-get install sshpass
Создаем директорию и файл

Код: Выделить всё

mkdir -p /backup/scripts/
nano /backup/scripts/RouterOS.sh
Копируем код

Код: Выделить всё

#!/bin/sh

routername=$1
sshhost=$2
sshport=$3
sshuser="backup"
sshpassword="dsfr4wdfglhiklhiluawhfroiy8loasr5dgr6"

localpath="/backup/RouterOS"/$sshhost/$routername
mkdir $localpath

precedent_export_name="$routername-config-export-precedent.rsc"

current_export_name="$routername-config-export-current.rsc"
current_backup_name="$routername-config-backup-current.backup"
diff_export_name="$routername-config-export-diff.rsc"

current_export_name_history="$routername-$(date +%Y-%m-%d-%H-%M)-config-export-current.rsc"
current_backup_name_history="$routername-$(date +%Y-%m-%d-%H-%M)-config-backup-current.backup"
diff_export_name_history="$routername-$(date +%Y-%m-%d-%H-%M)-config-export-diff.rsc"

mkdir -p $localpath/history
cd $localpath

sshpass -p $sshpassword ssh -o StrictHostKeyChecking=no $sshuser@$sshhost -p $sshport export >$current_export_name

diff -I "RouterOS" $current_export_name $localpath/$precedent_export_name >$diff_export_name

if [ "$?" -ne "0" ]; then
sshpass -p $sshpassword ssh -o StrictHostKeyChecking=no $sshuser@$sshhost -p $sshport export file=$current_export_name
sshpass -p $sshpassword ssh -o StrictHostKeyChecking=no $sshuser@$sshhost -p $sshport system backup save name=$current_backup_name
sshpass -p $sshpassword sftp -o StrictHostKeyChecking=no -oPort=$sshport $sshuser@$sshhost:$current_backup_name

rm -f $precedent_export_name

cp $current_export_name $localpath/history/$current_export_name_history
cp $current_backup_name $localpath/history/$current_backup_name_history
mv $diff_export_name $localpath/history/$diff_export_name_history

mv -f $current_export_name $precedent_export_name
rm -f $diff_export_name
exit 1

fi

mv -f $current_export_name $precedent_export_name
rm -f $diff_export_name
exit 0
Делаем исполняемым

Код: Выделить всё

chmod +x /backup/scripts/RouterOS.sh
Пример вызова

Код: Выделить всё

/backup/scripts/RouterOS.sh Название IP Порт


MTCNA, MTCSWE, MTCWE, MTCEWE, MTCTCE, MTCRE, MTCUME, MTCINE, MTCIPv6E, MTCSE
https://настройка-микротик.рф
Аватара пользователя
podarok66
Модератор
Сообщения: 4361
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Штука крайне интересная. Вопрос, почему именно sshpass? Чем плох доступ по ключам?


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Engineer_MikroTik
Сообщения: 6
Зарегистрирован: 23 окт 2023, 08:57
Контактная информация:

podarok66 писал(а): 25 окт 2023, 19:06 Штука крайне интересная. Вопрос, почему именно sshpass? Чем плох доступ по ключам?
Ключи можно реализовать, но в корп сети доменная авторизация, создал отдельного пользователя и через него собрал.


MTCNA, MTCSWE, MTCWE, MTCEWE, MTCTCE, MTCRE, MTCUME, MTCINE, MTCIPv6E, MTCSE
https://настройка-микротик.рф
Ответить