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
Сообщения: 5437
Откуда: СССР, Харьков
Попробуй.
Код:
#find /var/spool/clientmqueue/ -type f -delete


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

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

имхо - проще удалить весь каталог через 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
Сообщения: 3301
Откуда: Харьков
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 часа


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

Зарегистрированные пользователи: Bing [Bot], Majestic-12 [Bot]


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

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