Wordpressには自動更新機能がありますが
Wordpressに搭載されている自動更新機能にはちょっと不安がございます。
ちゃんと自動更新はできるものの、自動バックアップができないところです。
何かのアップデートによるトラブルがあったら、場合によっては致命的です。
まずはWordpress自身の自動更新をやめる
以下を追記します。
wp-config.php
define( 'AUTOMATIC_UPDATER_DISABLED', true );
wpコマンドをインストールする
こちらを参照してインストールします。
なお、phpにphar が対応している必要があります。
wp-cli-install.sh
#!/bin/sh
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
以下のファイルを作成します。
wp-autoupdate.sh
#!/bin/sh
PHP="/usr/bin/php7.4"
WP="$PHP /usr/bin/wp"
DIR="/home/(username)/backup/wordpress-file"
DOCROOT=/home/(username)/public_html
export HTTP_HOST="ドメイン"
# https:// で動いてない場合は以下をコメントアウト
export HTTPS="on"
DBNAME=データベースの名前
USERNAME=データベースのユーザー名
PASSWORD=データベースのパスワード
HOST=データベースのサーバー
mkdir -p $DIR
FNAME="$DIR/$HTTP_HOST-`date +%Y%m%d`.tar"
SQLNAME="$DIR/$HTTP_HOST-`date +%Y%m%d`.sql"
cd $DOCROOT
tar cvf $FNAME *.php wp-admin wp-includes wp-content/languages wp-content/plugin
s wp-content/themes >/dev/null 2>/dev/null
rm -rf $FNAME.xz
xz -z $FNAME
mysqldump -u $USERNAME -p$PASSWORD -h $HOST --no-tablespaces $DBNAME > $SQLNAME
rm -rf $SQLNAME.xz
xz -z $SQLNAME
$WP core update
$WP plugin update --all
$WP core language update
crontabに登録します
crontab.txt
0 4 30 * * /bin/bash /home/username/bin/wp-autoupdate.sh
``