The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"freeSpace from perl-script"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"freeSpace from perl-script" 
Сообщение от andr emailИскать по авторуВ закладки(??) on 30-Мрт-05, 17:17  (MSK)
Re all!
Есть директория, в неё предстоит писать много-много файлов из perl-скрипта. Перед тем как всё это туда писать, необходимо определить: а хватит ли места на файловой системе ? Вопрос: как это сделать ? Желатьно без CPAN модулей.

P.S. Скрипт должен работать и под unix и под win.
Подскажите, plz, кто уже делал.

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "freeSpace from perl-script" 
Сообщение от PoizOn Искать по авторуВ закладки(ok) on 31-Мрт-05, 10:05  (MSK)
>Re all!
>Есть директория, в неё предстоит писать много-много файлов из perl-скрипта. Перед тем
>как всё это туда писать, необходимо определить: а хватит ли места
>на файловой системе ? Вопрос: как это сделать ? Желатьно без
>CPAN модулей.
>
>P.S. Скрипт должен работать и под unix и под win.
>Подскажите, plz, кто уже делал.

Для никсов можно было бы парсить вывод df
df
Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
/dev/ad0s1a    128990   91458    27214    77%    /
/dev/ad0s1f    257998   14902   222458     6%    /tmp
/dev/ad0s1g  18579892 6398718 10694784    37%    /usr
/dev/ad0s1e    257998   59620   177740    25%    /var
procfs              4       4        0   100%    /proc

Для винды - не знаю... Разве что парсить вывод команды DIR типа bytes free или что-нибудь в этом...


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "freeSpace from perl-script" 
Сообщение от andr emailИскать по авторуВ закладки(??) on 31-Мрт-05, 10:36  (MSK)
>>Re all!
>>Есть директория, в неё предстоит писать много-много файлов из perl-скрипта. Перед тем
>>как всё это туда писать, необходимо определить: а хватит ли места
>>на файловой системе ? Вопрос: как это сделать ? Желатьно без
>>CPAN модулей.
>>
>>P.S. Скрипт должен работать и под unix и под win.
>>Подскажите, plz, кто уже делал.
>
>Для никсов можно было бы парсить вывод df
>df
>Filesystem  1K-blocks    Used    Avail Capacity
> Mounted on
>/dev/ad0s1a    128990   91458    27214
>   77%    /
>/dev/ad0s1f    257998   14902   222458  
>   6%    /tmp
>/dev/ad0s1g  18579892 6398718 10694784    37%    
>/usr
>/dev/ad0s1e    257998   59620   177740  
>  25%    /var
>procfs            
>  4       4  
>      0   100%  
>  /proc
>
>Для винды - не знаю... Разве что парсить вывод команды DIR типа
>bytes free или что-нибудь в этом...

В том-то всё и дело, что скрипт должен быть универсальным и работать в любой оси. В php есть функция diskfreespace() - она это может.
Может кто-нибудь знает её аналог for perl ?
Я нашёл только Filesys::DiskFree на CPAN, но этот модуль, как я понял из исходников, под виндами тоже пахать не будет. Там, как раз способ предложенный вами - с `df`.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "freeSpace from perl-script" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 31-Мрт-05, 13:03  (MSK)
>>>Re all!
>>>Есть директория, в неё предстоит писать много-много файлов из perl-скрипта. Перед тем
>>>как всё это туда писать, необходимо определить: а хватит ли места
>>>на файловой системе ? Вопрос: как это сделать ? Желатьно без
>>>CPAN модулей.
>>>
>>>P.S. Скрипт должен работать и под unix и под win.
>>>Подскажите, plz, кто уже делал.
>>
>>Для никсов можно было бы парсить вывод df
>>df
>>Filesystem  1K-blocks    Used    Avail Capacity
>> Mounted on
>>/dev/ad0s1a    128990   91458    27214
>>   77%    /
>>/dev/ad0s1f    257998   14902   222458  
>>   6%    /tmp
>>/dev/ad0s1g  18579892 6398718 10694784    37%    
>>/usr
>>/dev/ad0s1e    257998   59620   177740  
>>  25%    /var
>>procfs            
>>  4       4  
>>      0   100%  
>>  /proc
>>
>>Для винды - не знаю... Разве что парсить вывод команды DIR типа
>>bytes free или что-нибудь в этом...
>
>В том-то всё и дело, что скрипт должен быть универсальным и работать
>в любой оси. В php есть функция diskfreespace() - она это
>может.
>Может кто-нибудь знает её аналог for perl ?
>Я нашёл только Filesys::DiskFree на CPAN, но этот модуль, как я понял
>из исходников, под виндами тоже пахать не будет. Там, как раз
>способ предложенный вами - с `df`.

Можно сначала узнавать имя OS
print $^O
Че нить типа
#!/usr/bin/perl -w
if ($^O eq "freebsd") {
# Do df stuff
print "FREEBSD\n";
}
elsif ($^O eq "MSWin32") {
# Do dir stuff
print "WINDOWS\n";
}
else {
print "OS not supported\n";
}


Не претендую на оригинальность =)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "freeSpace from perl-script" 
Сообщение от PoizOn Искать по авторуВ закладки(ok) on 01-Апр-05, 11:37  (MSK)

>>>Для винды - не знаю... Разве что парсить вывод команды DIR типа
>>>bytes free или что-нибудь в этом...
>>
>>В том-то всё и дело, что скрипт должен быть универсальным и работать
>>в любой оси. В php есть функция diskfreespace() - она это
>>может.
>
>Можно сначала узнавать имя OS
>print $^O
>Че нить типа
>#!/usr/bin/perl -w
>if ($^O eq "freebsd") {
># Do df stuff
>print "FREEBSD\n";
>}
>elsif ($^O eq "MSWin32") {
># Do dir stuff
>print "WINDOWS\n";
>}
>else {
>print "OS not supported\n";
>}
>
>
>Не претендую на оригинальность =)
Я это как раз и имел в виду - для каждой оси написать отдельную процедуру определения freespace. Для никсов парсить df, для винды парсить DIR

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "freeSpace from perl-script" 
Сообщение от andr emailИскать по авторуВ закладки(??) on 04-Апр-05, 08:53  (MSK)
Вобщем не стал я ничего изобретать и сделал так как все тут и советуют - смотрю ОС, если БСД - парсю df, если win - парсю dir, если др. ОС - return 0;
но для меня всё равно загадка: как же это всё реализовано в php-шной diskfreespace() ?
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру