У меня есть Raspberry Pi, настроенный как ящик для семян. У меня есть задание cron, которое будет запускаться каждые 10 минут, проверять готовые файлы с помощью transmission-remote -l
, grep
для выполненных записей (100%), получать имена папок, копировать их на внешний диск, а затем удалять исходные файлы. на моем Пи.
Для каждого выполненного действия (добавление торрента, завершение торрента, начало передачи файла, завершение передачи файла и удаление файлов) запись записывается в мой logfile.log
, который находится в том же каталоге как и все скрипты, «/home/pi/dev/». Внутри этой папки у меня есть подпапка logs
, в которой хранятся файлы журналов обо всех перемещениях с pi на внешний диск. Все эти файлы журналов названы в честь перемещаемой папки/файла.
Как я уже сказал, каждые 10 минут torrentfinished.php
исполняется задание cron.
*/10 * * * * php -f /home/pi/dev/torrentfinished.php
Все результаты работы отправляются на мою почту /var/mail/pi
.
Теперь, если я запускаю скрипт вручную, я могу запустить его из любого места, написав
php -f /home/pi/dev/torrentfinished.php
У меня есть несколько строк отладки, написанных прямо под выполнением каждой команды. (Я использую shell_exec для запуска команд, потому что мне удобнее писать на php, чем на bash).
Он выведет
Started transfer
Wrote transfer to logfile
Затем в logfile
добавляется запись с текстом $timestamp : started transfer of data from torrent $torrentname
. Отдельный файл создается в logs/$torrentname.log
. В принципе, все работает идеально.
Однако, когда задание cron запускается, я получаю следующий вывод в /var/mail/pi
Unable to open logfile: No such file or directory
Started transfer
Wrote transfer to logfile
Но, как вы, наверное, догадались, ничего не происходит. Файлы остаются на своем месте на Pi и не передаются. Кроме того, в logfile
или logs/$torrentname.log
ничего не записывается.
Я ломал голову над этим и использовал chmod 777
для большего количества файлов, чем можно было бы считать необходимым или безопасным, просто чтобы убедиться, что это не проблема с разрешениями. Может я что-то и упустил, конечно, но вряд ли. Я также пытался переименовать файл logfile
во что-то другое, но все равно получаю ту же ошибку.
У меня больше нет идей, что делать, поэтому, если у кого-то из вас есть идеи, пожалуйста, расскажите!