Версия системы.
Код: Выделить всё
# cat /etc/redhat-release
CentOS release 5.9 (Final)Подскажите пожалуйста что я делаю не так.
имеется с курипт стаким содержимым.
Код: Выделить всё
if [ "${SOR}" != "" ]; then
for f in ${SOR};
do
egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" "$f" | sort -u > /srv/blok_site/blok.ip.oldd
cat "$f" | grep -oe '\in.*\]' | sed 's|.*TA\[||; s/[]\]\]*$//' | sort -u > /srv/blok_site/blok.dom.oldd
doneЕсли запустить этот скрипт из консоле sh my.sh то все нормально, он отробатывает коректно.
Но если запустить этот скрипт по крону, но возникают трудности с седом.
А имеено с sed 's|.*TA\[||; s/[]\]\]*$//'
Если без сэд записи выполнить, то выполняется без ошибок, но тогда и не парсится.
так же пробовал указывать полные пути к бинарникам, толку небыло.
Уже и не знаю что делать.
Что происходит: это команда парсит файл на нужные мне данные, и спосле кладет из в файл /srv/blok_site/blok.dom.oldd получается большой список, если запускается по крону, то кладется последняя запись из этого списка.
Сровнил переменные окржения крона и рута, они отличаются, после давил переменную окружения от рута IFS="\$\t\n" к скрипту.
теперь скрипт категорически не хочет пониматься пути.
Вот лог выполнения скрипта.
Код: Выделить всё
+ BASH=/bin/sh
+ IFS='$\t\n'
+ INPUTRC=/etc/inputrc
+ LANG=en_US.UTF-8
+ PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin
+ SHELL=/bin/bash
+ SHLVL=1
+ TERM=xterm
++ ls /srv/blok_site/dump.xml
+ SOR=/srv/blok_site/dump.xml
+ DIS=/srv/blok_site/blok
+ OLD=/srv/blok_site/old
++ date +%Y-%m-%d
+ DATE=2013-10-04
+ '[' /srv/blok_site/dump.xml '!=' '' ']'
+ for f in '${SOR}'
+ cat /srv/blok_si
+ grep -oe '\in.*\]'
cat: /srv/blok_si: No such file or directory
+ sed 's|.*TA\[||; s/[]\]\]*$//'
+ sort -u
+ for f in '${SOR}'
+ cat e/dump.xml
cat: e/dump.xml: No such file or directory
+ grep -oe '\in.*\]'
+ sed 's|.*TA\[||; s/[]\]\]*$//'
+ sort -uПодскажи в чем я ошибся?