URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 89397
[ Назад ]

Исходное сообщение
"непонятки с выполнением скрипта через Cron"

Отправлено rdsden , 19-Июл-10 12:28 
Набираю в консоли команду для вывода размеров виртуальных почтовых ящиков пользователей с одновременной сортировкой по размеру:

localhost# du -d 1 /var/spool/mail/sibis.ru/ | sort -rn > /var/log/mailboxlimit/mailsize.txt

В указанной дериктории появляется файл, где отсортирован по размеру записан список всех почтовых ящиков. Все хорошо, ставим это дело в задание на выполнение в определенный часы, а также прикручиваем текущую дату и отправку по почте.

создаем файл mailboxes_spacelimit.sh с таким содержимым:
#!/bin/sh
du -d 1 /var/spool/mail/sibis.ru/ | sort -nr > /var/log/mailboxlimit/mailbox.sizelist
cat /var/log/mailboxlimit/mailbox.sizelist | mail -s "mailbox spacelimit report `date`" root@sibis.ru
mv /var/log/mailboxlimit/mailbox.sizelist /var/log/mailboxlimit/mailbox.sizelist.`date +%d%m%y`

Выставляем права на исполнение, запускам скрпт и вуаля: создался файл со списком, он же отправился по почте, проверяем, все отлично, список с размерами всех ящиков лежит у меня в почте. Осталось только поставить этот скрипт в задание.

Набираю crontab -e
Добавляю строки на ближайшее время:
# Mailbox space limit
58      14      *       *       *       /usr/local/scripts/mailboxes_spacelimit.sh

И что же мы видим? В нужной дериктории лежит нужный файл, он же пришел мне по почте, но на месте размера каждого ящика стоит цифра увеличеная вдвое!

Что я не так делаю?


Содержание

Сообщения в этом обсуждении
"непонятки с выполнением скрипта через Cron"
Отправлено cryo , 20-Июл-10 14:36 
скорее всего дело в разном окружении (ENV) при запуске команды из шелла и из крона.

используйте ключ -k, чтобы жестко задать du вывод в kb или -h, чтобы добавлять еще и вменяемый суффикс (Kb/Mb/Gb):

#!/bin/sh
du -k -d 1 /var/spool/mail/sibis.ru/ | sort -nr > /var/log/mailboxlimit/mailbox.sizelist
cat /var/log/mailboxlimit/mailbox.sizelist | mail -s "mailbox spacelimit report `date`" root@sibis.ru
mv /var/log/mailboxlimit/mailbox.sizelist /var/log/mailboxlimit/mailbox.sizelist.`date +%d%m%y`


"непонятки с выполнением скрипта через Cron"
Отправлено rdsden , 21-Июл-10 10:04 
Спасибо! получилось с ключем -k

Но что-то не пойму смысл этого ключа.. он ничего не изменил, а в мане написано про какие то блоки..


"непонятки с выполнением скрипта через Cron"
Отправлено DeadLoco , 21-Июл-10 11:31 
>Спасибо! получилось с ключем -k
>
>Но что-то не пойму смысл этого ключа.. он ничего не изменил, а
>в мане написано про какие то блоки..

Ну, как бы, блок - 512 байт (сектор), а -к заставляет считать в килобайтах. Килобайт, кстати, ровно вдвое больше сектора, почему и размеры файлов были в два раза больше.