windows/linux自動備份mysql並刪除7天前的備份
自動備份mysql資料庫指令碼程式
備份會不斷佔用磁碟大小,需要刪除早期的備份
一.windows系統
1.D盤根目錄建立bkupmysql.bat檔案,複製以下內容
@echo off
cls
set dbuser=root
set dbpass=passwd
set DaysAgo=7
set mysqlpath=d:\mysqlbak
set mysql=D:\SOFT_PHP_PACKAGE\mysql\bin\mysql.exe
set mysqldump=D:\SOFT_PHP_PACKAGE\mysql\bin\mysqldump.exe
set dt=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%
set logfile=d:\bkinfo.log
set logfail=d:\bkfail.log
if not exist "%mysqlpath%" md "%mysqlpath%"
for /f "delims=" %%i in ('%mysql% -u%dbuser% -p%dbpass% -e"show databases"^|findstr -v "^Database$ ^test$ ^information_schema$ ^performance_schema$ ^mysql$"') do (
%mysqldump% -f -u%dbuser% -p%dbpass% %%i >%mysqlpath%\%%i-%dt%.sql 2>>%logfail%
If %errorlevel%==0 (
forfiles /p %mysqlpath% /s /m %%i-*.* /d -%DaysAgo% /c "cmd /c del /f /q /a @path"
echo %date% sucess %%i >>%logfile%
) else (
echo %date% fail %%i >>%logfile%
)
)
2.新增任務計劃每天4點執行
schtasks /create /tn "bkupmysql" /ru system /tr d:\bkupmysql.bat /sc daily /st 04:00
二.linux系統
#!/bin/bash
dbuser='root'
dbpass='passwd'
DaysAgo=7
mysqlpath='/home/backup/mysql'
mysql='/www/wdlinux/mysql/bin/mysql'
mysqldump='/www/wdlinux/mysql/bin/mysqldump'
exclude_db='^Database$\|^mysql$\|^information_schema$\|^performance_schema$\|^test$'
logfile='/root/bkinfo.log'
#logfail='/root/bkfail.log'
now=`date "+%Y-%m-%d %H:%M:%S"`
echo $now
test -e $mysqlpath||mkdir -p $mysqlpath
db_array=`$mysql -u$dbuser -p$dbpass -e'show databases;'|grep -v $exclude_db`
if [ $? -eq 0 ];then
for dbname in ${db_array[*]}
do
$mysqldump -f -u$dbuser -p$dbpass $dbname >$mysqlpath/$dbname-$(date +%Y%m%d%H%M%S).sql
if [ $? -eq 0 ];then
find $mysqlpath -type f -mtime +$[DaysAgo-1] -name "$dbname-*" -exec rm -f {} \;
echo $now 'sucess' $dbname >> $logfile
else
echo $now 'fail ' $dbname >> $logfile
fi
done
else
echo $now 'All fail' >> $logfile
fi
2.新增任務計劃每天4點執行
crontab -e
0 4 * * * /bin/sh /root/bkupmysql.sh >>/root/bkfail.log 2>&1
相關文章
- Linux實現定時備份MySQL資料庫並刪除30天前的備份檔案LinuxMySql資料庫
- Linux自動備份MySQLLinuxMySql
- MySQL自動備份指令碼30天自動刪除MySql指令碼
- Linux下Mysql定時自動備份LinuxMySql
- Windows 10刪除備份檔案方法Windows
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- mysql每日備份for LinuxMySqlLinux
- Mysql資料庫自動備份MySql資料庫
- GitLab的自動備份、清理備份與恢復Gitlab
- mysql的冷備份與熱備份MySql
- Windows環境PgSql自動備份指令碼WindowsSQL指令碼
- win10怎麼刪除舊系統備份_win10如何刪除備份檔案Win10
- MySQL 自動備份併傳送到郵箱MySql
- MySQL儲存安全(TDE加密、自動備份)MySql加密
- 自動備份指令碼指令碼
- 初探MySQL資料備份及備份原理MySql
- Mysql備份與恢復(1)---物理備份MySql
- 用友U8設定了自動備份,備份失效
- MySQL的冷備份和熱備份概念理解(轉)MySql
- Linux mysql 備份和匯入命令LinuxMySql
- MySQL:xtrabackup備份MySql
- Mysql備份系列MySql
- Java備份MySQLJavaMySql
- MySQL:Windows下分庫備份指令碼MySqlWindows指令碼
- MySQL備份與主備配置MySql
- Mysql備份與恢復(2)---邏輯備份MySql
- Windows備份工具——FreeFileSyncWindows
- find 命令刪除冗餘 Nginx 錯誤日誌並實現備份Nginx
- Homestead 新功能 —— 銷燬前自動備份資料庫資料庫
- DM7使用DMRMAN工具刪除備份集
- xtrabackup備份mysql以及建立自動定時任務MySql
- mysql全量備份並中文不亂碼MySql
- 熱備份/冷備份/ 冷啟動/熱啟動
- oracle自動冷備份指令碼Oracle指令碼
- 使用 restic 和 systemd 自動備份REST
- RMAN自動備份任務新增
- Mysql備份恢復MySql
- mysql備份指令碼MySql指令碼