あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

WordPressを楽にアップグレードするシェルスクリプト

アップグレードが面倒な割に、手順を書いたページには「もっと何かしたかったですか」とか神経を逆撫でするようなコメントが付いていたので、カッとなって作った。意外とベンリだったので後悔はしていない。
仕組みは、作業ディレクトリに新しいWordPressを展開して、稼働中のWordPressから設定、テーマ、プラグイン、添付画像データをコピーして、最後にmvで新旧WordPressを入れ替えるだけ。旧WordPressはついでにバックアップっぽい名前として作業ディレクトリに補完しておく親切設計(?)。
実行の際は、パスの入力ミス、権限不足などのトラブルに注意されたし。
これを使ってブログのデータがぶっ飛んでも保証しません。自己責任でご自由にどうぞ。

# usage:  wpUpgrade.sh <WordPressのパッケージのフルパス>

package=$1
targetblog=<ブログのパス(/var/www/html/blogとか)>
workspace=<作業場所(/home/akkieとか)>
backupname=<旧バージョンのバックアップ名(blog.bak-)>
# バックアップ名に日付が付加される

cd $workspace
unzip $package
rm -f wordpress/wp-config-sample.php
rm -rf wordpress/wp-content/plugins wordpress/wp-content/themes
cp -v $targetblog/wp-config.php wordpress/
cp -av $targetblog/wp-content/plugins wordpress/wp-content/
cp -av $targetblog/wp-content/themes  wordpress/wp-content/
cp -av $targetblog/wp-content/uploads  wordpress/wp-content/
# そのほか、何か他に移行すべきものがあればここに書き足す。

now=`date +"%y%m%d%H%M"`

mv $targetblog $workspace/$backupname$now
mv $workspace/wordpress $targetblog

echo done.