WordPress を使用していて、原因不明で個別記事が404になることありませんか?
たまにあるんですよね...その際はパーマリンク設定で何も変更せずに更新してやれば解決するんですが、夜中とかに発生した時に人手を介して対応するのは辛いので、自動的に検知してよしなにやってほしいですよね。
そんな時は wp-cli を使えばできます。
こんな感じのシェルスクリプトを cron で定期的に実行(5分に一度程度)しておけばいいんでないかな?
chk-wp-rewrite-rule.sh
# !/bin/bash
set -eux
# WordPress のインストールパス
wp_path='/path/to/wordpress'
# http ステータスコードを監視する記事ページのURL(削除されることのない記事のURLが良いです)
single_page_url='http://example.com/archives/1'
# http ステータスコードの取得
http_code=$(curl -Li ${single_page_url} -o /dev/null -w '%{http_code}' -s)
# http ステータスコードが 404 の場合、リライトルールとオブジェクトキャッシュの初期化
if [ "${http_code}" = "404" ]; then
# 個別記事にアクセスできなくなって wp rewrite flush したことを slack なり、メールなりで通知したほうがいいかも
wp --path=${wp_path} rewrite flush
wp --path=${wp_path} cache flush
fi