Файл удален а место не прибавилось. Linux

Тема в разделе "Флудилка", создана пользователем NR55RU, 20 май 2014.

  1. NR55RU

    NR55RU Гик

    Цель этой микро статьи описание ситуации с которой я недавно столкнулся, а точнее вчера, проблема мелкая но может оставить "узелок в память" и в будущем поможет кому то.

    Ситуация была следующей, хостер прислал уведомление что у меня заканчивается дисковая квота, из 9 гигов было съедено 8 с половиной.
    Я пошел разбираться, файлы сайта занимали всего 3 гига, куда делось остальное.
    Выяснилось оно в логах, файл лога занимал почти 5 гигов.
    Я разумеется просто взял и удалил сей файл, так как система создаст его сама при необходимости, но то то было мое удивление когда места ничуть не прибавилось.

    После того как я задал вопрос саппорту, саппорт культурно и вежливо мне объяснил.
    Учитывая недавно прочитанную книгу по программированию в UNIX плюс ответ саппорта, вот в чем была проблема:
    Демон держал открытый дескриптор файла с логами, мое удаление файла лишь привело к уменьшению ссылки на файл.
    Как известно ядро *nix систем, физически стирает файл лишь когда количество ссылок на него станет равно нулю, в моем случае оставалась одна ссылка в открытом дескрипторе демона, таким образом файл не был фактически удален из файловой системы а лишь запись о файле из каталога.
    Для этого мне просто порекомендовали перезагрузить виртуальный сервер, что приведет к закрытию демона и сбросу последней ссылки на файл и ядро само удалит его фактически, так все и случилось.

    Кстати на этой особенностью *nix систем пользуются для создания временный файлов, когда процесс создает новый тем файл и тут же его unlink, таким образом остается единственная ссылка на файл в дескрипторе, после того как процесс будет закрыт, ядро автоматически сотрет файл, даже если процесс будет закрыт принудительно.

    В общем вот такая была ситуация, может оказаться кому-либо полезной :)
     
    Jedi Kriks и Mitrandir нравится это.
  2. NR55RU

    NR55RU Гик

    Решил эту ситуацию описать чуть чуть подробнее в статье:
    Особенности удаления файлов в Linux
    Так как я не являюсь докой в тонкостях файловой системы Linux то мог допустить ошибки в описании, если статью прочтут люди более серьезно разбирающиеся в этом вопросе, буду рад если укажут на неточности.