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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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
hmm
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)
Offline
w tym wypadku rm wyleci po chwili błędem "Too Many Arguments"
Offline
próbowałem ale po kilku godzinach niewiele się usunęło...
Offline
Dodaj do [tt]rm[/tt] w findzie milygesa argument [tt]-v[/tt], będziesz wiedział czy pracuje.
Offline
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
ls | xargs rm
Offline
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
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
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
np.:
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)
Offline
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.
Offline
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
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
Offline
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00003 | SET NAMES latin2 |
0.00101 | 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.135.184.195' WHERE u.id=1 |
0.00074 | UPDATE punbb_online SET logged=1732373379 WHERE ident='3.135.184.195' |
0.00040 | SELECT * FROM punbb_online WHERE logged<1732373079 |
0.00041 | SELECT topic_id FROM punbb_posts WHERE id=150146 |
0.00090 | SELECT id FROM punbb_posts WHERE topic_id=17065 ORDER BY posted |
0.00080 | 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.00013 | SELECT search_for, replace_with FROM punbb_censoring |
0.00093 | 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.00621 s |