- 论坛徽章:
- 0
|
本帖最后由 afukada 于 2013-03-29 16:03 编辑
- use Net::FTP;
- %mon2num=("Jan"=>1,"Feb"=>2,"Mar"=>3,"Apr"=>4,
- "May"=>5,"Jun"=>6,"Jul"=>7,"Aug"=>8,
- "Seq"=>9,"Oct"=>10,"Nov"=>11,"Dec"=>12);
- @dcdirA=();#輸入需要遍歷的所有子目錄名
- #獲取當前時間
- ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
- #Query FTP site
- $site="";#在""中間輸入FTP site
- $username="";#在""中間輸入User name
- $password="";#在""中間輸入Password
- $ftp=Net::FTP->new($site,Timeout=>30) or die "Could not connect.\n";
- $ftp->login($username,$password) or die "Could not login.\n";
- $cdir="";#在""中間可以輸入子目錄名,如果要遍歷的子目錄就在主目錄下則不需要
- $ftp->cwd($cdir);#進入子目錄中,目錄下為要遍歷的所有子目錄
- foreach $dcdir(@dcdirA)
- {
- $ftp->cwd($dcdir);#進入子目錄中,搜尋檔案
- @array=$ftp->dir;#列出子目錄下所有目錄和檔案,並存入一個array中
- $check=0;#定義檢查值為0
-
- for(@array)
- {
- #(-rw-r--r-- 1 ftpuser ftpusers 2894033 Jul 7 2006 ls-lR.Z) <-()內是array每一個element的內容
- #(-rwxrwxr-- 1 ftpuser ftpusers 153 Jan 16 13:13 update-sym-links) <-這是今年1月26有更新的檔案,會發現年的那一個部份變成時間
- ($f_competence,$f_ndir,$f_user,$f_group,$f_size,$f_mon,$f_mday,$f_yearortime,$f_name)=split(/\s+/);
- $check++ if($f_yearortime=~/:/ && $mon2num{$f_mon}==$mon+1 && $f_mday==mday);#如果有上傳就讓檢查值加1
- }
-
- push(@nuUser,$dcdir) if($check==0);#如果檢查值為0表示使用者沒有上傳任何檔案
- }
- $ftp->quit;
- print $_,"\n" for(@nuUser);#將為上傳檔案的使用者輸出
复制代码 裡面有一些部份需要你自己填,
還有我不是很確定是不是在每個平台的FTP都是相同的結果
所以有問題再提出來吧:wink: |
|