WordPress ファイルとデータベースを自動バックアップして Google ドライブにアップロードする
- 2016 12/14
- カテゴリー : WordPress
- backup . google drive
- コメントを書く
やっと当ブログの WordPress のファイルとデータベースをバックアップして Google ドライブにアップロードするまでの処理を自動化しました。
前提
扱っている技術的なものは以下のとおりです。
- MySQL
- prasmussen/gdrive: Google Drive CLI Client
- シェルスクリプト
- crontab
バックアップ処理を書いたシェルスクリプト
WordPress データベースのバックアップ
ひとまず、書いたシェルスクリプトを書き残しておきます。
# backup_db.sh DB_NAME=mydbname DB_USER=mydbuser DB_PASSWORD=mydbpassword DB_HOST=localhost DATE_STR=$(date +\%Y\%m\%d-\%H\%M\%S) BACKUP_PATH=/tmp BACKUP_FILE=$DB_NAME-$DATE_STR.sql GDRIVE_DIR_ID=0B840dMOrdKT5am9aRDlNUUFic0k KEEP_DAYS=3 ## backup DB cd $BACKUP_PATH mysqldump $DB_NAME --default-character-set=binary \ -h $DB_HOST -u $DB_USER -p$DB_PASSWORD > $BACKUP_FILE tar zcvf $BACKUP_FILE.tar.gz $BACKUP_FILE gdrive upload --parent $GDRIVE_DIR_ID $BACKUP_FILE.tar.gz rm -f $BACKUP_FILE.tar.gz $BACKUP_FILE ## Housekeeping LIMIT_TIMESTAMP=$(date -d "$KEEP_DAYS days ago" +%s) gdrive list --no-header --max 1000 --query "'$GDRIVE_DIR_ID' in parents" | while read ln do ITR_ID=$(echo $ln | awk '{print $1}') ITR_DATE=$(echo $ln | awk '{print $(NF-1),$NF}') if [ $(date -d "$ITR_DATE" +%s) -lt $LIMIT_TIMESTAMP ] then gdrive delete $ITR_ID fi done |
WordPress ファイルのバックアップ
# backup_file.sh DATE_STR=$(date +\%Y\%m\%d-\%H\%M\%S) TARGET_PATH=/var/www/vhosts/ TARGET_FILE=codenote.net BACKUP_FILE=$TARGET_FILE-$DATE_STR.tar.gz GDRIVE_DIR_ID=0B840dMOrdKT5SFg5UkZ2c05aWkU KEEP_DAYS=7 ## backup files cd $TARGET_PATH tar cfz $BACKUP_FILE $TARGET_FILE/ gdrive upload --parent $GDRIVE_DIR_ID $BACKUP_FILE rm -f $BACKUP_FILE ## Housekeeping LIMIT_TIMESTAMP=$(date -d "$KEEP_DAYS days ago" +%s) gdrive list --no-header --max 1000 --query "'$GDRIVE_DIR_ID' in parents" | while read ln do ITR_ID=$(echo $ln | awk '{print $1}') ITR_DATE=$(echo $ln | awk '{print $(NF-1),$NF}') if [ $(date -d "$ITR_DATE" +%s) -lt $LIMIT_TIMESTAMP ] then gdrive delete $ITR_ID fi done |
gdrive コマンドの Tips
gdrive list でディレクトリの一覧を表示する。
$ gdrive list --query "mimeType='application/vnd.google-apps.folder'" Id Name Type Size Created 0B840dMOrdKT5am9aRDlNUUFic0k db dir 2016-12-13 00:17:46 |
随時、内容をアップデートしていきます。