The OpenNET Project / Index page

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

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

"Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 17-Янв-05, 15:55  (MSK)
Как скриптом стереть в директории с кучей поддиректорий старые файлы, скажем, что старше 30 дней? Это нужно для поддержания общей папки на сервере  (читай - помойки) в приличном состоянии. Сиcтема FreeBSD. Спасибо заранее.
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "Скрипт для чистки директории" 
Сообщение от ACCA Искать по авторуВ закладки(ok) on 17-Янв-05, 22:47  (MSK)
>Как скриптом стереть в директории с кучей поддиректорий старые файлы, скажем, что
>старше 30 дней? Это нужно для поддержания общей папки на сервере


man find

Например для GNU find version 4.1.20:

find /your/directory -ctime 30+ -type f | xargs rm -f

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 18-Янв-05, 09:57  (MSK)
>find /your/directory -ctime 30+ -type f | xargs rm -f

Спасибо:)


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 18-Янв-05, 12:25  (MSK)
>Спасибо:)
Не все так просто:( Файлы на сервере имеют даты создания, а не помещения на сервер. И если я сегодня кладу туду файл, созданный в ноябре, то он уже старый для скрипта. Может есть способ отследить дату появления файла на сервере?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Скрипт для чистки директории" 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 19-Янв-05, 19:59  (MSK)
>>Спасибо:)
>Не все так просто:( Файлы на сервере имеют даты создания,

нет такого понятия (даты создания):

     st_atime      Time when file data last accessed.  Changed by the
                   mknod(2), utimes(2), read(2) and readv(2) system calls.

     st_mtime      Time when file data last modified.  Changed by the
                   mkdir(2), mkfifo(2), mknod(2), utimes(2), write(2) and
                   writev(2) system calls.

     st_ctime      Time when file status was last changed (inode data modifi-
                   cation).  Changed by the chflags(2), chmod(2), chown(2),
                   creat(2), link(2), mkdir(2), mkfifo(2), mknod(2),
                   rename(2), rmdir(2), symlink(2), truncate(2), unlink(2),
                   utimes(2), write(2) and writev(2) system calls.


другого не дано по определению.


> а не
>помещения на сервер. И если я сегодня кладу туду файл, созданный
>в ноябре, то он уже старый для скрипта. Может есть способ
>отследить дату появления файла на сервере?

Можно смотреть в сторону access time. Возвращаясь к тому же find , см. ключЪ -atime.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 20-Янв-05, 11:56  (MSK)
>нет такого понятия (даты создания):

В винде есть три даты: создания, изменения и открытия.
У меня пользователи создают файлы в винде и меняются ими через сервер (Samba). А потом забывают стирать. Мне надо, что бы файлы через месяц удалялись с сервера независимо от даты доступа или изменения, потому что они могли быть созданы в прошлом году, а выложены сегодня. В результате их дата на сервере такая же, как и в винде, то есть дата создания. А доступа или изменения тоже может не быть. Юзер скопировал себе файл и все, лежит он себе там.

>Можно смотреть в сторону access time. Возвращаясь к тому же find ,
>см. ключЪ -atime.

С этим не получается. Копирую старинный файл на сервер, делаю: -atime -1,
в результате ничего не выводится.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 20-Янв-05, 12:04  (MSK)
Похоже, -ctime то, что нужно. Можно было после первого же ответа все сделать. Там в скрипте + должен стоять перед 30. Из-за этого я и втух. А так скрипт работает. Единственно все файлы вдруг стали исполняемыми почему-то...
Теперь осталось только разобраться с каталогами, find изменяет access time каталогов. Надо как-то удалять пустые каталоги.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Скрипт для чистки директории" 
Сообщение от klalafuda emailИскать по авторуВ закладки on 20-Янв-05, 12:17  (MSK)
>>>Спасибо:)
>>Не все так просто:( Файлы на сервере имеют даты создания,
>
>нет такого понятия (даты создания):

если быть точным и занудным, то, допустим, в QNX4/6 есть такое понятие, как дата создания файла :) как в API так и на уровне fs. задается как st_ftime в  struct stat.

