我與一般使用者不一樣的地方就是,我會寫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"; } } }
沒有留言:
張貼留言