Автор Тема: удаление старых файлов  (Прочитано 4784 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Biggelow

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 95
  • +0/-0
  • 0
    • Просмотр профиля
удаление старых файлов
« : 04 Сентября 2006, 12:11:58 »
Всем привет!

Такая проблема: есть папка tmp в которой постоянно появляются файлы. Она переполняется и сайт загибается. Как мне узнать те файлы которые старше часа и удалять их?

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
удаление старых файлов
« Ответ #1 : 04 Сентября 2006, 15:44:30 »
perldoc -f readdir
perldoc -f stat
perldoc -f unlink
The documentations is your friend

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
удаление старых файлов
« Ответ #2 : 04 Сентября 2006, 18:20:19 »
неизобретай велосипед - пользуй tmpwatch. Практически все основные утилиты написаны до нас.
Всё будет хорошо - я договорился!

Оффлайн Biggelow

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 95
  • +0/-0
  • 0
    • Просмотр профиля
удаление старых файлов
« Ответ #3 : 05 Сентября 2006, 07:24:06 »
Skif
не знаю как с ней работать...

Оффлайн Biggelow

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 95
  • +0/-0
  • 0
    • Просмотр профиля
удаление старых файлов
« Ответ #4 : 05 Сентября 2006, 10:36:09 »
NeoNox

Спасибо разобрался.

Кому интересно, вот чего получилось:

$some_dir="../tmp";

opendir(DIR, $some_dir) || die "can\'t opendir $some_dir: $!";
@dots = readdir(DIR);
closedir DIR;

$a=3;
foreach(@dots){
   
   my @filestat=stat("$some_dir/@dots[$a]");
   
   $nowtime=time();
   
   $raznica=$nowtime-@filestat[9];
   
   if(@filestat[0] && $raznica > 3600){
      unlink("$some_dir/@dots[$a]");
   }
   $a++;
}

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
удаление старых файлов
« Ответ #5 : 06 Сентября 2006, 18:54:53 »
Biggelow
Элементарно
0       1       *       *       *       root    /usr/local/sbin/tmpwatch 24 /tmp
0       1       *       *       *       root    /usr/local/sbin/tmpwatch 24 /var/tmp

Удаляет в 1 минуту первого все фалы старше 24 часов. К ней идет детальный ман.
Всё будет хорошо - я договорился!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28