хотя, конечно, это не POSIX/Lunix way..

// wbr

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 20-Янв-05, 16:35  (MSK)
Опять у меня загвоздка.
find -ctime +30 -type f
Эта команда исправно находит файлы, но удалить их не получается, то есть если добавить '| rm -f' или '| xargs rm -f' то они не удаляются. Как быть?
PS Прошу прощения за ламерские вопросы.


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Скрипт для чистки директории" 
Сообщение от XMan Искать по авторуВ закладки(ok) on 20-Янв-05, 23:12  (MSK)
Тебе ж сказали - "man find". Рекомендую всё же прочитать его, дабы не задавать лишних вопросов.
В данном случае, на предмет параметра -exec
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 21-Янв-05, 09:18  (MSK)
>Тебе ж сказали - "man find". Рекомендую всё же прочитать его, дабы
>не задавать лишних вопросов.
>В данном случае, на предмет параметра -exec

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Скрипт для чистки директории" 
Сообщение от Аноним emailИскать по авторуВ закладки on 21-Янв-05, 06:50  (MSK)
>если добавить '| rm -f' или '| xargs rm -f' то
>они не удаляются. Как быть?

Что пишет? Может проблема с правами доступа.

Посмотри еще програмку tmpwatch, она как раз занимается удалением старых файлов.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Скрипт для чистки директории" 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 20-Янв-05, 21:14  (MSK)
>>>>Спасибо:)
>>>Не все так просто:( Файлы на сервере имеют даты создания,
>>
>>нет такого понятия (даты создания):
>
>если быть точным и занудным, то, допустим, в QNX4/6 есть такое понятие,
>как дата создания файла :)

Кустарные имплементации оставим за кулуарами :). Например, для форума qnx.org.ru ;-D

> как в API так и на
>уровне fs. задается как st_ftime в  struct stat.

если быть очень занудным :) то susv3 говорит нам о ином http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/stat.h.html

Как верно замечено, это не POSIX.


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 21-Янв-05, 09:27  (MSK)
Маны я читаю. С параметром -exec все работает, но не работает с |xargs, что предпочтительнее.
С правами, наверное, все в порядке, если я могу удалить любой файл вручную, да и скриптом тоже. В данный момент загвоздка одна - |xargs rm.
Пишет No such file or directory.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Скрипт для чистки директории" 
Сообщение от XMan Искать по авторуВ закладки(ok) on 21-Янв-05, 14:14  (MSK)
А чем предпочтительнее xargs ?

Хотя у меня работает :)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 21-Янв-05, 15:12  (MSK)
>А чем предпочтительнее xargs ?
Тут статья хорошая
http://www.unixreview.com/documents/s=8274/sam0306g/
>Хотя у меня работает :)
А у меня нет:(
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "Скрипт для чистки директории" 
Сообщение от XMan Искать по авторуВ закладки(ok) on 21-Янв-05, 21:51  (MSK)
> http://www.unixreview.com/documents/s=8274/sam0306g/

404: File not found

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "Скрипт для чистки директории" 
Сообщение от ACCA Искать по авторуВ закладки(ok) on 22-Янв-05, 03:22  (MSK)
>вручную, да и скриптом тоже. В данный момент загвоздка одна -
>|xargs rm.
>Пишет No such file or directory.

find -ctime +30 -type f -print0 | xargs -0 rm -f
find -ctime +30 -type d -print0 | xargs -0 rmdir


rmdir будет работать помягче, чем rm -rf.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

18. "Скрипт для чистки директории" 
Сообщение от RipMan emailИскать по авторуВ закладки(ok) on 24-Янв-05, 09:22  (MSK)
Вот ссылка
http://www.opennet.dev/opennews/art.shtml?num=2591
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

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




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

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