The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Помогите удалить..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Помогите удалить..."
Сообщение от xtc Искать по авторуВ закладки on 29-Окт-02, 00:15  (MSK)
Я сам являюсь администратором cерверов под ОС FreeBSD

На одном из серверов один из пользователей чтото натворил, непонятно каким образом он создал директорию которая содржит одну и ту же папку и так до тех пор пока просто далше уже нельзя, и выдается такая ошибка

File 'fun' exists but can not be stat-ed: File name too long

# pwd

/usr/home/kopic/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/1/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun/fun

я пробовал е удалить и SU и после уже под рутом заходил ни чего не получилось.

Просто к примеру я даже теперь не могу посмотреть размеры каталогов в home'е да и вообще кто нить знает как это можно завалить?

Заранее благодарен // Виталий.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Помогите удалить..."
Сообщение от Арлекин emailИскать по авторуВ закладки on 29-Окт-02, 08:16  (MSK)
rm -fr /usr/home/kopic/fun
не помогает разве ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Помогите удалить..."
Сообщение от xtc Искать по авторуВ закладки on 29-Окт-02, 14:44  (MSK)
>rm -fr /usr/home/kopic/fun
>не помогает разве ?


нет..

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Помогите удалить..."
Сообщение от uldus Искать по авторуВ закладки on 29-Окт-02, 10:36  (MSK)
>File 'fun' exists but can not be stat-ed: File name too long

Тебе нужно написать скрипт который последовательно дойдет до последней директории и начнет удалять с конца по одной директории.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Помогите удалить..."
Сообщение от xtc Искать по авторуВ закладки on 29-Окт-02, 14:45  (MSK)
>>File 'fun' exists but can not be stat-ed: File name too long
>
>Тебе нужно написать скрипт который последовательно дойдет до последней директории и начнет
>удалять с конца по одной директории.


я боюсь что он тоже самое скажет , когда дойде до того места после которого он уже не сможет читать эту директорию и просто напросто скажет слишком длинное имя..

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: Помогите удалить..."
Сообщение от J Искать по авторуВ закладки on 29-Окт-02, 16:09  (MSK)
>>>File 'fun' exists but can not be stat-ed: File name too long
>>
>>Тебе нужно написать скрипт который последовательно дойдет до последней директории и начнет
>>удалять с конца по одной директории.
>
>
>я боюсь что он тоже самое скажет , когда дойде до того
>места после которого он уже не сможет читать эту директорию и
>просто напросто скажет слишком длинное имя..

а это каталог не является хардлинком на самого себя?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: Помогите удалить..."
Сообщение от Арлекин emailИскать по авторуВ закладки on 29-Окт-02, 17:29  (MSK)
>>>>File 'fun' exists but can not be stat-ed: File name too long
>>>
>>>Тебе нужно написать скрипт который последовательно дойдет до последней директории и начнет
>>>удалять с конца по одной директории.
>>
>>
>>я боюсь что он тоже самое скажет , когда дойде до того
>>места после которого он уже не сможет читать эту директорию и
>>просто напросто скажет слишком длинное имя..
>
>а это каталог не является хардлинком на самого себя?
Он пишет, что юзер это сделал. Что, бсда позволяет юзерам хардлинки делать ???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: Помогите удалить..."
Сообщение от xtc Искать по авторуВ закладки on 29-Окт-02, 20:04  (MSK)
>а это каталог не является хардлинком на самого себя?

я не знаю

ну в midc вроде когда наводишь на папку то он вроде не кажет ни каких  Хардлинков.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: Помогите удалить..."
Сообщение от xtc Искать по авторуВ закладки on 29-Окт-02, 20:14  (MSK)
>ну в midc вроде когда наводишь на папку то он вроде не
>кажет ни каких  Хардлинков.

все началось с того что я поставил quota на юзеров
и решил посмотреть Show directory sizes  в хомах
чтоб увидеть кто уже из юзеров перескочил за quot'у так как я ставил новую систему, и fstab переписался и я забыл его поправить. И не заметил этого сразу, забыл. А многие просто на просто уже перскочили свои лимиты :)  я решил взглянуть как много человек ведаь когда доходила до этого юзера то на слетела. я не понял в чом дело, стал каждого юзера в отдельности проверять, и на шел этот косяк. так что блин теперь с ним делать не знаю.
Этот юзер говорит что он прочитал в какйто линух книги скопировал от туда этот скрипт и запустил получилось это , я его начал спрашивать что где как можно посмотреть на этот скрипт, а он говорит что уже нету от куда на него посмотреть. Так что вот такакя вот беда.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "RE: Помогите удалить..."
Сообщение от J Искать по авторуВ закладки on 30-Окт-02, 11:09  (MSK)
>>а это каталог не является хардлинком на самого себя?
>
>я не знаю
>
>ну в midc вроде когда наводишь на папку то он вроде не
>кажет ни каких  Хардлинков.

