目次

「運用」に戻る

サーバ内でDokuwikiバックアップ



概要

サーバ内でバックアップすることは一番お手軽で、万が一何か合った場合にも早く戻すことができます。
僕も毎日バックアップを取得するようにしています。
また、大きな変更をする前にはサーバ内でバックアップをとってから作業するようにしています。


手動でバックアップする

同じディレクトリに簡易的にバックアップ

同期ディレクトリを作る
# rsync -az --delete dokuwiki/ dokuwiki.20170214/
or
# rsync -az --delete dokuwiki/ dokuwiki.`date +"%Y%m%d"`/
tar.gzの圧縮ファイルを作成する
# tar zcf dokuwiki.`date +"%Y%m%d"`.tar.gz dokuwiki


backupディレクトリを作ってバックアップ

# mkdir backup      <- Backupディレクトリの作成
# rsync -az --delete dokuwiki/ backup/dokuwiki.bk/
# tar zcf backup/dokuwiki.`date +"%Y%m%d"`.tar.gz dokuwiki


cronで毎日自動バックアップ

バックアップするシェルスクリプトを作成してcronで毎日実行するようにする

バックアップシェルの作成

/home/user01/www/example/backup/backup.sh

# cd /home/user01/www/example/backup/
# vi  backup.sh
#!/bin/sh
 
DIR=`dirname ${0}`
cd  $DIR ; cd ..
 
rsync -az --delete dokuwiki/ backup/dokuwiki.bk/
 
tar zcf backup/dokuwiki.`date +"%Y%m%d"`.tar.gz dokuwiki
 
find ${DIR} -type f -name "*.tar.gz" -mtime +60 -exec rm -rf {} \;

実行権限を付けて実行してみる

# chmod 755 backup.sh
# ./backup.sh

バックアップファイルができているか確認

cronで毎日自動時刻

crontab -e

以下を登録する
30   6   *   *   *   /home/user01/www/example/backup/backup.sh  > /dev/null 2>&1


Tips

.htaccessでbackupディレクトリをブラウザーでアクセスできないようにする

backupディレクトリの中に以下の内容の.htaccessを置き、HTTPでアクセスできないようにする。

Deny from all



コマンドでファイルを作成する場合、以下のようにします。

echo "Deny from all" > .htaccess


複数DokuWikiを利用している場合

wikibackup_tar.sh

tarで圧縮して保存

#!/bin/sh
 
DIR="/usr/share/nginx"
find ${DIR}/backup -type f -name "*.tar.gz" -mtime +30 -exec rm -rf {} \; 
 
wikibackup(){
    echo $1
    cd ${DIR}/html/$1
    tar zcf ${DIR}/backup/$1.`date +"%Y%m%d"`.tar.gz  dokuwiki
}
 
 
 
wikibackup   test1


wikibackup_rsync.sh

rsyncする。

#!/bin/sh
 
DIR="/var/www"
 
wikibackup(){
    echo $1
    rsync -az --delete ${DIR}/html/$1/ ${DIR}/backup/$1.`date +"%H"`
}
 
 
wikibackup   test1







「運用」に戻る