Windows Server下备份文件脚本,每天定时把重要文件夹用rar压缩好了以后传到其他开了samba的文件服务器
脚本用到的rar程序下载,请到https://www.rarlab.com/download.htm
新建D:\backup.bat文件
rem 定义当前日期 类似2020-12-30这样的格式 set currentdate=%DATE:~0,10% set currentdate=%currentdate:/=-% rem 映射一个网络中的备份存放的服务器作为网络驱动器,可以用下面的代码映射,也可以在Windows里先映射好 net use B: \\192.168.1.8\backup\P "password" /user:"root" /PERSISTENT:NO rem 新建当前日期的文件夹(本地(D盘)和远程(B盘)都存一份) mkdir D:\backup\%currentdate% mkdir B:\backup\%currentdate% rem 用rar命令把需要备份的数据文件夹压缩成rar,rar的压缩效率还是挺好的,如果要压缩加密码 可以加-Ppassword参数 rem rar需要下载,不是winrar,命令行程序免费的 c:\rar a -ac -cl -dh -m5 -tk D:\backup\%currentdate%\backup001-%currentdate%.rar E:\data rem 把本地的备份,复制到远程 copy D:\backup\%currentdate%\backup001-%currentdate%.rar B:\backup\%currentdate%\backup001-%currentdate%.rar rem 如果要复制文件夹,采用xcopy xcopy /y C:\data\sourcePath D:\backup/dstPath /e rem 断开映射的驱动器 net use B: /del exit
还可以定期删除旧的备份文件,以删除3天前的备份文件为例
新建D:\delete_old_backup.bat
echo wscript.echo dateadd("d",-3,date) >%tmp%\tmp.vbs for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set m=%%j for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set d=%%k if %m% leq 9 set m=0%m% if %d% leq 9 set d=0%d% rem 先删除3天天的文件夹里的文件 del /f /s /q D:\backup\%y%-%m%-%d% rem 再删除文件夹 rmdir E:\backup\%y%-%m%-%d%
让脚本定期执行比较简单,只要打开windows的计划任务,新建每天执行脚本即可,可以查看:https://blog.terrynow.com/2021/06/16/windows-server-scheduled-tasks-intro-example-and-notes/
Linux下备份请看:https://blog.terrynow.com/2020/12/29/linux-bash-backup-script/
如果格式化日期和时间,有特别的需求,可以查看:https://blog.terrynow.com/2022/01/21/windows-cmd-bat-format-date-time-how-to/
文章评论