очистка папки /tmp

1 234
dkameleon
На сайте с 09.12.2005
Offline
386
#21
Andreyka:
Удалять можно по одному файлу, не спеша.

Можно. расскажите, как получить имя первого файла в папке. :)

dkameleon добавил 19.10.2011 в 21:44

iopiop:
как я понимаю, память жрется потому что создается список всех файлов в памяти.
попробуйте поставить фильтр, чтобы ограничить кол-во файлов на удаление, напр. сначала удалить все, что начинается на 'a', потом на 'b' и т.д., или что-то подобное, в зависимости от структуры названий ваших файлов.
скорее всего, при вашем кол-ве файлов, придется фильтровать не по одному символу, а по два, т.е. 'aa', потом 'ab' и т.д.
попробуйте ручками, если память не будет пожираться, значит скрипт писать надо.

пробовал:

find bin-tmp1/sess_000* > find.log

итог тот же.

ещё больше дробить.... ну, даже не знаю...

Дизайн интерьера (http://balabukha.com/)
SI
На сайте с 03.12.2007
Offline
130
#22

А так память ест?

ls -f /tmp1 | head -n 20

-= Онлайн сервисы =-
izbushka
На сайте с 08.06.2007
Offline
110
#23

Попробуйте так:

ls /tmp | xargs -L 10 rm -r

Не уверен что есть разница, но попытка не пытка :)

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#24
Sigmo#ID:
А так память ест?
ls -f /tmp1 | head -n 20

думаю тоже самое будет, еще на стадии ls .... будет весь список, то что потом от него 20 рубанет ... это прикольно но от списка... :) правду сказать он будет с каждым выполнением меньше .... это интересная прогрессия :D

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
vandamme
На сайте с 30.11.2008
Offline
672
#25
sysctl:
find /tmp/ -type f -exec rm -f {} \;

удаляли мне и больше чем пол гига, просто rm fr, точно не помню, без всяких опций, все шустренько удалилось

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#26

ТС, а у вас /tmp это просто "папка" в общем разделе "/" или отдельная партиция? может форматнуть ?:)

izbushka
На сайте с 08.06.2007
Offline
110
#27

Еще можно удалять самим find'ом, без rm:

find /tmp1 -type f -delete
dkameleon
На сайте с 09.12.2005
Offline
386
#28
Romka_Kharkov:
ТС, а у вас /tmp это просто "папка" в общем разделе "/" или отдельная партиция? может форматнуть ?

вообще это папка на общем разделе, при чем созданная испменеджером для юзера в юзердиректории.

I
На сайте с 23.12.2010
Offline
25
#29
dkameleon:

пробовал:
find bin-tmp1/sess_000* > find.log

итог тот же.
ещё больше дробить.... ну, даже не знаю...

черт, правильно, ему же прошерсить надо весь список файлов.

ну вот здесь чел пишет как он удалил порядка 100-150 млн файлов

http://blogs.perl.org/users/randal_l_schwartz/2011/03/perl-to-the-rescue-case-study-of-deleting-a-large-directory.html

причем там написано почему ни ls, ни rm, ни find ему не помогли - они все строят список файлов сначала, что и пожирает всю память.

PS прикинуть размер списка файлов (т.е. сколько памяти потребуется) можно так ls -dl

SI
На сайте с 03.12.2007
Offline
130
#30

ls -f (или -U) должна выдавать список без сортировки.

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий