Powered By Blogger

среда, 18 мая 2011 г.

Скрипт для удаления большого кол-ва файлов

Скрипт для удаления большого кол-ва файлов из директории которую не удается открыть стандартными методами.

#!/usr/bin/perl

use strict;
#archive log dir last backslash required
my $ALOG_DIR="/usr/local/nagios/var/spool/perfdata/";
my $LOGFILE="/dev/shm/log.log";
#Keep archive logs for 300 days
my $KEEPTIME=300*24*3600;
#Current time
my $UTIME=time;
$UTIME=$UTIME - $KEEPTIME;
#Read archive log file dir into array
opendir DIR, $ALOG_DIR  || die "can't opendir $ALOG_DIR: $!";
my @dir_arc_log=readdir DIR;
closedir DIR;
my $file;
foreach $file (@dir_arc_log) {
if ($file ne "." and $file ne "..") {
          #Remove files
 my @fstat = stat($ALOG_DIR . $file);
  if (@fstat[9] < $UTIME) {
unlink $ALOG_DIR . $file;
#log
my $time=localtime(time);
#open ( OUT, "> $LOGFILE" ) or die "Cannot open file:  $LOGFILE";
open (LOG,">> $LOGFILE") or die "Cannot open file $file: $LOGFILE";
printf LOG "\[$time\] $file @fstat[9]\n";
#printf LOG "\[$time\] $file @mtime";
close LOG;

Комментариев нет:

Отправить комментарий