Після видалення великого файлу, скільки часу потрібно `df`, щоб отримати зміну?


12

Я видалив файл журналу 2,3 Гб на своєму сервері Ubuntu, і dfздається , він не сприймає зміни. Як правило, існує затримка, перш ніж dfможна виявити, що великий файл видалено?

Відповіді:


20

Здається, що файл все ще відкритий деяким процесом. Вам потрібно буде перезапустити цю службу, щоб звільнити місце на диску.


1
Особливо вірно це стосується файлів журналів. Багато програм відкривають журнал реєстрації при запуску і не закривають їх до виходу.
mattdm

1
І ви можете дізнатися, чи він досі використовується та ким користуються lsof
Joris

Чудове запитання та чудова відповідь. Я це цікавлюсь вже деякий час. Крім того, ви зможете змусити його закрити обробку файлів, надіславши його SIGHUP. Наприклад, якщо процес 12345 відкрив "видалений" файл, то його sudo kill -HUP 12345можна закрити. (Звичайно, це залежить від того, як цей процес обробляє сигнал SIGHUP. Але багато файлів, орієнтованих на демон, закриються і знову відкриють ручки файлів, коли вони отримають SIGHUP.)
Марк Е. Хааз

Я думав, що ми не можемо видалити відкриті файли!
Ashish Karpe

1
@AshishKarpe Ні, ви можете видалити відкритий файл, але процес з ним відкритий збереже вміст файлу на диску. Файл тепер невидимий для інших процесів, через те, що не має жодного існуючого імені файлу, але процес, який він відкрив, все ще може його читати і записувати. Як тільки цей процес закриє файл, вміст буде видалено, повернувши місце на диску.
Джонатан Хартлі

2

Якщо у файловій системі не вистачає місця, ви можете працювати з зарезервованим простором у файловій системі. У файлових системах ext2 / 3/4 є деякий зарезервований простір для кореня. За замовчуванням це 5%. Отже, якщо вона була повною, а 2,3 Гб - менше 5% місця на диску, файлова система все одно буде видана повною.

У цій ситуації у вас є два варіанти. Щоб продовжувати звільняти простір до того, що у вас є доступний вільний простір, або змінювати кількість місця, яке зарезервувала файлова система. Для зміни кількості зарезервованого простору використовуйте tune2fs -m 0 /dev/sda1заміну 0 на відсоток зарезервованого простору, який ви хочете мати, і / dev / sda1 відповідним пристроєм.

Додаткову інформацію див. У прийнятій відповіді на це питання .


0

Недовго. Високі шанси, що файл просто все ще використовується. Не буде звільнено місце на диску, поки ви не припините відповідний процес.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.