Прошу прощения, что я не могу быть предельно конкретным, я действительно не знаю, в чем проблема, и только что начал с 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.
Заранее спасибо.
EDIT: некоторые дополнительные сведения. журнал выглядит следующим образом: 2013-02-27 00:14:42 SRC_DIR/Volumes/Мультимедиа/aa_bb/Загрузки/some_serie/ 2013-02-27 00:14:42 RAR ./some_serie.rar
Программа запускается через передачу как программа, установленная при завершении загрузки файла.
Файл, который необходимо извлечь, находится на общем внешнем жестком диске.
Надеюсь, это поможет.
Dont вам нужно развязать их по порядку, в серийном порядке - значение 1, затем 2, затем 3 и т. Д.? Если это так, проблема заключается в том, что вы пытаетесь развязать их потенциально в параллели ... Возможно, это было. Простое решение - избежать торрентов архива RAR. Я был против них в течение многих лет :-) – prodigitalson
Создайте новый скрипт и добавьте контент по строкам, тестируя его с выходом на терминал. Возможно, есть некоторые проблемы с вашим конкретным файлом (в настройках и т. Д.).Поэтому создайте новый скрипт с функциями, которые вам нужно использовать, и выполните попытку выполнить его. – Stepo
Кажется вероятным, что RAR содержит более одного имени файла, но когда вы передаете его, чтобы разделить его следующим образом: 'unrar x -inul '$ RAR", unrar увидит все вместе вместе как один аргумент. Вы можете попытаться удалить кавычки из переменной. (Становится сложнее, если ваши имена файлов могут содержать пробелы.) – William