程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 在Windows主機上准時備份長途VPS(CentOS)數據的批處置

在Windows主機上准時備份長途VPS(CentOS)數據的批處置

編輯:MySQL綜合教程

在Windows主機上准時備份長途VPS(CentOS)數據的批處置。本站提示廣大學習愛好者:(在Windows主機上准時備份長途VPS(CentOS)數據的批處置)文章只能為提供參考,不一定能成為您想要的結果。以下是在Windows主機上准時備份長途VPS(CentOS)數據的批處置正文


不外折騰 VPS 以後,就不只是要備份 MySQL 了,一些自力的站點數據也是須要備份的。
假如有靠譜的第三方 Linux 主機或相似 Amazon 的雲存儲,那就簡略多了,Linux - Linux 的備份很便利。
不外我想在本身的 Windows7 下天天/周運轉一次備份,就有了這個小對象。

年夜概的設法主意以下:
應用 Putty 自帶的 plink.exe 銜接到 VPS 上,運轉備份並加入登錄;
接著應用 Putty 自帶的 pscp.exe 將備份復制到本機;
添加一個籌劃義務,天天/周主動運轉一次,完成准時備份。


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.

:: 下載備份
echo Downloading backups...
%EXE_SCP% -pw %PASSWORD% -P %PORT% %USER%@%SERVER%:%BACKUP_PATH%/*.* %TRUE_PATH%
echo Downloading backups... Done.

:exit
echo Exit

由 index.bat 挪用的 Linux 端敕令

#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# ---------- 設置裝備擺設項,不要最初的 / ----------

# 備份文件存儲的途徑,請與 index.bat 中的 BACKUP_PATH 堅持分歧
BACKUP_PATH=/root/backup

# 要備份的文件或目次,多個以空格分隔
FILES="/www/cmstop /www/dbpma"

# mysqldump 可履行文件的全途徑(假如可以直接履行 mysqldump 可不消全途徑)
MYSQLDUMP=mysqldump

# 要備份的 MySQL 數據庫,多個以空格分隔
DATABASES="mysql test"

# MySQL 用戶名
USER=root

# MySQL 暗碼
PASSWD=

# ---------- 設置裝備擺設項停止,上面的不消修正 ----------

# 運轉時變量
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

# 完成
cd $CURPATH
exit

下載完成以後不刪除辦事器上發生的備份文件,由於下一次備份前會主動消除。
下載和應用 下載地址
下載文件到你本機,解壓到某個處所,然後依據上文的解釋修正設置裝備擺設項;
因為 SSH 第一次登錄須要添加 Key 到本機,這一步沒法簡略疏忽,可行的方法是載入 Putty 的 Session,不外挺費事的,照樣運轉一次簡略些,我們要履行一次 SSH 登錄:

:: 切換到你解壓到的目次,如 D:\VPS\:
cd /d D:\VPS\

:: 依據情形修正上面的參數
exe\plink.exe -C [email protected] -P 22 -pw password

:: 期待一下,會提醒能否將 Key 參加本機信賴主機列內外面,輸出 yes 便可以了。
yes

:: 這就出來了,輸出點經常使用敕令玩玩,輸出 exit 加入。
exit

依據這一篇文章的引見,添加一個准時履行的籌劃義務;
手動履行一下下面添加的籌劃義務或不雅察一個履行周期,看備份能否有用。
待改良
同之前的劇本一樣,仿佛還缺乏一個主動刪除若干天前備份的功效。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved