申し訳ありませんが、非常に具体的には言えません。何が問題なのか本当にわかりません。bash を使い始めたばかりなので、私のデバッグ スキルは echo に限られています。
次のコードがあります。
#! /bin/bash
# post_torrent.sh
{
# Log file, file where we tell what events have been processed.
LOG_FILE=/Users/Server/Documents/sickbeard/logs/post_torrent.log
# Username for transmission remote.
TR_USERNAME="admin"
# Password for transmission remote.
TR_PASSWORD="1234"
# Get current time.
NOW=$(date +%Y-%m-%d\ %H:%M:%S)
# Source directory, should not be changed.
SRC_DIR="${TR_TORRENT_DIR}/${TR_TORRENT_NAME}/"
# Directory to store the un-compressed files in..
DEST_DIR="${TR_TORRENT_DIR}/${TR_TORRENT_NAME}/"
cd $SRC_DIR
echo $NOW "SRC_DIR $SRC_DIR" >> $LOG_FILE
RAR=$(find . -iname "*.rar")
echo $NOW "RAR $RAR" >> $LOG_FILE
unrar x -inul "$RAR"
exit 0
} &
ログ ファイルは、正しいファイルが使用されていることを示しています。スクリプト内のステートメントをターミナルで 1 つずつ実行すると (Mac osx サーバーで作業しています)、すべてが機能し、ファイルが抽出されます。ただし、トレントがダウンロードされた後にこのスクリプトが実行されると、実行されません。
これがなぜなのかを約 3 時間調べてみましたが、まだ手がかりが見つかりません。私がテストしたように、権限は問題ないと思います。ただし、私は bash を初めて使用し、mac osx コマンド ラインにあまり慣れていません。
前もって感謝します。
編集:いくつかの追加情報。ログは次のようになります。2013-02-27 00:14:42 SRC_DIR /Volumes/Multimedia/aa_bb/Downloads/some_serie/ 2013-02-27 00:14:42 RAR ./some_serie.rar
ファイルのダウンロードが終了した時点で設定されたプログラムとして、送信によりプログラムが実行されます。
抽出する必要があるファイルは、共有の外付けハード ドライブにあります。
お役に立てれば。