我在將文件從一臺服務器複製到另一臺服務器時遇到了很多麻煩。Perl - 使用Net:FTP和Possible Net :: FTP將文件(和內容)複製到遠程服務器::文件
我一直在嘗試兩天。
請知道我使用嚴格,下面的腳本僅用於測試。
我實際上得到一個文件「名稱」到「遠程」服務器和chmod到0755,但它是空的。
1-文件需要複製/ ftp'd到「遠程」服務器特定的目錄。 mkdir if!。
2-要複製的「本地」文件存在於腳本目錄以外的目錄中。
3-文件複製到「遠程」服務器後,執行命令chmod到0755
4-容易看似每個人,但我。 :-(
下面寫到文件中名存實亡,它是空的
#!/usr/bin/perl -w
use CGI;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
print CGI::header();
use Net::FTP;
use Net::FTP::File;
#use strict;
my $host='ftp.myserver.com';
my $ftp=Net::FTP->new($host,Timeout=>240,Passsive=>1) or $newerr=1;
push @ERRORS, "Can't ftp to $host: $!\n" if $newerr;
myerr() if $newerr;
print qq~Connected<br />~;
$ftp->login('[email protected]','mypasswd') or die "Cannot login: [email protected]";
$datedir ='04-01-2011';
#################################
$copyfrom = $datedir;
$thisfile = 'index.pl';
$fullpath = $copyfrom.'/'.$thisfile;
$path = '/home/account/public_html/folder/'.$copyfrom;
if (-e $fullpath) {print qq~Copy source exists<br >~;}
unless (-e $fullpath) {print qq~Copy source does not exist<br >~;}
#######################################################
my $isdir = $ftp->isdir($datedir);
if (!$isdir){
print qq~Remote directory does not exist<br >~;
$ftp->mkdir($datedir) or die $ftp->message;
}
if ($isdir){
print qq~Remote directory exists<br />~;
}
#############
my $new = $datedir.'/'.$thisfile;
my $isfile = $ftp->exists($new);
if (!$isfile){
print qq~Remote file does not exist<br />~;
$ftp->cwd($copyfrom);
print "I'm in the directory ", $ftp->pwd(), "\n";
my $chkdir = $ftp->isdir($copyfrom);
if ($chkdir){print qq~directory exists<br />~;}
if (!$chkdir){print qq~directory does not exists<br />~;}
$ftp->ascii() || die $ftp->message;
$ftp->put($copyfrom, $thisfile) or die $ftp->message;
$ftp->chmod(755, $thisfile) or warn $ftp->message;
}
if ($isfile){
print qq~Remote file exists<br >~;
}
$ftp->quit;
sub myerr {
print "Error: \n";
print @ERRORS;
exit 0;
}
現在,我也只是嘗試的Net :: FTP ::文件及複印件();但是,錯誤的瀏覽器 - - 我已閱讀和閱讀測試,測試,直到軟件錯誤「當前工作目錄‘/’,」
,我在這裏找到自己
除了模塊的選擇(我讀其他地方),我在做什麼。錯了?
服務器與cPanel共享服務器,所以我非常受限制,因此我嘗試了這些ftp模塊。
我很樂意解決我的腳本問題或者在我的服務器上運行的一種完全不同的方法。
感謝這麼多的任何援助..
是的,問題是一團糟。我不應該把問題的目錄和文件測試作爲開始。那些對我來說只是白癡檢查。我通常使用elsif和其他要求。該代碼實際上只是一個挫敗嘗試的集合。至於ascii,會採取這樣做,因爲它必須是一個ascii xfer? – Stephayne 2011-03-31 21:29:48
二進制模式始終傳輸原始字節,因此傳輸的文件與原始文件相同。 Ascii模式是古老的東西,不要使用它。 – 2011-03-31 21:40:56
謝謝你的信息! – Stephayne 2011-03-31 22:08:49