Jetspeedもいろいろと更新が入ったりするので、既に配備してあるものを更新したい場合、どうしたものかと、悩むこともあるだろう(っていうか、いつも困る)。というわけで、アップデートするスクリプトを簡単に書いてみる(結構、適当なので、参考程度に)。ただ、データベースのスキーマに変更が入ったりすると、これだけじゃ、データを移行しないとダメだと思うけど、まぁ、そこいらはだいぶ落ち着いてきているので、変更はなかなか入らんだろう(入ったら、シリアライザーでエクスポートしてインポートすればいいと思う)。
#!/bin/sh # ex. $ portal_update.sh jetspeed <NEW_TOMCAT_ROOT> <OLD_TOMCAT_ROOT> PORTAL_NAME=$1 NEW_PORTAL_PATH=$2 OLD_PORTAL_PATH=$3 echo "Portal Name: $PORTAL_NAME" echo "New Portal Path: $NEW_PORTAL_PATH" echo "Old Portal Path: $OLD_PORTAL_PATH" rm -rf $OLD_PORTAL_PATH/webapps/$PORTAL_NAME/WEB-INF/lib rm -rf $OLD_PORTAL_PATH/webapps/$PORTAL_NAME/WEB-INF/classes rm -rf $OLD_PORTAL_PATH/webapps/$PORTAL_NAME/WEB-INF/templates rm -rf $OLD_PORTAL_PATH/webapps/$PORTAL_NAME/decorations rm -rf $OLD_PORTAL_PATH/webapps/$PORTAL_NAME/javascript rm -rf $OLD_PORTAL_PATH/webapps/$PORTAL_NAME/images for file in `find $NEW_PORTAL_PATH/webapps/$PORTAL_NAME -type f | sed -e "s,^$NEW_PORTAL_PATH/,," \ | grep -v "^webapps/$PORTAL_NAME/META-INF" \ | grep -v "^webapps/$PORTAL_NAME/logs" \ | grep -v "^webapps/$PORTAL_NAME/WEB-INF/pages" \ | grep -v "^webapps/$PORTAL_NAME/WEB-INF/min-pages" \ | grep -v "^webapps/$PORTAL_NAME/WEB-INF/deploy" \ ` ; do BASE_DIR="$OLD_PORTAL_PATH/"`dirname $file` mkdir -p $BASE_DIR cp $NEW_PORTAL_PATH/$file $OLD_PORTAL_PATH/$file done rm $OLD_PORTAL_PATH/shared/lib/j* $OLD_PORTAL_PATH/shared/lib/p* cp $NEW_PORTAL_PATH/shared/lib/j* $OLD_PORTAL_PATH/shared/lib cp $NEW_PORTAL_PATH/shared/lib/p* $OLD_PORTAL_PATH/shared/lib
第一引数に、ポータル名、つまり、jetspeed とか、第二引数が新しいポータルの場所(新しいTomcatルート)、第三引数が今動いているTomcatルート。実行すると、第三引数で与えた既存のポータルが更新される(実行する際には、Tomcatを停止する必要あり)。やっていることは、単純で、jar などなどのファイルの書き換え。ただ、ログやPSMLファイルおよびdeployディレクトリはコピーしない。confやspringのファイルを変更している場合は、上書きされるので、再度、設定する必要あり。まぁ、単純なものですが、参考までに・・・。