Я написал сценарий оболочки со следующим содержанием:
#!/bin/bash
value=`cat test.txt`
echo "Output: $value" >> currentOutput.txt
Выполняя этот сценарий в оболочке, он правильно записывает значение в currentOutput.txt. При выполнении этого сценария поверх / etc / crontab файл заполняется только «Output:».
Пользователь, выполняющий оболочку и crontab, является пользователем root. Также владелец «currentOutput.txt», «test.txt» и скрипта - root. Мне просто интересно узнать о разном выводе между обычным выполнением и выполнением crontab.
Это моя запись в crontab:
*/5 * * * * root /bin/sh /var/www/testscript.sh
Какие-либо предложения?
попробуйте использовать абсолютный путь к test.txt
, маловероятно, что crontab использует тот же локальный каталог, что и вы, когда вы выполняете скрипт, и этот файл может не существовать.
Рабочий каталог, скорее всего, не тот каталог, в котором хранится ваш файл (например, /var/www
). Попробуйте указать полный путь для test.txt
.
Вы всегда должны быть как можно более конкретными в заданиях cron, поскольку вся среда сильно отличается от вашей обычной среды оболочки.