Всем привет! Я искал этот скрипт на форуме, но нашёл только кое-какие куски, которые не совсем подходили под мои задачи. Публикую его здесь просто для справки — может кому-то пригодится. У нас он в работе уже пару недель.
Этот скрипт создаёт локальную резервную копию и экспорт (мы запускаем его ежедневно), а затем загружает файлы на внешний FTP-сервер с добавлением даты к имени файла. При этом на локальной машине остаётся версия файлов, которая заменяется каждый день, чтобы не копилось много файлов и не заканчивалось место (если хотите, можете раскомментировать 3 строки и удалять локальные бэкапы).
Скопируйте и вставьте этот текст в свой скрипт.
### Задаём локальные переменные. Измените значение в кавычках "" под своё окружение. Кавычки не удаляйте.
:local ftpserver "FTP-SERVER-FQDN_or_IP-ADDRESS"
:local username "FTP-SERVER-USERNAME"
:local password "FTP-SERVER-PASSWORD"
### Устанавливаем переменные имён локального и удалённого файлов. Менять только если хотите сменить формат имени файла.
### Локальное имя файла всегда одинаковое, чтобы не копилось много файлов и не заканчивалось место, а "remote" — с датой.
:local hostname [/system identity get name]
:local date ([:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]);
:local localfilename "$hostname-Backup-Daily";
:local remotefilename "$hostname-$date";
### Для отладки раскомментируйте следующие строки (уберите решётки)
:log info "$localfilename";
:log info "$remotefilename";
:log info "$hostname";
:log info "$date";
### Запускаем бэкап
:log info "STARTING BACKUP";
### Создаём файл бэкапа и экспортируем настройки
export compact file="$localfilename"
/system backup save name="$localfilename"
:log info "Backup Created Successfully"
### Загружаем конфигурационный файл на FTP
/tool fetch address=$ftpserver src-path="$localfilename.backup" user=$username mode=ftp password=$password dst-path="$remotefilename.backup" upload=yes
:log info "Config Uploaded Successfully"
### Загружаем файл бэкапа на FTP
/tool fetch address=$ftpserver src-path="$localfilename.rsc" user=$username mode=ftp password=$password dst-path="$remotefilename.rsc" upload=yes
:log info "Backup Uploaded Successfully"
### Ждём 2 секунды перед следующими действиями
delay 2;
### Уберите решётки в следующих строках, если хотите удалить локальные бэкапы после загрузки. Я обычно их оставляю — удобно иметь их под рукой.
#/file remove "$localfilename.backup"
#/file remove "$localfilename.rsc"
#:log info "Local Backup Files Deleted Successfully"
### Завершаем бэкап
:log info "BACKUP FINISHED";
Если вам удобнее, скопируйте и вставьте следующий текст в терминал — он создаст скрипт и ежедневное расписание, которое стартует в 22:00. Поменяйте переменные в первых строках.
/system scheduler
add interval=1d name=Backup_Daily on-event="/system script run Backup_Daily" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=jan/01/1970 start-time=22:00:00
/system script
add dont-require-permissions=no name=Backup_Daily owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#
## Задаём локальные переменные. Измените значения в \"\" под своё окружение. Кавычки не удаляйте.
:local ftpserver \"FTP-SERVER-FQDN_or_IP-ADDRESS\"
:local username \"FTP-SERVER-USERNAME\"
:local password \"FTP-SERVER-PASSWORD\"
### Устанавливаем имена локальных и удалённых файлов. Меняйте только если хотите изменить формат имени файла.
### Локальное имя файла всегда одинаковое, чтобы не копилось много файлов и не заканчивалось место.
:local hostname [/system identity get name]
:local date ([:pick [/system clock get date] 7 11] \
. [:pick [/system clock get date] 0 3] \
. [:pick [/system clock get date] 4 6]);
:local localfilename \"\$hostname-Backup-Daily\";
:local remotefilename \"\$hostname-\$date\";
### Для отладки раскомментируйте строки ниже
:log info \"\$localfilename\";
:log info \"\$remotefilename\";
:log info \"\$hostname\";
:log info \"\$date\";
### Запуск бэкапа
:log info \"STARTING BACKUP\";
# Создаём файл бэкапа и экспортируем конфигурацию.
export compact file=\"\$localfilename\"
/system backup save name=\"\$localfilename\"
:log info \"Backup Created Successfully\"
# Загружаем конфигурационный файл на FTP.
/tool fetch address=\$ftpserver src-path=\"\$localfilename.backup\" user=\$username mode=ftp password=\$password dst-path=\"\$remotefilename.backup\" upload=yes
:log info \"Config Uploaded Successfully\"
# Загружаем файл бэкапа на FTP.
/tool fetch address=\$ftpserver src-path=\"\$localfilename.rsc\" user=\$username mode=ftp password=\$password dst-path=\"\$remotefilename.rsc\" upload=yes
:log info \"Backup Uploaded Successfully\"
### Ждём 2 секунды
delay 2;
### Уберите решётки ниже, чтобы удалять локальные файлы после загрузки
#/file remove \"\$localfilename.backup\"
#/file remove \"\$localfilename.rsc\"
#:log info \"Local Backup Files Deleted Successfully\"
### Завершаем бэкап
:log info \"BACKUP FINISHED\";
"
Надеюсь, это будет полезно всем.
Francesco Capuano
Этот скрипт создаёт локальную резервную копию и экспорт (мы запускаем его ежедневно), а затем загружает файлы на внешний FTP-сервер с добавлением даты к имени файла. При этом на локальной машине остаётся версия файлов, которая заменяется каждый день, чтобы не копилось много файлов и не заканчивалось место (если хотите, можете раскомментировать 3 строки и удалять локальные бэкапы).
Скопируйте и вставьте этот текст в свой скрипт.
### Задаём локальные переменные. Измените значение в кавычках "" под своё окружение. Кавычки не удаляйте.
:local ftpserver "FTP-SERVER-FQDN_or_IP-ADDRESS"
:local username "FTP-SERVER-USERNAME"
:local password "FTP-SERVER-PASSWORD"
### Устанавливаем переменные имён локального и удалённого файлов. Менять только если хотите сменить формат имени файла.
### Локальное имя файла всегда одинаковое, чтобы не копилось много файлов и не заканчивалось место, а "remote" — с датой.
:local hostname [/system identity get name]
:local date ([:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]);
:local localfilename "$hostname-Backup-Daily";
:local remotefilename "$hostname-$date";
### Для отладки раскомментируйте следующие строки (уберите решётки)
:log info "$localfilename";
:log info "$remotefilename";
:log info "$hostname";
:log info "$date";
### Запускаем бэкап
:log info "STARTING BACKUP";
### Создаём файл бэкапа и экспортируем настройки
export compact file="$localfilename"
/system backup save name="$localfilename"
:log info "Backup Created Successfully"
### Загружаем конфигурационный файл на FTP
/tool fetch address=$ftpserver src-path="$localfilename.backup" user=$username mode=ftp password=$password dst-path="$remotefilename.backup" upload=yes
:log info "Config Uploaded Successfully"
### Загружаем файл бэкапа на FTP
/tool fetch address=$ftpserver src-path="$localfilename.rsc" user=$username mode=ftp password=$password dst-path="$remotefilename.rsc" upload=yes
:log info "Backup Uploaded Successfully"
### Ждём 2 секунды перед следующими действиями
delay 2;
### Уберите решётки в следующих строках, если хотите удалить локальные бэкапы после загрузки. Я обычно их оставляю — удобно иметь их под рукой.
#/file remove "$localfilename.backup"
#/file remove "$localfilename.rsc"
#:log info "Local Backup Files Deleted Successfully"
### Завершаем бэкап
:log info "BACKUP FINISHED";
Если вам удобнее, скопируйте и вставьте следующий текст в терминал — он создаст скрипт и ежедневное расписание, которое стартует в 22:00. Поменяйте переменные в первых строках.
/system scheduler
add interval=1d name=Backup_Daily on-event="/system script run Backup_Daily" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=jan/01/1970 start-time=22:00:00
/system script
add dont-require-permissions=no name=Backup_Daily owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#
## Задаём локальные переменные. Измените значения в \"\" под своё окружение. Кавычки не удаляйте.
:local ftpserver \"FTP-SERVER-FQDN_or_IP-ADDRESS\"
:local username \"FTP-SERVER-USERNAME\"
:local password \"FTP-SERVER-PASSWORD\"
### Устанавливаем имена локальных и удалённых файлов. Меняйте только если хотите изменить формат имени файла.
### Локальное имя файла всегда одинаковое, чтобы не копилось много файлов и не заканчивалось место.
:local hostname [/system identity get name]
:local date ([:pick [/system clock get date] 7 11] \
. [:pick [/system clock get date] 0 3] \
. [:pick [/system clock get date] 4 6]);
:local localfilename \"\$hostname-Backup-Daily\";
:local remotefilename \"\$hostname-\$date\";
### Для отладки раскомментируйте строки ниже
:log info \"\$localfilename\";
:log info \"\$remotefilename\";
:log info \"\$hostname\";
:log info \"\$date\";
### Запуск бэкапа
:log info \"STARTING BACKUP\";
# Создаём файл бэкапа и экспортируем конфигурацию.
export compact file=\"\$localfilename\"
/system backup save name=\"\$localfilename\"
:log info \"Backup Created Successfully\"
# Загружаем конфигурационный файл на FTP.
/tool fetch address=\$ftpserver src-path=\"\$localfilename.backup\" user=\$username mode=ftp password=\$password dst-path=\"\$remotefilename.backup\" upload=yes
:log info \"Config Uploaded Successfully\"
# Загружаем файл бэкапа на FTP.
/tool fetch address=\$ftpserver src-path=\"\$localfilename.rsc\" user=\$username mode=ftp password=\$password dst-path=\"\$remotefilename.rsc\" upload=yes
:log info \"Backup Uploaded Successfully\"
### Ждём 2 секунды
delay 2;
### Уберите решётки ниже, чтобы удалять локальные файлы после загрузки
#/file remove \"\$localfilename.backup\"
#/file remove \"\$localfilename.rsc\"
#:log info \"Local Backup Files Deleted Successfully\"
### Завершаем бэкап
:log info \"BACKUP FINISHED\";
"
Надеюсь, это будет полезно всем.
Francesco Capuano
