2014-06-25 146 views
0

我想創建一個目錄並通過PERL FTP功能在遠程服務器上傳文件。一切工作正常,但我不能用CHMOD 777上傳它們。是我可以通過命令更改的東西,還是由用戶訪問級別決定?具有完全權限的FTP上傳(CHMOD 777)

#!/usr/bin/perl -w 
use Net::FTP; 
my $ftp=Net::FTP->new($server); 
$ftp->login($user, $password); 
$ftp->binary(); 
$ftp->mkdir($outputdir); 
$chmod  = "chmod 777 $outputdir"; 
$ftp->cmd($chmod); 
$ftp->cwd($outputdir); 
$ftp->put($file); 
my $chmod  = "chmod 777 $file"; 
$ftp->cmd($chmod); 
$ftp->quit; 
+0

無論你試圖完成什麼,'chmod 777'幾乎肯定是錯誤的。你通常不希望文件是世界可寫的。 – tripleee

+0

yaa,我知道..所以我告訴..但無論如何這是服務器業主的要求,所以我不打擾其實.. – abdfahim

回答

1

將服務器對您的chmod命令的響應(例如,使用$ftp->code$ftp->message或只是啓用調試。在這裏你可能會看到服務器不理解你的命令。

原因可能是,您使用$ftp->cmd來執行此命令。但是,cmd用於發送FTP命令,而chmod不是FTP命令。要在服務器的站點上執行任何命令,您應該使用site,例如$ftp->site("chmod ....")。即使在這裏你也應該檢查結果,因爲服務器不需要履行你的請求並執行你想要的任何命令。

總結:總是檢查錯誤信息。除此之外:請在任何perl腳本上使用use strict