Windows Server备份文件,以及定期删除旧备份的脚本示例

2020-12-30 1425点热度 0人点赞 0条评论

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/

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论