對不起,我不能非常具體,我真的不知道什麼是問題,只是從bash開始,所以我的調試技巧僅限於回顯。unrar命令只有在手動執行時纔有效
我有下面的代碼:
#! /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
} &
日誌文件顯示正在使用正確的文件。當我在終端(我正在一個mac osx服務器上工作)中逐一執行腳本中的語句時,一切正常並且文件被解壓縮。然而,當這個腳本在下載洪流後執行時,它不會。
我一直在試圖找出爲什麼這是大約三個小時,仍然沒有發現任何線索。我認爲這些權限是可以的,因爲我爲此進行了測試。然而,我是bash的新手,不太熟悉mac osx命令行。
在此先感謝。編輯: 一些額外的信息。 日誌看起來是這樣的: 2013年2月27日0點14分42秒SRC_DIR /卷/多媒體/ aa_bb /下載/ some_serie/ 2013年2月27日0點14分42秒RAR ./some_serie.rar
當文件完成下載時,程序通過傳輸作爲程序集執行。
必須提取的文件位於共享的外部硬盤驅動器上。
希望這會有所幫助。
你不需要按順序unrar他們,以串行方式 - 意味着1,然後2,然後3等等。?如果是這樣的話,問題在於你試圖以並行方式解壓它們......可能是蠕蟲。簡單的解決方案是避免RAR歸檔種子。我多年來一直在對他們進行討伐:-) – prodigitalson 2013-02-26 22:03:55
製作新腳本並逐行添加內容,並將其輸出到終端進行測試。也許你的特定文件存在一些問題(在設置等...)。所以用你需要使用的函數創建新的腳本並執行嘗試執行它。 – Stepo 2013-02-26 22:04:01
RAR包含多個文件名似乎很有可能,但是當你將它傳遞給unrar時,像這樣:'unrar x -inul「$ RAR」',unrar將把它們全部看作一個參數。您可以嘗試從變量周圍刪除引號。 (如果文件名可能包含空格,會變得更復雜。) – William 2013-02-26 22:05:00