我與一般使用者不一樣的地方就是,我會寫code解決這鳥事,不過就是把檔案撈出來砍掉嘛,順便重做連結讓找的時候方便一點而已,所以我寫出底下的code,這主要是運作在Linux伺服器上,我家的超級影音動物機(改天專題介紹一下這強大的機器),利用crontab排程更新資料就變得十分完美,只要丟檔案到AutoSeed資料夾下,等著看最新下載的就好,當然這個程式改一改就可以自動砍掉老舊的檔案,自動保持系統容量在一定的範圍之內。
#!/usr/bin/perl -w
use File::Basename;
$fileLocate="/media/mediaDisk";
@lines=`find $fileLocate/done`;
my $var=`rm -fr $fileLocate/dayList/*`;
my $index=0;
foreach $line(@lines){
chomp($line);
if(($line =~ /\.url$/i)||
($line =~ /\.chm$/i)||
($line =~ /\.mht$/i)||
($line =~ /\.txt$/i)||
($line =~ /___padding_file/)
){
unlink("$line");
}
if(($line =~ /\.mkv$/i)||
($line =~ /\.avi$/i)||
($line =~ /\.divx$/i)||
($line =~ /\.mov$/i)||
($line =~ /\.mp4$/i)||
($line =~ /\.m4v$/i)||
($line =~ /\.rmvb$/i)||
($line =~ /\.rm$/i)||
($line =~ /\.wmv$/i)||
($line =~ /\.asf$/i)||
($line =~ /\.ass$/i)||
($line =~ /\.srt$/i)||
($line =~ /\.ssa$/i)||
($line =~ /\.sub$/i)||
($line =~ /\.idx$/i)||
($line =~ /\.vkt$/i)
){
if(-f $line){
my @statArray=stat("$line");
my ($sec,$min,$hour,$mday,$mon,$year)=localtime($statArray[9]);
$year+=1900;
$mon++;
my $locate="$fileLocate/dayList/$year-$mon-$mday";
#printf("%s\n",$line);
if(!(-e $locate)){
mkdir("$locate");
print "[[$locate]]\n";
}
my($fname,$dir,$ext)=fileparse($line);
print "$fname\n\t$dir\n\t$ext\n";
print "ln -s \'$line\' \'$locate/$fname\'";
if(-e "$locate/$fname"){
$var=`ln -s \'$line\' \'$locate/$index_$fname\'`;
$index++;
}
$var=`ln -s \'$line\' \'$locate/$fname\'`;
}
}else{
if(-z $line){
print ">>$line\n";
}
}
}
沒有留言:
張貼留言