autobak.bat 1015 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. @echo off
  2. ::title DBAutobackup
  3. :: 过期文件删除,-7代表删除7天前的备份,请勿改成正数,否则无法备份
  4. set expirationDay=-7
  5. :: 执行时间点,参考值:0~23(24小时制)
  6. set baktime=0
  7. :: 数据库IP或域名地址,服务器地址本机无需修改
  8. set host="127.0.0.1"
  9. :: 数据库端口,服务器端口默认无需修改
  10. set port=9100
  11. set mongodumpPath=%~sdp0
  12. set intervaltime=100
  13. cd /d %mongodumpPath%
  14. if not exist %mongodumpPath%dump mkdir %mongodumpPath%dump
  15. :while
  16. if %time:~0,2% == %baktime% (
  17. if not exist %mongodumpPath%dump\%date:~0,4%-%date:~5,2%-%date:~8,2%.bak (
  18. echo Start backup
  19. mongodump /host:%host% /port:%port% /gzip /archive:%mongodumpPath%dump\%date:~0,4%-%date:~5,2%-%date:~8,2%.bak && echo backup success || echo backup error
  20. Forfiles /p %mongodumpPath%dump\ /d %expirationDay% /m *.bak /c "cmd /c del /q /f @file" 2>nul | cmd /c ""
  21. ) else (
  22. echo It has been backed up.
  23. )
  24. ) else (
  25. echo Current time is %time:~0,2%:%time:~3,2%,backup time is %baktime%:00.
  26. )
  27. timeout /t %intervaltime% /NOBREAK | cmd /c ""
  28. cls
  29. goto :while