利用任務計畫和bat指令碼備份Mysql資料庫

2021-09-16 12:03:17 字數 1749 閱讀 2509

rem *******************************備份資料庫開始*****************************

@echo off

%注釋內容:計算昨天日期(網上抄的)%

set ye=%date:~0,4%

set mo=%date:~5,2%

set da=%date:~8,2%

set dg=1

set/a vy1=%ye% %% 400

set/a vy2=%ye% %% 4

set/a vy3=%ye% %% 100

if %vy1%==0 (set var=true) else (if %vy2%==0 (if %vy3%==0 (set var=false) else (set var=true)) else (set var=false))

set ly=%ye%

set lm=%mo%

if %mo:~0,1%==0 (set mo=%mo:~1,1%)

if %da:~0,1%==0 (set da=%da:~1,1%)

if %da% gtr %dg% (set/a ld=%da%-%dg%) else (

if %mo%==1 (set/a ly=%ye%-1) & (set/a lm=12) & (set/a ld=31+%da%-%dg%) else (

set/a lm=%mo%-1

if %mo%==3 (if %var%==false (set/a ld=28+%da%-%dg%) else (set/a ld=29+%da%-%dg%))

for %%a in (2 4 6 8 9 11) do (if "%mo%"=="%%a" (set/a ld=31+%da%-%dg%))

for %%b in (5 7 10 12) do (if "%mo%"=="%%b" (set/a ld=30+%da%-%dg%))))

if %lm% lss 10 set lm=0%lm:~-1%

if %ld% lss 10 set ld=0%ld:~-1%

set strlstdt=%ly%%lm%%ld%

%注釋內容:設定路徑 資料庫名字%

set "bakpath=d:\databak"

set "bakdata=cmh"

set "ymd=%date:~,4%%date:~5,2%%date:~8,2%"

@echo 刪除昨天資料庫為 %bakpath%\data_%bakdata%_%strlstdt%.sql

del /f /s /q %bakpath%\data_%bakdata%_%strlstdt%.sql

@echo 備份的路徑為 %bakpath%

@echo 備份的資料庫為 %bakdata%

@echo 備份的完整檔名 %bakpath%\data_%bakdata%_%ymd%.sql

c:cd c:\program files\mysql\mysql server 8.0\bin

mysqldump --opt -u root --password=****** %bakdata% > %bakpath%\data_%bakdata%_%ymd%.sql

@echo on

rem *******************************備份資料庫結束*****************************

儲存bat,利用windows任務計畫定時執行。

windows任務計畫執行sql指令碼備份資料庫

一 編寫sql指令碼 declare dbs table rownum intidentity 1,1 primary key,dbname nvarchar 200 bakpath as n e dbbackup dbname dbname replace replace replace conv...

利用BAT指令碼加入域和退出域

加入域的指令碼 echo off netdom join computername domain test.com userd user passwordd pass reboot 5 退出域的指令碼 echo off netdom remove computername domain test.c...

Linux 指令碼控制和計畫任務

指令碼控制在我們使用指令碼做備份時 可能不希望使用者對指令碼做終端操作 這就需要我們做指令碼捕獲訊號後的處理 trap 命令 signal 可以讓指令碼接受到signal訊號時 執行 裡面的命令 trap echo sig15 15 代表收到15號訊號時 執行echo sig15 9號訊號 kill...