Есть такой скриптик:#!/bin/bash
#
DIR=/home/oleh
FILE=mailbox.PAB
cp $DIR/$FILE /etc/skel
chown root.root /etc/skel/$FILE
chmod 0640 /etc/skel/$FILE
for loop in `ls -l /home | awk '{if($4 ~/users/) print $8}' | grep [a-z]`
do
cp -v -f $DIR/$FILE /home/$loop
chown $loop.users /home/$loop/$FILE
chmod 0640 /home/$loop/$FILE
done
echo "Address book updated" | mail rootПроблема - из командной строки под root - работает.
Запускаешь через cron отрабатывает всё кроме цикла.OS - Slackware 10.2
Помогите плз., где грабли ?
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/atrun
Под рутом его запускай
Спасибо за ответ.Из крона запускал под root.
Попробовал предложенный способ - та же фигня.
>#minute hour mday month
>wday who command
>#
>*/5 *
>* *
> * root
> /usr/libexec/atrun
>
>
>Под рутом его запускай
>Спасибо за ответ.
>
>Из крона запускал под root.
>
>Попробовал предложенный способ - та же фигня.
Укажите в скрипте полные имена к командам ("/bin/awk" вместо "awk" и т. д.)
или определите в нем переменную PATH. Скрипт, скорее всего, просто не
находит эти самые команды.
а если попробовать прописать полный путь к прогам, например к awk
>а если попробовать прописать полный путь к прогам, например к awk
Дениска, вы просто читаете мои мысли. Только как-то медленно :-D
>>а если попробовать прописать полный путь к прогам, например к awk
>
>
>Дениска, вы просто читаете мои мысли. Только как-то медленно :-D
Спасибо всем за ответы.Сдалал как написано - НЕ работает.
Другие скрипты отрабатывают нормально.
>Спасибо всем за ответы.
>
>Сдалал как написано - НЕ работает.
>
>Другие скрипты отрабатывают нормально.
Посмотрите почту root (cron по умолчанию отправляет stdout и stderr
владельцу задания) и логи cron. Можете их и тут показать, глядишь, и
раскумекаем.
/var/log/cron - пусто.
/var/log/messages - ничего от Cron
/var/log/syslog - ничего от CronВ почте рута (stdout и stderr от Cron) - тоже нечего.
>>Спасибо всем за ответы.
>>
>>Сдалал как написано - НЕ работает.
>>
>>Другие скрипты отрабатывают нормально.
>
>
>Посмотрите почту root (cron по умолчанию отправляет stdout и stderr
>владельцу задания) и логи cron. Можете их и тут показать, глядишь, и
>
>раскумекаем.
#!/bin/bash
#
DIR=/home/oleh
FILE=mailbox.PAB
cp $DIR/$FILE /etc/skel
chown root.root /etc/skel/$FILE
chmod 0640 /etc/skel/$FILE
for loop in `ls -l /home | awk '{if($4 ~/users/) print $8}' | grep [a-z]`
do
cp -v -f $DIR/$FILE /home/$loop
chown $loop.users /home/$loop/$FILE
chmod 0640 /home/$loop/$FILE
done
echo "Address book updated" | mail root
попробуйте подебагить :)
например перед
for loop in...
сделать
set>/tmp/debug1
echo `ls -l /home | awk '{if($4 ~/users/) print $8}'`>/tmp/debug2после
do
и перед
cp -v -f $DIR...
echo "loop=$loop">/tmp/debug3....
>попробуйте подебагить :)
>например перед
>for loop in...
>сделать
>set>/tmp/debug1
>echo `ls -l /home | awk '{if($4 ~/users/) print $8}'`>/tmp/debug2
>
>после
>do
>и перед
>cp -v -f $DIR...
>echo "loop=$loop">/tmp/debug3
>
>....пардон,
echo "loop=$loop">/tmp/debug3
аменить на
echo "loop=$loop">>/tmp/debug3:)))
Спасибо за совет !Проблема разрулилась.
Кому интересно - ответ здесь:
http://www.linux.org.ru/view-message.jsp?msgid=1167473&back=...
>>попробуйте подебагить :)
>>например перед
>>for loop in...
>>сделать
>>set>/tmp/debug1
>>echo `ls -l /home | awk '{if($4 ~/users/) print $8}'`>/tmp/debug2
>>
>>после
>>do
>>и перед
>>cp -v -f $DIR...
>>echo "loop=$loop">/tmp/debug3
>>
>>....
>
>пардон,
>echo "loop=$loop">/tmp/debug3
>аменить на
>echo "loop=$loop">>/tmp/debug3
>
>:)))