前回は、wp-cliを使って投稿記事と固定ページを確認しました。今度は投稿記事と固定ページをコマンドラインから削除してみましょう。なお、サンプルで使用しているサイトは、いつでも簡単にロールバックできるよう、コンテンツのファイルとsqlをバックアップしています。こちらのコードは本ページの最後に貼り付けておきますね。
■ 投稿記事と固定ページの削除
まずは事前にバックアップスクリプト(/root/bin/BACKUP)でコンテンツとSQLをバックアップしておきます。バックアップ先は/root/backupとしておきます。
# bin/BACKUP # ll backup/ | grep 11-41 -rw-r--r-- 1 root root 6624557 1月 4 11:41 <ホスト名>_CONTENTS_2015-01-04_11-41-36.tar.gz -rw-r--r-- 1 root root 59450 1月 4 11:41 wpdb0001_2015-01-04_11-41-36.sql.gz
前回にならって投稿記事と固定ページがあることを確認します。
# wp --allow-root post list --path=/home/vhosts/$(uname -n)/public_html/ +----+------------+-------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+------------+-------------+---------------------+-------------+ | 1 | (っ´∀`)っ ゃー | hello-world | 2015-01-03 21:08:12 | publish | +----+------------+-------------+---------------------+-------------+
# wp --allow-root post list --post_type=page --path=/home/vhosts/$(uname -n)/public_html/ +----+------------+-------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+------------+-------------+---------------------+-------------+ | 2 | サンプルページ | sample-page | 2015-01-03 21:08:12 | publish | +----+------------+-------------+---------------------+-------------+
WordPressがインストールされた直後は、投稿記事のIDが1、固定ページのIDが2として最初から作成されています。なので、投稿IDを指定して削除します。
# wp --allow-root post delete 1 --path=/home/vhosts/$(uname -n)/public_html/ Success: Trashed post 1.
# wp --allow-root post delete 2 --path=/home/vhosts/$(uname -n)/public_html/ Success: Trashed post 2.
それではもう一度、投稿記事と固定ページの一覧を確認してみましょう。
# wp --allow-root post list --path=/home/vhosts/$(uname -n)/public_html/ +----+------------+-----------+-----------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+------------+-----------+-----------+-------------+ +----+------------+-----------+-----------+-------------+
# wp --allow-root post list --post_type=page --path=/home/vhosts/$(uname -n)/public_html/ +----+------------+-----------+-----------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+------------+-----------+-----------+-------------+ +----+------------+-----------+-----------+-------------+
見事に空っぽになりました。ブラウザから見てみるとこうなります。
なお、上記の削除方法ですと、投稿記事や固定ページは永久に削除されるわけではなく、ゴミ箱に入ることになります。ゴミ箱に入れず、永久に削除したい場合は、コマンドの引数に「–force」をつけて実行します。
■ バックアップスクリプトのソースとリストア作業
バックアップスクリプトは単純な作りです。一撃インストールでMySQLのユーザー名とパスワードをファイルに保存してあるので、これを利用するようにしています。
# cat bin/BACKUP #!/bin/bash set -e LANG=C MUSER=$(cat .mysql/MySQLPARAM | grep ^user | awk '{print $2}') MPASS=$(cat .mysql/MySQLPARAM | grep ^user | awk '{print $3}') DB=wpdb0001 DROOT=/home/vhosts/$(uname -n)/public_html/ DATE=$(date +%Y-%m-%d_%H-%M-%S) mysqldump -u ${MUSER} -p${MPASS} ${DB} > ~/backup/${DB}_${DATE}.sql gzip ~/backup/${DB}_${DATE}.sql cd ${DROOT} tar czf ~/backup/$(uname -n)_CONTENTS_${DATE}.tar.gz *
それでは、ブログをリストアしましょう。ここまで壊滅的に壊してしまったので、一旦DBを削除してから作りなおします。なお、画像やスタイルシートなどのファイルは一切削除していないので、DBだけ戻すことにします。
# mysql -u $(cat .mysql/MySQLPARAM | grep ^user | awk '{print $2}') -p$(cat .mysql/MySQLPARAM | grep ^user | awk '{print $3}') -e "drop database wpdb0001;"
# mysql -u $(cat .mysql/MySQLPARAM | grep ^user | awk '{print $2}') -p$(cat .mysql/MySQLPARAM | grep ^user | awk '{print $3}') -e "create database wpdb0001 DEFAULT CHARACTER SET utf8;"
# gunzip backup/wpdb0001_2015-01-04_11-41-36.sql.gz
# mysql -u $(cat .mysql/MySQLPARAM | grep ^user | awk '{print $2}') -p$(cat .mysql/MySQLPARAM | grep ^user | awk '{print $3}') wpdb0001 < backup/wpdb0001_2015-01-04_11-41-36.sql
それでは復活したかブラウザから確認してみましょう。
いいですねー。もちろん、コマンドラインでも確認してみましょう。
# wp --allow-root post list --path=/home/vhosts/$(uname -n)/public_html/ +----+------------+-------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+------------+-------------+---------------------+-------------+ | 1 | (っ´∀`)っ ゃー | hello-world | 2015-01-03 21:08:12 | publish | +----+------------+-------------+---------------------+-------------+
# wp --allow-root post list --post_type=page --path=/home/vhosts/$(uname -n)/public_html/ +----+------------+-------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+------------+-------------+---------------------+-------------+ | 2 | サンプルページ | sample-page | 2015-01-03 21:08:12 | publish | +----+------------+-------------+---------------------+-------------+
バックアップは大事ですねえ。次回は、あらかじめエクスポートしておいたxmlファイルからインポートしてリストアしてみることにします。でわ〜♪
