LINUX.ORG.RU

cron, bash непонятки


0

0

Есть такой скриптик:

#!/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 (от root) отрабатывает всё кроме цикла.

Дистр - Slackware 10.2

Помогите плз., где грабли ?

Ден.

anonymous

Re: cron, bash непонятки

PATH не прописан?

anonymous ()
Ответ на: Re: cron, bash непонятки от anonymous

Re: cron, bash непонятки

Спасибо за ответ.

Прписал полный путь к исполняемым файлам - НЕ работает.

Другие скрипты отрабатывают нормально.

anonymous ()
Ответ на: Re: cron, bash непонятки от anonymous

Re: cron, bash непонятки

У тебя локали разные в cron и в консоле, а вывод ls зависит
от локали. Т.е. awk '{print $8}' может быть другим 
полем (не имя файла).


Использовать ls -l, как ты это сделал -- дурной тон в скриптописании.
man find
/group

sdio ★★★★★ ()

Re: cron, bash непонятки

Хотя бы так:

for loop in `find /tmp/home -maxdepth 1 -type d -group users -printf "%f "`
do

sdio ★★★★★ ()
Ответ на: Re: cron, bash непонятки от sdio

Re: cron, bash непонятки

Спасибо за науку !

Скрипт заработал.

Ден.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.