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資料庫
- MySQL自動備份指令碼30天自動刪除MySql指令碼
- Linux自動備份MySQLLinuxMySql
- 在linux中資料庫實現每天自動備份資料及自動刪除5天前備份資料(常用)Linux資料庫
- exp自動備份on linux and on windowsLinuxWindows
- Mysql--Linux Mysql定期自動備份MySqlLinux
- Windows 10刪除備份檔案方法Windows
- Linux下Mysql定時自動備份LinuxMySql
- MySQL自動備份策略的方案MySql
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- MySQL自動備份指令碼MySql指令碼
- linux下tar檔案後備份到FTP並刪除LinuxFTP
- rman 自動備份指令碼-windows指令碼Windows
- Mysql資料庫自動備份MySql資料庫
- window批次刪除 bat 備份BAT
- dump備份並定時刪除過去檔案
- windows下rman自動備份指令碼Windows指令碼
- 自動expftp備份FTP
- windows下exp邏輯備份並且定期維護備份Windows
- GitLab的自動備份、清理備份與恢復Gitlab
- mysql的冷備份與熱備份MySql
- oracle rman不能自動刪除歸檔日誌備份解決Oracle
- windows部分聯機自動備份指令碼!Windows指令碼
- Windows環境PgSql自動備份指令碼WindowsSQL指令碼
- mysql每日備份for LinuxMySqlLinux
- Backup And Recovery User's Guide-RMAN備份概念-備份保留期策略-過期備份的批量刪除GUIIDE
- 自動備份指令碼指令碼
- 自動備份任務
- windows下刪除前一天備份批處理Windows
- MySQL 自動備份併傳送到郵箱MySql
- MySQL儲存安全(TDE加密、自動備份)MySql加密
- win10怎麼刪除舊系統備份_win10如何刪除備份檔案Win10
- oracle資料庫備份刪除操作Oracle資料庫
- 2 Day DBA-管理方案物件-執行備份和恢復-管理備份-練習:刪除失效的備份物件
- LINUX 自動備份程式日誌(shell)Linux
- 遠端Linux伺服器MySQL資料庫定期備份和刪除Linux伺服器MySql資料庫
- 用友U8設定了自動備份,備份失效
- MYSQL自動備份策略的選擇與實踐MySql