WordPress Web サイト全体を定期的に自動的にバックアップします (サイト全体のバックアップ + MySQL エクスポート + パッケージ化 + 長期的に無駄なバックアップのクリーンアップ + スケジュールされた実行)

WordPress を VPS サーバーにインストールし、Web サイト全体のデータを自動的にエクスポートしてパッケージ化し、定期的にリモートサーバーに送信できるようにしたいと考えています。バックアップが完了したので、障害回復に使用できます。プロセス全体が自動的かつ定期的に実行されます。 WordPress データは、データベース データと Web サイト ページ データの 2 つの部分に分かれています。

データベースデータをバックアップする

1
mysqldump wordpress > wordpress_db.sql

MySQL でアカウントのパスワードを入力する必要がある場合は、~/.my.cnf に追加できます。

1
2
3
[mysqldump]
user=mysqluser
password=secret

ファイル ~/.my.cnf には 600 に設定されたアクセス許可が必要です

Webサイトのページデータをバックアップする

1
tar -cvzf wordpress.tar.gz /var/lib/www/wordpress

完全なバックアップ スクリプト

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/bin/bash
wordpress_db_name=wordpress;  #数据库名称
wordpress_site_dir=/srv/www/www.youdomain.com/;  #你的wordpress网页所在的目录
wordpress_site_config_file=/etc/nginx/sites-available/www.youdomain.com;  #你的配置文件所在位置
wordpress_dump_file_dir=/srv/backup/; #备份保存目录
today=`date '+%Y_%m_%d'`;
mkdir ~/wordpress_$today
mkdir ~/wordpress_$today/db
mkdir ~/wordpress_$today/site
mysqldump $wordpress_db_name > ~/wordpress_$today/db/wordpress_db.sql
tar -cvzf ~/wordpress_$today/site/www.knightli.com.tar.gz $wordpress_site_dir
cp  $wordpress_site_config_file ~/wordpress_$today/site/
tar -cvzf $wordpress_dump_file_dir/wordpress_$today.tgz -C ~ wordpress_$today
rm -rf ~/wordpress_$today
find $wordpress_dump_file_dir -mtime +5 -name "*.tgz" -exec rm -rf {} \;

スクリプト内の次の変数を対応する値に変更します。

変数名 意味
wordpress_db_name データベース名
wordpress_site_dir WordPress Web ページが置かれているディレクトリ
wordpress_site_config_file 設定ファイルの場所
wordpress_dump_file_dir バックアップ保存ディレクトリ

スケジュール実行

「crontab -e」と入力します。初めて開くときは、編集ツール (vim または nano) を選択する必要があります。 最後の行を追加 00 08 * * * /folder/backup.sh

サービスを再起動する sudo systemctl restart cron

记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。