Я пишу скрипт, который проверяет наличие места на сервере и удаляет старые резервные копии, если места меньше 2 ГБ. Скрипт работает нормально, но поскольку я использую use strict; использовать предупреждения; в моем скрипте для моей практики эта ошибка выбрасывается.
Вот сценарий
#!/usr/bin/perl
use strict;
use warnings;
my @backups;
my $now=time();
my $dayago=10;
my (@space,@freesp);
@space=grep /\/dev\/md0/,`df`;
for(@space){
chomp;
@freesp=split /\s+/ ,$_;
}
chdir '/home/ftpusr/backup' or die "Can't cd to backup dir: $!\n";
while (($freesp[3]/1024/1024 < 2.0) && ($dayago > 0)){
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($now-$dayago*60*60*24);
my $today_timestamp=sprintf("%4d%02d%02d",$year+1900,$mon+1,$mday);
@backups = glob("*NODE0000.CATN0000.$today_timestamp*");
#print "@backups\n";
$dayago -= 1;
#print "$dayago\n";
unlink ($backups[0]);
}
Я инициализировал параметр $dayago равным 10, чтобы он проверял резервную копию за последние 10 дней и приближался к текущей дате, поэтому, насколько я понял, для 1-й итерации цикла while он не нашел конкретный файл с временным пространством, поэтому он не мог вставить ссылку, поэтому выдал это предупреждение. Можно ли как-нибудь убрать это предупреждение?
Вот O/P, когда я запускаю скрипт
9
Use of uninitialized value in unlink at purge3.pl line 26.
8
Use of uninitialized value in unlink at purge3.pl line 26.
7
Use of uninitialized value in unlink at purge3.pl line 26.
6
Use of uninitialized value in unlink at purge3.pl line 26.
5
Use of uninitialized value in unlink at purge3.pl line 26.
4
Use of uninitialized value in unlink at purge3.pl line 26.
GSRTC.0.db2inst1.NODE0000.CATN0000.20130315102900.001
3
GSRTC.0.db2inst1.NODE0000.CATN0000.20130316150941.001 GSRTC.0.db2inst1.NODE0000.CATN0000.20130316171526.001
2
1
Use of uninitialized value in unlink at purge3.pl line 26.
GSRTC.0.db2inst1.NODE0000.CATN0000.20130318095532.001
0
И файлы в каталоге будут перечислены так, как мне нужно их удалить
GSRTC.0.db2inst1.NODE0000.CATN0000.20130315102900.001
GSRTC.0.db2inst1.NODE0000.CATN0000.20130316150941.001
GSRTC.0.db2inst1.NODE0000.CATN0000.20130318095532.001
AWDRT.0.db2inst1.NODE0000.CATN0000.20130319092156.001
GSRTC.0.db2inst1.NODE0000.CATN0000.20130319095258.001
chdir
: perldoc.perl.org/functions/chdir.html - person Andy Lester   schedule 21.03.2013