だから、私はダミーのための簡単な自動データバックアップの経験を共有したいと思います。
挑戦する
スケジュールに従ってファイルとデータベースのバックアップコピーを作成する必要があります。 データベースのバックアップはファイルのバックアップよりも頻繁に行われるため(またはその逆)、これらの2つのプロセスは互いに独立している必要があります。
与えられた
- Centos 5 x86_64ベースのVPS。
- ISPマネージャーコントロールパネル。 ISPマネージャーの標準的な手段は適していません。
- サーバーの空き容量はほとんどありません。
目的
サーバー上の特定のフォルダーにあるファイルとデータベースのアーカイブを取得します。 アーカイブは、httpプロトコルを介してアクセス可能でなければなりません。
解決策
これはスクリプト作成の最初の経験であるため、コードは少し不器用に見えるかもしれません。
MySQLバックアップ
指定したユーザーがすべてのデータベースのダンプを使用できるようにします。
#!/bin/sh # ---- -------------------------------------- # , BACKUP_DIR="/var/www/wscms/data/www/site.ru/backup/" # BACKUP_FILE="sql.tar" # , USER="wscms" # MySQL MDIR="mysql/" # MySQL MHOST="localhost" # MYSQL root MUSER="root" # MYSQL root MPASS="***************" # "-zcf" "-cf" PARAMS="-cf" #--- -------------------------- # mysql. MYSQL="$(which mysql)" # mysqldump MYSQLDUMP="$(which mysqldump)" # tar TAR="$(which tar)" # chown CHOWN="$(which chown)" # RM RM="$(which rm)" # MKDIR MKDIR="$(which mkdir)" # ---- DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" # ---- , $RM -rf $BACKUP_DIR$MDIR # ---- $MKDIR -p $BACKUP_DIR$MDIR # ---- . for db in $DBS do FILE=$BACKUP_DIR$MDIR$db.sql $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db > $FILE done # ---- $TAR $PARAMS $BACKUP_DIR$BACKUP_FILE $BACKUP_DIR$MDIR # ---- MySQL $RM -rf $BACKUP_DIR$MDIR $CHOWN $USER $BACKUP_DIR $CHOWN $USER $BACKUP_DIR$BACKUP_FILE exit 0
バックアップファイル
#!/bin/sh # ---- -------------------------------------- # , BACKUP_DIR="/var/www/wscms/data/www/site.ru/backup/" # EXT=".tar" # , MAIN_DIR="/var/www/" # , DATA_DIR="/data/www/" # , USER="wscms" # "-zcf" "-cf" # u PARAMS="-cf" #--- -------------------------- # tar TAR="$(which tar)" # chown CHOWN="$(which chown)" RM="$(which rm)" MKDIR="$(which mkdir)" # ---- $MKDIR -p $BACKUP_DIR $CHOWN -R $USER $BACKUP_DIR # ---- for DIR in $(/usr/local/ispmgr/sbin/mgrctl -m ispmgr user | cut -d' ' -f1 | sed s/name=//) do # ---- $TAR $PARAMS $BACKUP_DIR$DIR$EXT $MAIN_DIR$DIR$DATA_DIR $CHOWN $USER $BACKUP_DIR$DIR$EXT done $CHOWN -R $USER $BACKUP_DIR exit 0
rootユーザーとしてCRONに追加します
/ bin / sh /backup/backup.sh
/ bin / sh /backup/sql.sh
必要なスケジュールを設定します
これら2つのスクリプトの作業後、各ユーザーのファイルのバックアップを個別に作成し、MySqlをバックアップします。
別のDCのサードパーティサーバーでwgetを使用してそれらを取得するか、(実装したように)スケジューラーに読み込まれた単純なWindowsアプリケーションを使用して、ローカルマシンにバックアップを毎日ダウンロードします。
セキュリティ上の理由から、次の.htaccessをsite.ru/backup/フォルダーに配置することをお勧めします
注文拒否、許可
すべてから拒否
Your.IP.Address、IP.Address.USP.If.Using.wgetから許可
幸運を祈ります。データを失わないでください。