Windows的局域网文件夹备份

使用对象:在同一局域网下的Windows电脑

环境配置:局域网电脑设置固定IP; 接收备份电脑设置共享文件夹

成品配置 配置情况: 源数据电脑A:IP:192.168.0.115 数据库备份文件所在文件夹: D:\dbbackup 数据库备份文件再压缩文件夹: D:\dbbackupzip 数据库备份文件压缩格式: Oracledb+日期+时间; 目标电脑B:IP:192.168.0.162 目标电脑B备份文件夹 D:\dbbackupzip

备份简介: 1.将A电脑下的D:\dbbackup文件夹压缩为dbbackup.zip 放在D:\dbbackupzip下,命名为Oracledb+日期+时间的形式; 2.将上述1.中备份的A电脑下D:\dbbackupzip文件夹中创建时间为今天的zip文件复制到B电脑下的D:\dbbackupzip文件夹中; 3.A.B电脑自动清理10天前的旧文件; 4.上述操作需要日志记录。

将下面文本另存为 ==D:\oraclebackupforwin\d_bak.bat\d_bak.bat==

@echo off
setlocal enabledelayedexpansion

REM 设置变量
set SOURCE_DIR=D:\dbbackup
set BACKUP_DIR=D:\dbbackupzip
set REMOTE_IP=192.168.0.162
set REMOTE_SHARE=dbbackupzip
set LOG_FILE=D:\oraclebackupforwin\backup_log.txt

REM 创建备份目录
if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"

REM 记录开始时间
echo [%date% %time%] 开始备份操作 >> "%LOG_FILE%"

REM 获取当前日期和时间
set DATETIME=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%
set DATETIME=%DATETIME: =0%

REM 生成文件名
set FILENAME=Oracledb%DATETIME%.zip
set ZIP_PATH=%BACKUP_DIR%\%FILENAME%

echo 开始压缩备份文件...
echo 源目录: %SOURCE_DIR%
echo 备份文件: %ZIP_PATH%

REM 使用PowerShell压缩
PowerShell -Command "if (Test-Path '%SOURCE_DIR%') { Add-Type -Assembly 'System.IO.Compression.FileSystem'; [System.IO.Compression.ZipFile]::CreateFromDirectory('%SOURCE_DIR%', '%ZIP_PATH%') } else { Write-Error '源目录不存在' }"

if %errorlevel% neq 0 (
    echo 压缩失败!
    echo [%date% %time%] 压缩失败 >> "%LOG_FILE%"
    pause
    exit /b 1
)

echo 备份文件创建成功: %FILENAME%
echo [%date% %time%] 备份文件创建成功: %FILENAME% >> "%LOG_FILE%"

REM 复制到目标电脑的共享文件夹
echo 正在复制到目标电脑...
copy "%ZIP_PATH%" "\\%REMOTE_IP%\%REMOTE_SHARE%\" /Y

if %errorlevel% neq 0 (
    echo 复制失败,请检查网络连接和共享设置
    echo 请确保可以访问: \\%REMOTE_IP%\%REMOTE_SHARE%\
    echo [%date% %time%] 复制失败 >> "%LOG_FILE%"
    pause
    exit /b 1
)

echo 备份和复制操作完成!
echo 文件已保存到: \\%REMOTE_IP%\%REMOTE_SHARE%\%FILENAME%
echo [%date% %time%] 备份复制完成: \\%REMOTE_IP%\%REMOTE_SHARE%\%FILENAME% >> "%LOG_FILE%"

REM ========== 新增:删除10天前的备份文件 ==========

echo.
echo 开始清理10天前的备份文件...
echo [%date% %time%] 开始清理10天前的备份文件 >> "%LOG_FILE%"

REM 删除A电脑本地10天前的备份文件
echo 清理A电脑本地备份文件...
forfiles /p "%BACKUP_DIR%" /m "Oracledb*.zip" /d -10 /c "cmd /c echo 删除本地文件: @file && echo [%date% %time%] 删除本地文件: @file >> \"%LOG_FILE%\" && del @file"

REM 删除B电脑10天前的备份文件
echo 清理B电脑远程备份文件...
forfiles /p "\\%REMOTE_IP%\%REMOTE_SHARE%" /m "Oracledb*.zip" /d -10 /c "cmd /c echo 删除远程文件: @file && echo [%date% %time%] 删除远程文件: @file >> \"%LOG_FILE%\" && del @file"

echo 清理完成!
echo [%date% %time%] 清理完成 >> "%LOG_FILE%"

echo.
echo 所有操作已完成!
echo 详细日志请查看: %LOG_FILE%
pause

修改目标电脑IP: set REMOTE_IP=192.168.0.162 修改目标电脑文件夹 set BACKUP_DIR=D:\dbbackupzip 修改源文件文件夹 set SOURCE_DIR=D:\dbbackup%%

以管理员身份运行命令提示符 CMD

执行命令:

schtasks /create /tn "Oracle每日备份" /tr "D:\oraclebackupforwin\d_bak.bat" /sc daily /st 12:00 /ru System /f

这样设置后,系统就会每天中午12点自动执行您的备份脚本了, 修改备份时间:12:00 修改备份文件所在目录:D:\oraclebackupforwin\d_bak.bat

验证任务:

schtasks /query /tn "Oracle每日备份"

==整体文件如下==:

双机备份

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