访脚本的主要功能是,将备份文件备份到ftp空间

方法如下;
1、在/System Script下添加如下脚本内容

# 自动备份到FTP

:local saveUserDb true;     # 是否保存用户数据库转储
:local saveSysBackup true;  # 是否保存整个系统备份
:local encryptSysBackup false; # 是否将系统备份(RouterOS的6.13及更高版本)加密
:local saveRawExport true;  # 无论是出口整体配置为纯文本.RSC脚本

:local myFtp "ftpserver.tld" # FTP服务器地址
:local myFtpPort 21          # FTP服务器端口

:local myFtpUser "my-mikrotik"      # FTP用户名
:local myFtpPass "SecurePassword"   # FTP密码

:local ts [/system clock get time]
:set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])

:local ds [/system clock get date]
:set ds ([:pick $ds 7 11].[:pick $ds 0 3].[:pick $ds 4 6])

:local fname ("/BACKUP-".[/system identity get name]."-".$ds."-".$ts)

:if ($saveUserDb) do={
  /tool user-manager database save name=($fname.".umb")
  :log warning ("User Manager 数据库备份完成");
}

:if ($saveSysBackup) do={
	:if ($encryptSysBackup) do={
  	/system backup save name=($fname.".backup");
  }
  else={
    /system backup save name=($fname.".backup") dont-encrypt;
  }
	:log warning ("系统备份完成");
}

if ($saveRawExport) do={
	/export file=($fname.".rsc")
	:log warning ("原配置脚本导出rsc文件完成");
}

:if ($saveUserDb) do={
	/tool fetch address=$myFtp port=$myFtpPort src-path=($fname.".umb") user=$myFtpUser mode=ftp password=$myFtpPass dst-path=($fname.".umb") upload=yes
}

:if ($saveSysBackup) do={
	/tool fetch address=$myFtp port=$myFtpPort src-path=($fname.".backup") user=$myFtpUser mode=ftp password=$myFtpPass dst-path=($fname.".backup") upload=yes
}

:if ($saveRawExport) do={
	/tool fetch address=$myFtp port=$myFtpPort src-path=($fname.".rsc") user=$myFtpUser mode=ftp password=$myFtpPass dst-path=($fname.".rsc") upload=yes
}

:delay 5s;

:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] "BACKUP-"]]!="nil") do={/file remove $i}}
:log warning (成功删除临时备份文件")
:log warning (自动备份成功完成")

脚本名称命名为autoftp

2、在/System Scheduler下添加一个脚本定时,名称为autoftp,内容为autoftp,执行时间为1天(时间可自定义)

代码引自网络资源

参与评论