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...