前回、エックスサーバーでMySQLデータベースの自動バックアップをご紹介しましたが、今回はストレージに保存されているファイルを丸ごとバックアップしたいと思います。
ターゲットはWEBで公開している「public_html」以下全てのファイルです。
バックアップを取得する際は圧縮も同時に行います。
フォルダごと圧縮してバックアップ
tarコマンドを使い、public_htmlフォルダを圧縮してbackupフォルダへ保存します。
使い方は以下の通りです。
tar [オプション] [保存先] [バックアップしたいフォルダ]
オプションについてはこちらを参考にしてください。
著者の場合はこのようになります。
tar czvf ~/backup/public_html_$(date +%y%m%d).tar.gz ~/path/to/public_html
参考:【エックスサーバー】SSHで指定ディレクトリの圧縮・解凍を行う – ysklog
前回同様、バックアップの保存期間を7日間とします。
rm -f ~/backup/public_html_$(date --date "7 days ago" +%y%m%d).tar.gz
以前紹介した、MySqlバックアップする方法も踏まえ、以下にまとめます。
自動バックアップまとめ
ファイルとデータベースの両方を自動バックアップをまとめてシェルスクリプトにしました。
#!/bin/bash
LANG=en_GB.UTF-8
# Database Backup
mysqldump -h[ホスト名] -u[ユーザー名] -p[パスワード] [データベース名] > ~/backup/dump_$(date +%y%m%d).sql
rm -f ~/backup/dump_$(date --date "7 days ago" +%y%m%d).sql
# File Backup
tar czvf ~/backup/public_html_$(date +%y%m%d).tar.gz ~/[ドメイン名]/public_html
rm -f ~/backup/public_html_$(date --date "7 days ago" +%y%m%d).tar.gz
特に、-pオプションの後(パスワードの前)にスペース開けたらダメよ!
これでハマった人も多いようです。
以上、後はcronでね。
- Original:https://minory.org/xserver-file-backup.html
- Source:Minory
- Author:管理者