У меня есть сценарий bash, который перемещается по всем папкам внутри заданного пути и выполняет некоторые действия.Сценарий Bash: выполнять действия на основе содержимого файла
Теперь мне нужен этот скрипт, чтобы найти данный путь сам по себе, отслеживая файл, который я буду обновлять с моего сервера.
Итак, сценарий должен:
- проверить, если файл существует todo.txt
- прочитать первую строку файла
- выполнять действия в папке, определенной в этой первой строке
- удалять todo.txt
- дописывания Done.txt с одной и той же линии, что находится в todo.txt
По какой-то причине, когда я запустить скрипт напрямую, это работает отлично
cd /proper/path/to/todo
FILE=todo.txt
if [ -f $FILE ];
then
FOLDER=$(head -1 $FILE)
echo "path to process:"$FOLDER
fi;
Выход хороший, файл читается, то выход «путь к процессу:/исправить/путь/чтения/с/файл»
Однако, когда я создал хрон для запуска этого скрипта, переменная $ FOLDER пуст, поэтому выход только„путь к процессу:“
* * * * * /bin/sh /www/www.mysite.com/myscript.sh >> /www/www.mysite.com/log.txt
Обратите внимание, что: 1. скрипт IS побежал 2. если [-f $ FILE] работает, поэтому файл найден
Это просто головная команда, которая терпит неудачу.
Любые идеи? благодаря!
'$ PATH' не задано cron. Ваш скрипт не может получить 'head'. – eduffy
Если вы добавили командную строку cronjob с помощью 2> & 1, вы можете записать сообщение об ошибке – PasteBT
@eduffy, я устанавливаю PATH в свой файл crontab следующим образом: PATH =/usr/local/bin:/usr/bin:/usr/X11R6/бен:/бен:/USR/игры:/OPT/гном/бен:/USR/Lib/мит/бен:/USR/Lib/мит/SBIN:/USR/местные/RealPlayer:/OPT/лощина/srvadmin/bin: – mitai