а она и не покажет, это ж не симлинк, а харддинк
посмотри номер инода у каталога и его потомка и номера инодов родительского для потомка каталога
ls -ali
а midc - сама по себе вещь глючная

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "RE: Помогите удалить..."
Сообщение от xtc Искать по авторуВ закладки on 31-Окт-02, 09:04  (MSK)
>а она и не покажет, это ж не симлинк, а харддинк
>посмотри номер инода у каталога и его потомка и номера инодов родительского
>для потомка каталога
>ls -ali
>а midc - сама по себе вещь глючная


total 6
111681 drwxr-xr-x  3 qqkopic  users  512 Oct  9 01:09 .
111679 drwxr-xr-x  3 qqkopic  users  512 Oct  9 01:09 ..
111683 drwxr-xr-x  3 qqkopic  users  512 Oct  9 01:09 fun

# ls -ali

>>> next dir

total 6
111683 drwxr-xr-x  3 qqkopic  users  512 Oct  9 01:09 .
111681 drwxr-xr-x  3 qqkopic  users  512 Oct  9 01:09 ..
111685 drwxr-xr-x  3 qqkopic  users  512 Oct  9 01:09 fun

>>> next dir

total 6
111685 drwxr-xr-x  3 qqkopic  users  512 Oct  9 01:09 .
111683 drwxr-xr-x  3 qqkopic  users  512 Oct  9 01:09 ..
111687 drwxr-xr-x  3 qqkopic  users  512 Oct  9 01:09 fun


вот, что  я просто не понял что конкретно надо сделать...


  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "RE: Помогите удалить..."
Сообщение от qq Искать по авторуВ закладки on 01-Ноя-02, 00:34  (MSK)
действительно странно все..
если делать банально
while true; do mkdir fun;cd fun;done
то потом директория fun удаляется rm -rf fun без проблем
а хардлинк на директорию сделать фря вроде как совсем не дает...
а линух (ядро 2.4.16) даже говорит "operation not permitted" когда пытаешся хардлинк на диру сделать...
если где-то и есть хардлинк, то такой скрипт может помочь:

#!/usr/bin/perl

while(chdir "fun"){
open(IN,"ls -ali|");
while(<IN>){
  @a=split(/\s+/);
  if($a[9] eq "."){$dot=$a[0]}
  if($a[9] eq "fun"){
   if($dot>=$a[0]){
    print "dot $dot\nfun $a[0]\n";
    exec "/bin/sh";  
   }  
  }
}
}
print "not found\n"

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "RE: Помогите удалить..."
Сообщение от xtc Искать по авторуВ закладки on 01-Ноя-02, 00:52  (MSK)
>print "not found\n"

спасибо заранее
щас попробую и скажу что да как.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "RE: Помогите удалить..."
Сообщение от xtc Искать по авторуВ закладки on 01-Ноя-02, 02:03  (MSK)
>#!/usr/bin/perl
>
>while(chdir "fun"){
> open(IN,"ls -ali|");
> while(<IN>){
>  @a=split(/\s+/);
>  if($a[9] eq "."){$dot=$a[0]}
>  if($a[9] eq "fun"){
>   if($dot>=$a[0]){
>    print "dot $dot\nfun $a[0]\n";
>    exec "/bin/sh";
>   }
>  }
> }
>}
>print "not found\n"


спасибо.. ты натолкныл меня на мысль и я сделал вот так..

там было 31987 папок ! а после 12000 там еще и файлы появились funny

#!/usr/bin/perl

while(chdir "fun"){
$k=0;

while(chdir "fun"){ $k++; }
$l=0;
chdir "/usr/home/kopic";

while(chdir "fun"){
$l++;
if ( $l>=$k-100 ){`rm -rf fun`;}
}

chdir "/usr/home/kopic";
if ($l==1){goto q1;}
}

q1:
`rm -rf fun`;
print "Vse ubito";

еслибы не ваш пример, я бы не смог.  просто я не сильно владею перл

вот теперь потихоньку развиваюсь.  Всем спасибо за помощь. !!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "RE: Помогите удалить..."
Сообщение от uldus Искать по авторуВ закладки on 30-Окт-02, 11:12  (MSK)
>я боюсь что он тоже самое скажет , когда дойде до того
>места после которого он уже не сможет читать эту директорию и
>просто напросто скажет слишком длинное имя..


Нет, он нормально должен все удалить, проверено.

Попробуй: rm -dv dir
или что-то похожее на
find . -depth -type d -print0 | xargs -0 rm -rf

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру