その他 公開データ (2002.01~2005.05)

[1016] 孤立した添付ディレクトリの整理サポートスクリプト - ynak <> 03/05/13 15:34


Subject: [1016] 孤立した添付ディレクトリの整理サポートスクリプト Date: Tue, 13 May 2003 15:34:02 +0900 From: ynak <>
EdMaxをずっと使っていると、削除したはずのメールについていた 添付ディレクトリ&ファイルが残存してしまう、ということがあるかと思います。 #私だけ?よく操作を間違うんですよ… というわけで、孤立した添付ディレクトリを$EDMAX_HOME/tmpに 移動するシェルスクリプトを書いてみました。 Cygwinを使ってる人なら以下のスクリプトで簡単に、対応するメールのない 孤立した添付ディレクトリを抜き出すことができます。 使い方や仕様(というほどでもないですが)は直接スクリプトをご覧ください。 EDMAX_HOMEをご自分の環境のパスに変更してから実行してください。 いくつか一時ファイルが作られるので、いらなくなったら手動で削除してください。 なお、このスクリプトの実行によるいかなる不都合に関しても一切責任 は負いません。使われる方は自己責任でよろしくお願いします。 ----- #!/bin/sh # EdMaxのリンク切れ「添付ディレクトリ」をリストアップする # ファイル単位ではないが、ディレクトリ単位でも十分実用的と考える # 変数設定 EDMAX_HOME=/cygdrive/d/bin/Edmax ATTACHMENT_DIR=$EDMAX_HOME/Attachment ACCOUNT_DIR=$EDMAX_HOME/Account TMP_DIR=$EDMAX_HOME/tmp EXISTING_LIST=$EDMAX_HOME/exist.tmp MISSING_LIST=$EDMAX_HOME/missing.tmp MOVE_FLAG="false" # 引数チェック if [ "$1" = "--move" ]; then MOVE_FLAG="true" elif [ "$1" != "" ]; then echo "Usage: $0 [--move]" exit fi # 初期化 if [ -f $EXISTING_LIST ]; then rm $EXISTING_LIST fi if [ -f $MISSING_LIST ]; then rm $MISSING_LIST fi # メールヘッダからEdMax独自の添付ファイルヘッダを抜き出す # 添付ディレクトリ名(20010521_095551_22aub0とか)だけとれればよい grep -hR X-EdMax-Attachment-File: $ACCOUNT_DIR > $EXISTING_LIST # 添付ディレクトリ名と添付ファイルヘッダの対応をチェックする for TARGET in `ls $ATTACHMENT_DIR` do RESULT=`grep $TARGET $EXISTING_LIST` if [ "$RESULT" = "" ] then echo "[WARNING] 対応するメールがありません $TARGET" echo "$TARGET" >> $MISSING_LIST # else # echo "$RESULT" fi done # 結果表示 echo =================================================== if [ -f $MISSING_LIST ]; then echo 以下の添付ディレクトリには、対応するメールがありません cat $MISSING_LIST echo 全件数: `cat $MISSING_LIST | wc -l` else echo 全ての添付ディレクトリは、いずれかのメールと対応づけられています fi # --moveオプションがなければここで終了 if [ $MOVE_FLAG != "true" ]; then exit fi # ディレクトリ移動 if [ ! -d $TMP_DIR ]; then mkdir $TMP_DIR fi for TARGET in `cat $MISSING_LIST` do mv $ATTACHMENT_DIR/$TARGET $TMP_DIR done