Windows 下負責觸發備份的 index.bat @echo off & setlocal ENABLEEXTENSIONS
:: 這里只是 SSH 連接和備份路徑配置信息 :: 請同時修改同目錄下 linux 文件中要備份的路徑和 MySQL 數據庫
:: SSH 相關信息 set SERVER=192.168.1.100 set PORT=22 set USER=root set PASSWORD=password
:: 和同目錄下 linux 文件中配置的路徑對應 set BACKUP_PATH=/root/backup
:: 備份要下載到的本機位置(會自動創建) set SAVE_PATH=D:/Backup/
:: ---------- 配置結束,以下請勿修改 ----------
:: 運行時變量 set EXE_SSH=%~dp0/exe/plink.exe set EXE_SCP=%~dp0/exe/pscp.exe set LINUX=%~dp0/linux
set YEAR=%date:~0,4% set MONTH=%date:~5,2% set DAY=%date:~8,2% set TRUE_PATH=%SAVE_PATH%%YEAR%-%MONTH%-%DAY%/
:: 創建備份路徑 echo Creating Backup Dir... if not exist %TRUE_PATH% ( mkdir %TRUE_PATH% 2>nul ) if not exist %TRUE_PATH% ( echo Backup path: %TRUE_PATH% not exists, create dir failed. goto exit ) echo Creating Backup Dir... Done.
:: 生成備份目錄和文件 echo Connecting to remote server and creating backups... %EXE_SSH% -C %USER%@%SERVER% -P %PORT% -pw %PASSWORD% -m %LINUX% 2>nul echo Connecting to remote server and creating backups... Done.
# 運行時變量 DATETIME=$(date -d now +%Y-%m-%d) CURPATH=$(cd "$(dirname "$0")"; pwd)
# 創建備份目錄 if [ ! -d $BACKUP_PATH ]; then mkdir -p $BACKUP_PATH fi
rm -fR $BACKUP_PATH/*
# 備份 MySQL 數據庫 cd $BACKUP_PATH for database in $DATABASES do if [ "$PASSWD" == "" ]; then $MYSQLDUMP -u$USER $database > $database.$DATETIME.dump.sql else $MYSQLDUMP -u$USER -p$PASSWD $database > $database.$DATETIME.dump.sql fi tar czf $database.$DATETIME.dump.sql.tar.gz $database.$DATETIME.dump.sql rm -f $database.$DATETIME.dump.sql done
# 備份文件或目錄 for file in $FILES do tar czf $file.$DATETIME.tar.gz $file mv $file.$DATETIME.tar.gz $BACKUP_PATH done