Echo Variable - Точно так же, другой вывод
Я написал сценарий оболочки со следующим содержанием:
#!/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
Какие-либо предложения?
2 ответа
Попробуйте использовать абсолютный путь к test.txt
Маловероятно, что crontab использует тот же локальный каталог, что и вы, когда вы выполняете скрипт, и этот файл может не существовать.
Рабочий каталог, скорее всего, не является каталогом, в котором хранится ваш файл (например, /var/www
). Попробуйте указать полный путь для test.txt
,
Вы всегда должны быть максимально конкретными в заданиях cron, поскольку вся среда сильно отличается от вашей обычной оболочки.