Привет! Сегодня полезный скрипт для автоматического резервного копирования системы и базы данных UserManager — ежедневно, с новым именем файла по времени и дате! Ежедневная загрузка на внешний FTP! Ежедневная очистка! Экономим место — никаких дубликатов в Mikrotik!
Сначала сам скрипт:
/system script
add name=FTP-Backup policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive source="# автоматическое резервное копирование системы и базы данных UM на внешний FTP\r\
\n# Получаем время\r\
\n:local ts [/system clock get time]\r\
\n:set ts ([:pick \$ts 0 2].[:pick \$ts 3 5].[:pick \$ts 6 8])\r\
\n# Получаем дату\r\
\n:local ds [/system clock get date]\r\
\n:set ds ([:pick \$ds 7 11].[:pick \$ds 0 3].[:pick \$ds 4 6])\r\
\n# Генерируем имя файла для резервной копии UserManager — формат: UMDB-ServerName-Дата-Время\r\
\n:local fname (\"/UMDB-\".[/system identity get name].\"-\".\$ds.\"-\".\$ts.\".umb\")\r\
\n# Генерируем имя файла для резервной копии системы — формат: UMDB-ServerName-Дата-Время\r\
\n:local fname1 (\"/UMDB-\".[/system identity get name].\"-\".\$ds.\"-\".\$ts.\".backup\")\r\
\n# выше — способ получить уникальные имена файлов для UserManagerDB и системы\r\
\n/tool user-manager database save name=\$fname\r\
\n:log info message=UserManagerBackupFinished;\r\
\n/system backup save name=\$fname1\r\
\n:log info message=SystemBackupFinished;\r\
\n# Загрузка UserManagerDB на внешний FTP — замените адрес, пользователя и пароль на свои\r\
\n/tool fetch address=www.1.com src-path=\$fname user=user mode=ftp password=pass dst-path=/ upload=yes\r\
\n# Загрузка резервной копии системы на внешний FTP — замените адрес, пользователя и пароль на свои\r\
\n/tool fetch address=www.1.com src-path=\$fname1 user=user mode=ftp password=pass dst-path=/ upload=yes\r\
\n# Пауза для завершения загрузки — увеличьте, если файлы большие\r\
\n:delay 60s;\r\
\n# Удаление файлов с именами, начинающимися на UMDB-\r\
\n:foreach i in=[/file find] do={:if ([:typeof [:find [/file get \$i name] \"UMDB-\"]]!=\"nil\") do={/file remove \$i}}\r\
\n:log info message=UserMangerBackup-SystemBackup-TempRemoved;\r\
\n:log info message=UserManger-SystemBackup2CentOS-Finished;"
Не забудьте поменять адрес, пользователя и пароль на свой FTP-сервер в двух местах:
1 - /tool fetch address= src-path=$fname user=user mode=ftp password=pass dst-path=/ upload=yes
2 - /tool fetch address= src-path=$fname1 user=user mode=ftp password=pass dst-path=/ upload=yes
Последний шаг — настроить планировщик, чтобы запускать этот скрипт с нужным интервалом. Команда ниже гарантирует ежедневный запуск:
/system scheduler
add comment="" disabled=no interval=1d name="System-UM DB- FTP backup" on-event=FTP-Backup start-date=jan/01/1970 start-time=00:00:00
С уважением, Muntathar
Сначала сам скрипт:
/system script
add name=FTP-Backup policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive source="# автоматическое резервное копирование системы и базы данных UM на внешний FTP\r\
\n# Получаем время\r\
\n:local ts [/system clock get time]\r\
\n:set ts ([:pick \$ts 0 2].[:pick \$ts 3 5].[:pick \$ts 6 8])\r\
\n# Получаем дату\r\
\n:local ds [/system clock get date]\r\
\n:set ds ([:pick \$ds 7 11].[:pick \$ds 0 3].[:pick \$ds 4 6])\r\
\n# Генерируем имя файла для резервной копии UserManager — формат: UMDB-ServerName-Дата-Время\r\
\n:local fname (\"/UMDB-\".[/system identity get name].\"-\".\$ds.\"-\".\$ts.\".umb\")\r\
\n# Генерируем имя файла для резервной копии системы — формат: UMDB-ServerName-Дата-Время\r\
\n:local fname1 (\"/UMDB-\".[/system identity get name].\"-\".\$ds.\"-\".\$ts.\".backup\")\r\
\n# выше — способ получить уникальные имена файлов для UserManagerDB и системы\r\
\n/tool user-manager database save name=\$fname\r\
\n:log info message=UserManagerBackupFinished;\r\
\n/system backup save name=\$fname1\r\
\n:log info message=SystemBackupFinished;\r\
\n# Загрузка UserManagerDB на внешний FTP — замените адрес, пользователя и пароль на свои\r\
\n/tool fetch address=www.1.com src-path=\$fname user=user mode=ftp password=pass dst-path=/ upload=yes\r\
\n# Загрузка резервной копии системы на внешний FTP — замените адрес, пользователя и пароль на свои\r\
\n/tool fetch address=www.1.com src-path=\$fname1 user=user mode=ftp password=pass dst-path=/ upload=yes\r\
\n# Пауза для завершения загрузки — увеличьте, если файлы большие\r\
\n:delay 60s;\r\
\n# Удаление файлов с именами, начинающимися на UMDB-\r\
\n:foreach i in=[/file find] do={:if ([:typeof [:find [/file get \$i name] \"UMDB-\"]]!=\"nil\") do={/file remove \$i}}\r\
\n:log info message=UserMangerBackup-SystemBackup-TempRemoved;\r\
\n:log info message=UserManger-SystemBackup2CentOS-Finished;"
Не забудьте поменять адрес, пользователя и пароль на свой FTP-сервер в двух местах:
1 - /tool fetch address= src-path=$fname user=user mode=ftp password=pass dst-path=/ upload=yes
2 - /tool fetch address= src-path=$fname1 user=user mode=ftp password=pass dst-path=/ upload=yes
Последний шаг — настроить планировщик, чтобы запускать этот скрипт с нужным интервалом. Команда ниже гарантирует ежедневный запуск:
/system scheduler
add comment="" disabled=no interval=1d name="System-UM DB- FTP backup" on-event=FTP-Backup start-date=jan/01/1970 start-time=00:00:00
С уважением, Muntathar
