LINUX.ORG.RU
ФорумAdmin

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

Ответ на: комментарий от anonymous

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

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

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

anonymous
()
Ответ на: комментарий от anonymous

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


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

sdio ★★★★★
()
Ответ на: комментарий от sdio

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

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

Ден.

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