その他 公開データ (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