Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-06-16 15:48:46

  beer_hunter - Użytkownik

beer_hunter
Użytkownik
Zarejestrowany: 2008-11-28

usunięcie ogromnej ilości plików

Witam

Mam spory problem. Jeden z użytkowników mojego serwera pocztowego (postfix/dovecot) miał ustawiony skrypt vacation, który się zapętlił i przez kilka dni wysyłał / zapychał skrzynke odbiorczą wiadomościami zwrotnymi. jest ich tam teraz tyle że nie może zalogować się do poczty, co gorsza jest nawet problem z wylistowaniem zawartości tego foldera. Moje pytanie brzmi, czy znacie jakiś dobry sposób jak pozbyć się naprawde ogromnej ilości plików? (nie wiem ile ich dokładnie jest, bo każdy skrypt wywalal się na próbie ich wyliczenia). Próbowałem już komendy find . | xargs rm -f ale  od dłuższego czasu nie widać żadnego efektu...

Ostatnio edytowany przez beer_hunter (2010-06-16 15:50:24)

Offline

 

#2  2010-06-16 15:51:09

  urbinek - Użytkownik

urbinek
Użytkownik
Skąd: Sosnowiec
Zarejestrowany: 2009-10-01
Serwis

Re: usunięcie ogromnej ilości plików

hmm

Kod:

