Перенос репы с bitbucket
This commit is contained in:
76
rdrarchiver.pl
Executable file
76
rdrarchiver.pl
Executable file
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
#########################################################
|
||||
# Скрипт для архивирования файлов созданных rdrcollector
|
||||
#
|
||||
# вызывается командой:
|
||||
# rdrarchiver.pl /usr/local/etc/rdrcollector.conf
|
||||
#
|
||||
# Запускается по крону с требуемой периодичностью (сутки)
|
||||
#
|
||||
# Автор: Сергей Калинин e-mail: banzaj28@yandex.ru
|
||||
# распространяется под лицензией GPL
|
||||
# (c) 2015
|
||||
#########################################################
|
||||
|
||||
use IO::File;
|
||||
use Getopt::Long;
|
||||
use File::Path qw(make_path);
|
||||
|
||||
my $opts_pair = IO::File->new("$ARGV[0]") or
|
||||
die "Can not open: $opts{'conf'} $!\n";
|
||||
|
||||
while (<$opts_pair>)
|
||||
{
|
||||
($key, $value) = split('=');
|
||||
$value =~ s/^\s+|\s+$//g;
|
||||
$opts{$key} = $value;
|
||||
#print $opts{'source-port'};
|
||||
}
|
||||
$opts_pair->close();
|
||||
|
||||
# определяем текущую системную дату
|
||||
my $date = ` /bin/date "+%Y %m %d %H %M %S"`;
|
||||
my ($cur_year,$cur_month,$cur_day,$cur_hour,$cur_min,$cur_sec) = split('\s',$date);
|
||||
|
||||
#print "$cur_year,$cur_month,$cur_day,$cur_hour,$cur_min,$cur_sec";
|
||||
|
||||
|
||||
# ищем файлы старше 1 дня и архивируем
|
||||
#$arch = '/bin/find '.$opts{'out-dir'}.' -type f -mtime +1 -exec gzip {} \; -print > rdrcollector.log';
|
||||
#print "$arch\n";
|
||||
#my $result = `$arch`;
|
||||
|
||||
# Получаем список заархивированных файлов
|
||||
opendir(DIR, "$opts{'out-dir'}");
|
||||
my @files = grep('*',readdir(DIR));
|
||||
|
||||
#print files;
|
||||
#my @files = grep(/\.gz/,readdir(DIR));
|
||||
closedir(DIR);
|
||||
|
||||
# создаем каталог для соответствующих сжатых файлов
|
||||
foreach my $file (@files)
|
||||
{
|
||||
#print $file;
|
||||
# в зависимости от имени файла определяем и создаём каталог куда его перемещать
|
||||
my $year = substr($file,0,4);
|
||||
my $month = substr($file,4,2);
|
||||
my $day = substr($file,6,2);
|
||||
|
||||
#print "$year $month $day - $cur_day\n";
|
||||
|
||||
if ($day ne $cur_day) {
|
||||
$dir = $opts{'archive-dir'}."/".$year."/".$month."/".$day;
|
||||
make_path $dir;
|
||||
my $cmd = '/usr/bin/gzip '.$opts{'out-dir'}.'/'.$file;
|
||||
#print $cmd."\n";
|
||||
my $result = `$cmd`;
|
||||
#print $result;
|
||||
# Перемещаем файл в соответствующий каталог
|
||||
$move = '/bin/mv '.$opts{'out-dir'}.'/'.$file.'.gz '. $dir.' > rdrcollector.log';
|
||||
print "$move\n";
|
||||
my $mvResult = `$move`;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user