Страница 1 из 1

Ошибка определения размера папки

Добавлено: 2010-07-28 10:47:48
bobot
вот скрипт: (размер папки)

Код: Выделить всё

$size = '';
size_of_dir_num('/usr/');
// вместо /home/test1.ru - путь к директории размер которой надо узнать
function size_of_dir_num($path)
{

$dir = opendir($path);
global $size;
while($d = readdir($dir))
{
if ($d == '.' || $d == '..') continue;
if (is_file($path.'/'.$d))
{
$size = $size + filesize($path.'/'.$d);
}
else if (is_dir($path.'/'.$d)) size_of_dir_num($path.'/'.$d);
}

}
echo ($size / 1024 / 1024);
echo(' mb');
папку например /home/bobot определяет размер
вот права на папку

Код: Выделить всё

drwxrwxrwx  10 bobot       wheel       1536 27 апр 16:20 bobot
вот внутри папки содержится

Код: Выделить всё

-rwxrwxrwx   1 root    wheel       22 21 янв  2010 bob.pref
-rwxrwxrwx   1 root    wheel        0 21 янв  2010 cat
-rwxrwxrwx   1 root    wheel    16345 11 янв  2010 change_pass-2.7a-1.4.x.tar.gz
-rwxrwxrwx   1 root    wheel    19210 12 янв  2010 change_passwd-3.1-1.2.8.tar.gz
-rwxrwxrwx   1 root    wheel    29907 11 янв  2010 change_sqlpass-3.3-1.2.tar.gz
-rwxrwxrwx   1 root    wheel     7563 12 янв  2010 cpanel_pw_changer.1.3-1.3.tar.gz

а вот если я хочу определить /mail/pochta/bobot

оно выдаёт ошибку

Код: Выделить всё

Warning: opendir(/mail/pochta/bobot) [function.opendir]: failed to open dir: No such file or directory in /usr/local/www/pochta/qouta/size.php on line 9

Warning: readdir(): supplied argument is not a valid Directory resource in /usr/local/www/pochta/qouta/size.php on line 11
0 mb
вот права на папку /mail/pochta/bobot

Код: Выделить всё

drwx------  12 mailnull  wheel  1024 28 июл 09:36 Maildir
а в корне Maildir

Код: Выделить всё

drwx------  5 mailnull  wheel     512  8 апр 17:36 .&BB0ENQQ2BDUEOwQwBEIENQQ7BEwEPQQwBE8- &BD8EPgRHBEIEMA-
drwx------  5 mailnull  wheel     512 22 мар 17:08 .&BCAENQRIBDUEPQQ4BDU- &BD8EQAQ+BDEEOwQ1BDw-
drwx------  5 mailnull  wheel     512  1 апр 14:00 .Infected Items
drwx------  5 mailnull  wheel     512 20 июл 10:35 .Sent
drwx------  5 mailnull  wheel     512 15 окт 00:09 .Spam
drwx------  5 mailnull  wheel     512 20 июл 12:08 .Trash
drwx------  5 mailnull  wheel     512  9 фев 20:06 .Trash.Drafts
drwx------  2 mailnull  wheel    3072 28 июл 09:36 cur
-rw-------  1 mailnull  wheel      11 12 окт 10:41 dovecot-keywords
-rw-------  1 mailnull  wheel    2218 28 июл 09:30 dovecot-uidlist
-rw-------  1 mailnull  wheel       8  1 апр 14:00 dovecot-uidvalidity
-rw-------  1 mailnull  wheel       0 25 янв  2010 dovecot-uidvalidity.4b5db4cf
-rw-------  1 mailnull  wheel    1088 28 июл 09:30 dovecot.index
-rw-------  1 mailnull  wheel   58368 28 июл 09:36 dovecot.index.cache
-rw-------  1 mailnull  wheel  400688 28 июл 09:36 dovecot.index.log
-rw-------  1 mailnull  wheel   32876 15 окт 14:47 dovecot.index.log.2
-rw-------  1 mailnull  wheel    1365 28 июл 09:45 maildirsize
drwx------  2 mailnull  wheel     512 28 июл 09:45 new
-rw-------  1 mailnull  wheel     130  1 апр 13:31 subscriptions
drwx------  2 mailnull  wheel     512 28 июл 09:45 tmp
Я так понимаю с правами ошибка! Так как же мне быть ? Мне рекомендуется не изменять права на ящик юзера, как мне вывести этот размер в таком случае?

Re: Ошибка определения размера папки

Добавлено: 2010-07-28 10:58:40
Burner
вы не можете посчитать размер папки, если ее содержимок не видите. судо используйте.

Re: Ошибка определения размера папки

Добавлено: 2010-07-28 11:06:33
dmtr

Код: Выделить всё

du -s /path/to/dir
не получится использовать?

Re: Ошибка определения размера папки

Добавлено: 2010-07-28 11:08:55
bobot
Burner писал(а):вы не можете посчитать размер папки, если ее содержимок не видите. судо используйте.
Я ещё так сделал

Код: Выделить всё

<?php
system('du -s -h /mail/pochta/bobot/Maildir');
?>[/code]

результат страница пустая

а вот если другая папка

Код: Выделить всё

system('du -s -h /home/bobot');
то результат есть

Re: Ошибка определения размера папки

Добавлено: 2010-07-28 11:15:55
bobot
dmtr писал(а):

Код: Выделить всё

du -s /path/to/dir
не получится использовать?
Я ещё так сделал

Код: Выделить всё

<?php
system('du -s -h /mail/pochta/bobot/Maildir');

?>
результат страница пустая

а вот если другая папка

Код: Выделить всё

<?php
system('du -s -h /home/bobot');
?>
то результат есть