rm -rf /sciezka/*

i poczekać parę minut ?
--
jak sie przywiesi co crt+c i znowu, aż do skutku

Ostatnio edytowany przez urbinek (2010-06-16 15:52:58)


A w wolnym czasie, robię noże :)
[img]http://nginx.urbinek.eu/_photos/signature.png[/img]

Offline

 

#3  2010-06-16 15:55:43

  beer_hunter - Użytkownik

beer_hunter
Użytkownik
Zarejestrowany: 2008-11-28

Re: usunięcie ogromnej ilości plików

w tym wypadku rm wyleci po chwili błędem "Too Many Arguments"

Offline

 

#4  2010-06-16 16:00:20

  milyges - inż.

milyges
inż.
Skąd: Gorlice/Kraków
Zarejestrowany: 2006-04-09
Serwis

Re: usunięcie ogromnej ilości plików

Kod:

find -type f -exec rm -f '{}' ';'

[url=http://mhroczny.net][b]strona domowa[/b][/url] || [url=http://dug.net.pl][b]polski portal debiana[/b][/url]

Offline

 

#5  2010-06-16 16:02:33

  beer_hunter - Użytkownik

beer_hunter
Użytkownik
Zarejestrowany: 2008-11-28

Re: usunięcie ogromnej ilości plików

próbowałem ale po kilku godzinach niewiele się usunęło...

Offline

 

#6  2010-06-16 16:12:36

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: usunięcie ogromnej ilości plików

Dodaj do [tt]rm[/tt] w findzie milygesa argument [tt]-v[/tt], będziesz wiedział czy pracuje.


Błogosławieni, którzy czynią FAQ.
[url=http://www.opencaching.pl]opencaching[/url] :: [url=http://dug.net.pl/sources.list]debian sources.list[/url] :: [url=http://www.linuxportal.pl/blogi/azhag/wpisy]coś jakby blog[/url] :: [url=http://dug.net.pl/]polski portal debiana[/url] :: linux user #403712

Offline

 

#7  2010-06-16 20:46:11

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: usunięcie ogromnej ilości plików

Może spróbować usunąć katalog prze numer inode. \
http://www.cyberciti.biz/tips/delete-remove-files-with-inode-number.html

Nie próbowałem, nie gwarantuję.

albo może

Kod:

ls | xargs rm

[url=http://www.debian.org/][img]http://www.debian.org/logos/openlogo-nd-50.png[/img][/url]

Offline

 

#8  2010-06-16 21:29:30

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: usunięcie ogromnej ilości plików

Może głupi pomysł ale wywalić cały katalog i utworzyć go na nowo?

Ostatnio edytowany przez giegiel (2010-06-16 21:29:47)

Offline

 

#9  2010-06-16 23:23:02

  tomii - Członek DUG

tomii
Członek DUG
Zarejestrowany: 2007-12-01

Re: usunięcie ogromnej ilości plików

Jak masz ext to uzbrój się w cierpliwość, próbowałeś sprawdzić ile tego jest ?
Zobacz fastrm.

Ostatnio edytowany przez tomii (2010-06-16 23:25:02)

Offline

 

#10  2010-06-17 08:08:57

  beer_hunter - Użytkownik

beer_hunter
Użytkownik
Zarejestrowany: 2008-11-28

Re: usunięcie ogromnej ilości plików

Widze na oko w midnight commanderze, że jest ich multum... spróbuję sprawdzić komendę milygesa z przełącznikiem -v i zobaczę jak rm się wykonuje... system plików to ext3 i usuwanie niestety idzie bardzo wolno... istnieje jakaś możliwość, aby podzielić usuwanie na serie np. po 1000 plików?

Offline

 

#11  2010-06-17 09:55:18

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: usunięcie ogromnej ilości plików

np.:

Kod:

i=0; for f in *; do echo $f; i=$(($i+1)); if [ $i -gt 3 ]; then break; fi done

ale to nie bedzie szybsze od rm -f /katalog (bez gwiazdki)

co do liczenia plikow to takie cos jak ls | wc -l cos zwraca?

Ostatnio edytowany przez bercik (2010-06-17 09:56:12)


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#12  2010-06-17 11:15:07

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: usunięcie ogromnej ilości plików

Jeśli to skrypt pocztowy, to czy wygenerowane przez niego pliki nie mają nazw tworzonych wg określonego schematu (np. z datą i godziną wysłania)? Jeśli tak, to sprawdź co to za schemat i umieszczaj znaczniki wieloznaczne w częściach nazw, a nie całości.


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

#13  2010-06-21 12:19:51

  beer_hunter - Użytkownik

beer_hunter
Użytkownik
Zarejestrowany: 2008-11-28

Re: usunięcie ogromnej ilości plików

Niestety po nazwie pliku nie dało się określić co to za wiadomości. Nazwy składają sięz jakichś identyfikatorów przypisywanych przez dovecota. Problem udało mi się na razie bardziej obejść niż rozwiązać, żadna próba usuwania wiadomości nie dawała skutku a zależało mi na czasie, użytkownik nie mógł się zalogować do swojej skrzynki. Co zrobiłem: zmieniłem nazwę folderu skrzynki odbiorczej, utworzyłem nowy folder i nadałem mu takie same uprawnienia jak poprzedni, przekopiowałem maile do daty w której wystąpiła awaria. Pozostał jedynie całkiem spory śmietnik do usunięcia, ale teraz już przynajmniej nie zależy mi na czasie ;)

dzięki wszystkim za odpowiedzi i porady

Ostatnio edytowany przez beer_hunter (2010-06-21 12:21:31)

Offline

 

#14  2010-06-21 12:54:33

  urbinek - Użytkownik

urbinek
Użytkownik
Skąd: Sosnowiec
Zarejestrowany: 2009-10-01
Serwis

Re: usunięcie ogromnej ilości plików

tak na dobrą sprawę możesz skopiować katalogi na inna partycje i je tam pod montować tymczasowo a tą ze śmieciami sformatować i przekopiować z powrotem

średnio eleganckie ale powinno zadziałać

no chyba, że to systemowa no to nie wiem


A w wolnym czasie, robię noże :)
[img]http://nginx.urbinek.eu/_photos/signature.png[/img]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.009 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00098 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.91.152' WHERE u.id=1
0.00062 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.91.152', 1732376183)
0.00042 SELECT * FROM punbb_online WHERE logged<1732375883
0.00056 SELECT topic_id FROM punbb_posts WHERE id=150121
0.00006 SELECT id FROM punbb_posts WHERE topic_id=17065 ORDER BY posted
0.00043 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=17065 AND t.moved_to IS NULL
0.00007 SELECT search_for, replace_with FROM punbb_censoring
0.00187 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=17065 ORDER BY p.id LIMIT 0,25
0.00077 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17065
Total query time: 0.00593 s