- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Нужно на виртуальном хостинге узнать из CGI скрипта (Perl/PHP/etc) размер свободного дискового пространства из доступной, отведенной хостером квоты.
df - как правило к ней нет доступа.
statvfs - выдает информацию по всему разделу винта
Какие решения?
Нужно на виртуальном хостинге узнать из CGI скрипта (Perl/PHP/etc) размер свободного дискового пространства из доступной, отведенной хостером квоты.
df - как правило к ней нет доступа.
statvfs - выдает информацию по всему разделу винта
Какие решения?
exec(repquota)
Курить мануалы
<?php
disk_free_space();
?>
Покурил мануалы (я не PHPшник, поэтому не знал, что есть прикладные функции специально для этого дела). disk_free_space хоть убейся веником на всех хостингах рапортует какую-то ересь, похожую на количество доступного места на винте в целом. Уж больно большие цифры (Гигабайты) там получаются. При этом от пути, который я ей передаю результат не зависит. Примерно то же самое выдает statvfs.
repquota по всем признакам запускается нормально, но на выходе - пусто. Может ей какие права нужны специальные, есть опыт её использования на виртуальных хостингах?
stealthy, можно рекурсивно пройтись по всем папкам, просуммировать размеры и вычесть полученное число из квоты. Будет гарантированно работать на любом хостинге, но результат с погрешностью (чем больше мелких файлов, тем больше погрешность). Если не програмер, то утром поищу код функции обхода каталогов.
kpd, программер. Предложенный вариант не годится, поскольку он требует:
а) знать квоту клиента для хостинга, что в условиях отчуждаемого программного продукта нереально.
б) уйму времени на рекурсивный обход.
Идея проста - если места не осталось, то производить какие-то действия (блокировать запись, оповещать пользователя и т.п.). Если я при каждом действии буду обход директорий устраивать... Сами понимаете не выход.
Была еще одна у меня идея лобовая, просуществовавшая около минуты. Создавать файлы постепенно все большего размера до получения ошибки.
В общем, скорее нужно поставить вопрос так: как реализуются квоты на хостингах, какими средствами? Ведь в /etc/passwd в поле квот для пользователей одни нули. Проверял на мастерхосте, из чего попутно выяснил давно интересующую меня вещь - на одной машине размещено ~500 сайтов. А я думал что 1000-2000, ненамного ошибся, в общем. Не суть, короче если квоты на пространство хранятся где-то в системных ресурсах - значит останется понять можно получить к ним доступ в рамках стандартных для хостинга прав. Или это реализуется каким-то внешним софтом, тогда вероятно это никак не получается.
Иногда жалеешь что не юниксоид.
А задать этот вопрос хостеру?
а) знать квоту клиента для хостинга, что в условиях отчуждаемого программного продукта нереально.
На мастерхосте (и у большинства других хостинг-провайдеров) дисковая квота указана в тарифном плане. Нереально спросить у клиента на каком тарифном плане он сидит? :)
б) уйму времени на рекурсивный обход.
Если размер всех файлов > 500 метров и выполнять обход раз в минуту, то тормоза обязательно будут, но зачем вам такие извращения? :) Пусть скрипт обхода записывает результат в текстовый файл (или в базу) и выполняется раз в несколько часов, никаких тормозов не будет (реализовал эту схему на одном из мастерхостских сайтов).
Кстати, на мастерхосте база данных также учитывается в дисковой квоте, не забудьте и её посчитать (если она существенная).
ОФФТОП. Во всех нормальных универах програмерам уже на первом/втором курсе объясняют что такое рекурсивные функции и для решения каких задач их можно эффективно использовать.
AnNik, не хочу никого обижать, но работаю с хостинг-площадками часто и плотно. После большинства запросов возникает ощущение что ты сам лучше разбираешься в том, что у них происходит. Поэтому я остерегаюсь ненужных контактов. Понятно, что гуру сидят в каждой приличной конторе, только до них дойти нельзя, на звонки и письма сажают тех, кто помоложе.
Кроме того хостер - это админы. А тут вопрос чисто программерский. Вероятнее всего не ответят.
kpd, невозможно спрашивать у клиента на каком он тарифном плане, как правило они этого не знают. А если через 3 года они переедут? А ты уже к сайту отношения не имеешь? Учить их прописывать где то в конфигах квоту и составлять на это документацию, которую или не прочтут или забудут? В конце концов можно просто ошибиться при записи значения куда-то. Это не подход, необходимо все делать автоматически, чтобы пользователь установил и занимался своим бизнесом, сапоги там по интернету продавал...
Кстати, сколько времени выполняется Ваш скрипт, который на Мастерхосте, есть тайминг?
Размер файлов совокупный на подсчет занимаемого места влиять никак не будет. Будет влиять их количество, немного влиять будет еще глубина директорий. Можно, конечно считать раз в час, но:
а) не везде есть cron, а веб-скрипту раз в час выполняться не всегда удастся.
б) раз в час это ОЧЕНЬ неоперативно, нужно актуально понимать сколько места доступного есть.
СУБД мы не используем, поэтому считать их нет смысла, ну а если на то дело пошло на многих хостингах в квоту включена еще и почта, которая, кстати, никак на файловой системе не видна. Так что посчитать её предложенным способом вообще невозможно, разве только сразу вычитать из квоты лимит на почту, который тоже где-то там внутри задается.
Оффтоп не совсем понял. Где нужно рекурсия используется нами и очень эффективно, в частности парсеры все у нас с рекурсиями. Так что если Вы подумали что мы её избегаем как "сложного" программерского приема - это не так. В данном случае этот подход по сути своей очень экстенсивный и имеет ограничения, так что нужно искать другое, инженерно правильное и элегантное решение. Ведь при копировании по FTP система рано или поздно выдает тебе сообщение об ошибке записи, значит FTP сервер знает о квоте от системы. Значит её можно получить (очевидно). Вопрос есть ли у веб скрипта на это права.
В общем, продолжаем эксперименты.
stealthy, эту информацию можно брать из файлов в аккаунте на хостинге... На моем хостинге, например, есть папка ".cpanel-datastore"... Там есть несколько файлов и в одном из них это прописано... Как добраться к файлу придумайте сами... ;)
Понятно, что гуру сидят в каждой приличной конторе, только до них дойти нельзя, на звонки и письма сажают тех, кто помоложе.
Неучи есть везде, но к техподдержке мастерхоста это относится в наименьшей степени :)
Кроме того хостер - это админы. А тут вопрос чисто программерский. Вероятнее всего не ответят.
Если это хоть как-то может повредить безопасности сервера, то не ответят наверняка, и правильно сделают. Мало ли какие бредовые мысли пришли в голову программеру :)
невозможно спрашивать у клиента на каком он тарифном плане, как правило они этого не знают.
Спроси в техподдержке, это они наверняка знают и подскажут.
А если через 3 года они переедут?
Переезд это вообще отдельная песня. Каждый хостинг-провайдер предоставляет свой набор ресурсов (исходя из своих соображений безопасности и эффективности), поэтому перевести перевести сложный сайт от одного провайдера к другому без доработок практически нереально.
Это не подход, необходимо все делать автоматически, чтобы пользователь установил и занимался своим бизнесом, сапоги там по интернету продавал...
А зачем это пользователю вообще знать? Если превысит квоту (дополнительное пространство на мастерхосте ему автоматически выделят), то получит об этом письмо (а ещё до превышения квоты получит гору писем о том что место заканчивается).
Кстати, сколько времени выполняется Ваш скрипт, который на Мастерхосте, есть тайминг?
ХЗ. В лимит 30 укладывается :). Завтра точно посмотрю.
Размер файлов совокупный на подсчет занимаемого места влиять никак не будет.
А про размер кластера не забыли? Сколько места займут 1024 файла размером 1 байт каждый?
б) раз в час это ОЧЕНЬ неоперативно, нужно актуально понимать сколько места доступного есть.
Если очень нужно оперативно всё знать, то лучше посоветоваться с техподдежржкой.
СУБД мы не используем, поэтому считать их нет смысла, ну а если на то дело пошло на многих хостингах в квоту включена еще и почта, которая, кстати, никак на файловой системе не видна.
А где в файловой системе найти базу данных? Я считаю её средствами MySQL. С почтой не сталкивался, но наверняка и её можно посчитать через какой-нибудь интерфейс для работы с почтой.
В данном случае этот подход по сути своей очень экстенсивный и имеет ограничения, так что нужно искать другое, инженерно правильное и элегантное решение.
Если придумаете более элегантный способ обхода каталогов, чем рекурсия, то, будьте добры, скажите об этом мне, очень любопытно.
Ведь при копировании по FTP система рано или поздно выдает тебе сообщение об ошибке записи
Ни разу не было таких проблем из-за дисковой квоты :) Из-за сбоев в Инете бывают разрывы, а чтобы такое...