BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: Вт 08 янв, 2019 12:28 pm 
Не в сети

Зарегистрирован: Ср 05 окт, 2016 7:07 pm
Сообщения: 134
Откуда: Санкт-Петербург
5 лет назад на одном из старых компов поставил FreeBSD, которая выполняет по сей день всего одну функцию - Secondary DNS
на днях обнаружил, что всё место на диске закончилось.

несмотря на sendmail_enable="NONE" в rc.conf, почтовик нагенерил несчётное количество файлов в /var/spool/clientmqueue
я даже посмотреть их там не могу - mc тупо виснет при попытке зайти в этот каталог, ждал несколько дней, загрузка диска в полку. Локального доступа к этому компу нет, стоит за несколько тысяч километров.
С большим трудом увидел несколько названий файлов, понял чтомногие заканчиваются на "24820", пробую удалить:

Код:
root@dns:/var/spool/clientmqueue # rm *24820
/bin/rm: Argument list too long.
root@dns:/var/spool/clientmqueue # ls -la *24820
/sbin/ls: Argument list too long.


при этам каждая операция выполняется около часа.
Помогает только:

Код:
root@dns:/var/spool/clientmqueue # rm *a024820
root@dns:/var/spool/clientmqueue # rm *b024820
root@dns:/var/spool/clientmqueue # rm *c024820


каждая операция выполняется 15-20 минут, но это будет далеко не всё, каждый проход особождает несколько десятков мегабайт, при общем забитом объёме более 60Гиг.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 08 янв, 2019 1:19 pm 
Не в сети
Модератор
Аватара пользователя

Зарегистрирован: Ср 08 ноя, 2006 2:53 pm
Сообщения: 5435
Откуда: СССР, Харьков
Попробуй.
Код:
#find /var/spool/clientmqueue/ -type f -delete


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 08 янв, 2019 1:49 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3298
Откуда: Харьков
возможно будет ооочень долго удалять (интересно сколько файлов там?)

имхо - проще удалить весь каталог через rm -rf или -rfd и создать его заново


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 08 янв, 2019 4:55 pm 
Не в сети

Зарегистрирован: Ср 05 окт, 2016 7:07 pm
Сообщения: 134
Откуда: Санкт-Петербург
мне тоже очень интересно сколько их там.
через find пробовал, но такое ощущение, что он сначала всё ищет, а потом только начинает работать с результатом, если что-то в процессе обрывается, то результат нулевой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 08 янв, 2019 6:21 pm 
Не в сети

Зарегистрирован: Ср 05 окт, 2016 7:07 pm
Сообщения: 134
Откуда: Санкт-Петербург
запустил полтора часа назад
Код:
find /var/spool/clientmqueue/ -type f > /bootpool/clientmqueue

до сих пор пустой файл, посмотрим что к утру будет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт 08 янв, 2019 7:45 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3298
Откуда: Харьков
Serzh, мож ls c -f прокатит
ls -f|wc - например или ls -f > spisok.txt
ещё можно попробовать древний хак echo * > spisok.txt вдруг сработает

кстати, сколько кажет ls -ldh ?

ещё подумалось, что find явно старый, можно попробовать новый запустить там, он точно построчно выводит найденное и обрабатывает
или попробовать вариант find ./ -type f -print0|xargs -0 rm
хотя может оно работает, нужно просто убедиться

кстати rm -rf перед тем как удалить каталог удаляет файлы по одному, и похоже это самый быстрый способ


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср 09 янв, 2019 1:16 am 
Не в сети

Зарегистрирован: Ср 05 окт, 2016 7:07 pm
Сообщения: 134
Откуда: Санкт-Петербург
спустя 7 часов команда
Код:
find /var/spool/clientmqueue/ -type f > /bootpool/clientmqueue

отработала и в файле размером ~80Мб появилось около 2 миллионов записей, причём до самого последнего момента файл был пустой.
добавил в начало каждой строки "rm " и запустил на выполнение - удаляет сейчас 50-60 файлов в секунду, место освобождается прямо на глазах.

сейчас:
Код:
root@dns:/var/spool/clientmqueue # ls -ldh
drwxrwx---  2 smmsp  smmsp   1.6M Jan  9 02:18 .


походу ему тупо не хватало памяти обработать эту директорию, так как как только пытался что-то сделать с этим каталогом, как сразу же вся свободная память уходила под ARC, даже в своп оно залазило.

Всем спасибо!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Google [Bot], Google Feedfetcher


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика