『壹』 如何使用get命令利用FTP下載文件到本地
1、從遠程ftp伺服器下載文件的命令格式:
get 遠程ftp伺服器上當前目錄下要下載的文件名。
2、附上ftp常用命令,如下所示:
FTP>open [ftpservername],和指定的遠程Linux FTP伺服器連接。
FTP>user [username] [password],使用指定遠程Linux FTP伺服器的用戶登錄。
FTP>pwd,顯示遠程Linux FTP伺服器上的當前路徑。
FTP>ls,列出遠程Linux FTP伺服器上當前路徑下的目錄和文件。
FTP>dir,列出遠程Linux FTP伺服器上當前路徑下的目錄和文件(同上)。
FTP>mkdir [foldname],在遠程Linux FTP伺服器上當前路徑下建立指定目錄。
FTP>rmdir [foldname],刪除遠程Linux FTP伺服器上當前路徑下的指定目錄。
FTP>cd [foldname],更改遠程Linux FTP伺服器上的工作目錄。
FTP>delete [filename],刪除遠程Linux FTP伺服器上指定的文件。
FTP>rename [filename] [newfilename],重命名遠程Linux FTP伺服器上指定的文件。
FTP>close,從遠程Linux FTP伺服器斷開但保留FTP命令參數提示。
FTP>disconnect,從遠程Linux FTP伺服器斷開但保留FTP命令參數提示(同上)。
FTP>bye,結束和遠程Linux FTP伺服器的連接。
FTP>quit,結束和遠程Linux FTP伺服器的連接(同上)。
FTP>!,直接從遠程Linux FTP伺服器進入到本地shell中。
FTP>exit,(接上步)從本地shell環境中返回到遠程Linux FTP伺服器環境下。
FTP>!ls,列出本地機器上當前路徑下的目錄和文件。
FTP>lcd [foldname],更改本地機器的工作目錄。
『貳』 如何下載遠程伺服器上的ftp中的文件
使用FTP必須兩個條件:
1.伺服器支持ftp服務,可以接收別的機器的Ftp協議的請求。
2.客戶端有ftp軟體。
你可能理解錯誤,ftp不是雙向的,你可以從伺服器向本地下載文件,那麼你就可以做慎控碼笑制伺服器從你的機器下載文件嗎?
你登錄到提供ftp服務的伺服器,你只能將其設置的ftp目錄中將文件下載或上傳到該ftp目錄。
然後你可以使用WINDOWS遠程鏈接桌面到伺服器,將文件從ftp目錄中取出遲胡含來。
『叄』 怎麼在ftp伺服器中提取到文件夾名稱到本地磁碟中
FTP是可間斷傳輸文件的一個工具,也是較大的文件多選用的一種傳輸方式。
你要在伺服器和本地之間互傳,
伺服器中需要安裝一個FUP服務端(有賬號和密碼,可讓伺服器服務商幫忙下載),
在本地的電腦上下載一個伺服器的客戶端,然後遠程就可以互傳文件了。
『肆』 如何獲取ftp伺服器下指定文件的大小
調用格式: 〈整數型〉 對象.取目錄列表 ([文本型 欲列出的文件],[文本型變數/變數數組 存放文件名的數組變數],[整數型變數/變數數組 存放文件屬性的數組變數],[長整數型變數/變數數組 存放文件尺寸的數組變數],[日期時間型變數/變數數組 存放文件時間的數組變數]) - 網路傳送支持庫->FTP輔助對象
英文名稱:FtpGetDirList
返回FTP伺服器上指定目錄內的所有匹配文件和子目錄信息。成功返回被找到的文件和子目錄的數目,失敗返回 -1失敗的原因有可能是FTP伺服器的目錄結構暫時不被支持。本命令為初級對象成員命令。
參數<1>的名稱為「欲列出的文件」,類型為「文本型(text)」,可以被省略。可以包含路徑,可以使用多字元 (*) 和單字元 (?) 通配符來指定多重文件及目錄。
參數<2>的名稱為「存放文件名的數組變數」,類型為「文本型(text)」,可以被省略,提供參數數據時只能提供變數及變數數組。提供參數數據時只能提供變數數組。在命令執行完畢後,本變數數組內被順序填入所找到的匹配文件和子目錄名稱。變數數組內原有數據被全部銷毀,變數數組的維數被自動調整為所找到的文件數目。
參數<3>的名稱為「存放文件屬性的數組變數」,類型為「整數型(int)」,可以被省略,提供參數數據時只能提供變數及變數數組。當前不被支持,留做以後擴展。
參數<4>的名稱為「存放文件尺寸的數組變數」,類型為「長整數型(int64)」,可以被省略,提供參數數據時只能提供變數及變數數組。提供參數數據時只能提供變數數組。在命令執行完畢後,本變數數組內被順序填入所找到的匹配文件的尺寸,並與文件名數組成員一一對應。
參數<5>的名稱為「存放文件時間的數組變數」,類型為「日期時間型(date)」,可以被省略,提供參數數據時只能提供變數及變數數組。提供參數數據時只能提供變數數組。在命令執行完畢後,本變數數組內被順序填入所找到的匹配文件的最後修改時間,並與文件名數組成員一一對應。變數數組內原有數據被全部銷毀,變數數組的維數被自動調整為所找到的文件數目。
『伍』 如何實現window系統cmd環境下從遠程FTP伺服器上下載文件的方法
我們總會遇到這樣或那樣的問題,window系統cmd環境下從遠程FTP伺服器上下載文件是怎麼實現的呢?
看看下面的方法,也許對你有幫助:
@echo off
rem 指定FTP用戶名
set ftpUser=FTPUSERYGL
rem 指定FTP密碼
set ftpPass=FTPUSER
rem 指定FTP伺服器地址
set ftpIP=10.16.12.101
rem 指定待下載的文件位於FTP伺服器的哪個目錄
set ftpFolder=/MBX-YGL-IN/UE0620/MBX-YGL-FTP/
rem 指定從FTP下載下來的文件存放到本機哪個目錄
set LocalFolder=D:/Download
set ftpFile=%temp%/TempFTP.txt
>"%ftpFile%" (
echo,%ftpUser%
echo,%ftpPass%
echo cd "%ftpFolder%"
echo lcd "%LocalFolder%"
echo bin
echo mget *.*
echo bye
)
start ftp -v -i -s:"%ftpFile%" %ftpIP%
『陸』 <php> file_get_contents() 可以通過ftp獲取內容嗎 我想獲取通過ftp上的文件。
通常,在 php 里獲取 ftp 伺服器上的文件,使用 ftp_get 及相關的 ftp 函數,以下是示例:
<?php
//definesomevariables
$local_file='local.zip';
$server_file='server.zip';
//connecttotheFTPserver
$conn_id=ftp_connect($ftp_server);
$login_result=ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
//trytodownload
if(ftp_get($conn_id,$local_file,$server_file,FTP_BINARY)){
echo"Successfullywrittento$local_file";
}else{
echo"Therewasaproblem";
}
//closetheconnection
ftp_close($conn_id);
?>
『柒』 如何獲取ftp伺服器下指定文件的大小
//////獲取ftp伺服器上指定文件夾的文件列表(包含文件大小)//////////////////publicDictionaryGetFTPList(stringServerIP,stringUSERID,stringPassWord,stringpath){Dictionarydic=newDictionary();if(path==null)path="";FtpWebRequestreqFtp;try{reqFtp=(FtpWebRequest)FtpWebRequest.Create(newUri("ftp://"+ServerIP+"/"+path));reqFtp.KeepAlive=false;reqFtp.UseBinary=true;//指定ftp數據傳輸類型為二進制reqFtp.Credentials=newNetworkCredential(USERID,PassWord);//設置於ftp通訊的憑據reqFtp.Method=WebRequestMethods.Ftp.ListDirectoryDetails;//指定操作方式WebResponseresponse=reqFtp.GetResponse();//獲取一個FTP響應StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.GetEncoding("GB2312"));//讀取響應流stringline=reader.ReadLine();while(line!=null){if(line!="."&&line!=".."){intend=line.LastIndexOf('');intstart=line.IndexOf("");stringfilename=line.Substring(end+1);if(filename.Contains(".")){line=line.Replace(filename,"");dic.Add(filename.Trim(),int.Parse(line.Substring(start).Trim()));}}line=reader.ReadLine();}}catch(Exceptionex){Console.WriteLine(ex.Message);}returndic;}文件夾或者某一文件都適用
『捌』 用shell的linux伺服器 .sh插件怎麼從遠程ftp伺服器下載文件
//ftpput.sh
[cpp] view plain
#!/bin/sh
#FileName:ftpput.sh
#Function:從本地客戶端向ftp伺服器上傳一個文件
#Version:V0.1
#Author:Sunrier
#Date:2012-07-20
#$#表示傳遞給此Shell腳本的參數個數
#-ne表示不等於
if [ $# -ne 2 ]
then
echo "Usage $0 <local_dir/filename> <remote_dir>"
exit 1
fi
#IP表示ftp的伺服器ip地址
IP=127.0.0.1
#IP=192.168.6.1
#FULLNAME獲取本地文件全路徑名
FULLNAME=$1
#DESTDIR獲取需要上傳的ftp遠程目錄路徑
DESTDIR=$2
#basename返回一個路徑中的文件名部分
#如FULLNAME="/home/Sunrier/Proj/log/test.log";
#當local_filename=`basename $FULLNAME`
#最終local_filename="test.log"
local_filename=`basename $FULLNAME`
#DESTFILE表示ftp伺服器的路徑,以及保存後的文件名
DESTFILE=$DESTDIR/$local_filename
#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT
open $IP
user Sunrier redhat
bin
passive
cd /home/remote/log/ftpfile
put $FULLNAME $DESTFILE
quit
FTPIT
exit 0
//注釋:
[cpp] view plain
#!/bin/sh
#FileName:ftpput.sh
#Function:從本地客戶端向ftp伺服器上傳一個文件
#Version:V0.1
#Author:Sunrier
#Date:2012-07-20
#$#表示傳遞給此Shell腳本的參數個數
#-lt表示小於
#-eq表示等於
#-ne表示不等於
if [ $# -ne 2 ]
then
echo "Usage $0 <local_dir/filename> <remote_dir>"
exit 1
fi
#IP表示ftp的伺服器ip地址
#IP=127.0.0.1
IP=192.168.6.1
#FULLNAME獲取本地文件全路徑名
FULLNAME=$1
#DESTDIR獲取需要上傳的ftp遠程目錄路徑
DESTDIR=$2
#basename返回一個路徑中的文件名部分
#如FULLNAME="/home/Sunrier/Proj/log/test.log";
#當local_filename=`basename $FULLNAME`
#最終local_filename="test.log"
local_filename=`basename $FULLNAME`
#DESTFILE表示ftp伺服器的路徑,以及保存後的文件名
DESTFILE=$DESTDIR/$local_filename
#-i表示在多個文件傳輸期間關閉交互提示
#-n表示禁止自動登錄到初始連接
#<<FTPIT 和最後的 FTPIT:術語叫:當前文檔here documents. here document 就是一段特殊目的的代碼塊,
#它使用I/O重定向的形式來將一個命令序列傳遞到一個交互程序或者命令中,比如ftp、cat,或者ex文本編輯器.
#本句可以理解從<<FTPIT開始以非對話模式的ftp連接,直到輸入FTPIT為止的所有命令.
#當然FTPIT這個名字是可以隨便取的,不一定必須是FTPIT,可以取其它的名字。
#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT
#連接到指定ftp伺服器上
open $IP
#連接到指定ftp伺服器上,並指定埠
#open $IP $PORT
#登陸ftp伺服器上的用戶名和密碼
#user username password
user Sunrier redhat
#bin表示以二進制方式傳輸
#bin等價於bi,binary等
#另一種方式傳輸是ascii,默認情況下,將文件傳輸類型設置為ASCII
bin
#主動模式的FTP是指伺服器主動連接客戶端的數據埠,被動模式的FTP是指伺服器被動地等待客戶端連接自己的數據埠
#被動模式的FTP通常用在處於防火牆之後的FTP客戶訪問外界FTP伺服器的情況.
#因為在這種情況下,防火牆通常配置為不允許外界訪問防火牆之後主機,而只允許由防火牆之後的主機發起的連接請求通過.
#因此在這種情況下不能使用主動模式的FTP傳輸,而被動模式的FTP可以良好的工作.
#passive表示設置為被動模式的FTP
passive
#cd表示更改ftp伺服器上(即遠程計算機)的工作目錄
cd /home/remote/log/ftpfile
#lcd表示更改本地計算機的工作目錄
#lcd /home/Sunrier/Proj/log/
#put local_file [ remote_file ]
#其中local_file是指定要復制的本地文件,remote_file是指定要復制的遠程計算機上的文件名,
#remote_file為可選項,如果不指定的話是和本地計算機上的文件名同名.
#put表示把本地路徑下的文件復制到FTP伺服器(遠程計算機)上設置的路徑下的文件
put $FULLNAME $DESTFILE
#quit表示結束與遠程計算機的FTP會話,並退出FTP.
#還有個等價的命令為bye(或by)結束與遠程計算機的FTP會話並退出FTP
quit
#here document塊結束
FTPIT
#正式寫這個Shell腳本時,here document中的#和空行都會執行,
#所以為了消除警告最好去掉here document塊中#開頭的語句以及空行,
#暫時我還沒有找到here document中有效的注釋語句的方法.
exit 0
//ftpget.sh
[cpp] view plain
#!/bin/sh
#FileName:ftpget.sh
#Function:從ftp伺服器上下載一個文件到本地計算機上
#Version:V0.1
#Author:Sunrier
#Date:2012-07-20
#$#表示傳遞給此Shell腳本的參數個數
#-ne表示不等於
if [ $# -ne 2 ]
then
echo "Usage $0 <remote_dir/filename> <local_dir>"
exit 1
fi
#IP表示ftp的伺服器ip地址
IP=127.0.0.1
#IP=192.168.6.1
#FULLNAME獲取從ftp伺服器上下載的文件全路徑名
FULLNAME=$1
#DESTDIR獲取從ftp伺服器上下載的文件所存放的本地計算機的目錄路徑
DESTDIR=$2
#remote_filename獲取從ftp伺服器上下載的文件名
remote_filename=`basename $FULLNAME`
#DESTFILE表示下載文件所存放的本地路徑,以及本地保存後的文件名
DESTFILE=$DESTDIR/$remote_filename
#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT
open $IP
user Sunrier redhat
bin
cd /home/remote/log/ftpfile
get $FULLNAME $DESTFILE
quit
FTPIT
exit 0
#get remote_file [ local_file ]
#remote_file是指定要復制的文件,local_file是指定本地計算機上的文件名,
#local_file為可選項,沒有指定的話則跟remote_file同名。
//20120726改進版本
[cpp] view plain
#!/bin/sh
#FileName:ftpput.sh
#Function:從本地客戶端向ftp伺服器上傳一個文件(添加遠程目錄是否存在判斷功能)
#Version:V0.2
#Author:Sunrier
#Date:2012-07-26
#$#表示傳遞給此Shell腳本的參數個數
#-ne表示不等於
if [ $# -ne 2 ]
then
echo "Usage $0 <local_dir/filename> <remote_dir>"
exit 1
fi
#IP表示ftp的伺服器ip地址
IP=127.0.0.1
#IP=192.168.6.1
#FULLNAME獲取本地文件全路徑名
FULLNAME=$1
#DESTDIR獲取需要上傳的ftp遠程目錄路徑
DESTDIR=$2
#dirname返迴路徑中的目錄部分
#DESTDIR="/home/Sunrier/Proj/log/test.log";
#當PREDESTDIR=`dirname $DESTDIR`
#最終PREDESTDIR="/home/Sunrier/Proj/log"
PREDESTDIR=`dirname $DESTDIR`
SUFFIXDESTDIR=`basename $DESTDIR`
LOCALDIR=`dirname $FULLNAME`
#basename返回一個路徑中的文件名部分
#如FULLNAME="/home/Sunrier/Proj/log/test.log";
#當local_filename=`basename $FULLNAME`
#最終local_filename="test.log"
local_filename=`basename $FULLNAME`
#DESTFILE表示ftp伺服器的路徑,以及保存後的文件名
DESTFILE=$DESTDIR/$local_filename
#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT
open $IP
user Sunrier redhat
dir $PREDESTDIR $LOCALDIR/tmp.txt
quit
FTPIT
#find $LOCALDIR -name "tmp.txt" -type f | xargs grep "^d.*$SUFFIXDESTDIR$"
#find . -name "tmp.txt" -type f | xargs grep "^d.*$SUFFIXDESTDIR$"
#find . ! -name "." -type d -prune -o -type f -iname "*tmp.txt" -print | xargs grep "^d.*$SUFFIXDESTDIR$"
#grep "^d.*$SUFFIXDESTDIR$" \$LOCALDIR/tmp.txt
#grep後面查找字元兩邊加不加引號效果相同
grep ^d.*$SUFFIXDESTDIR$ $LOCALDIR/tmp.txt >/dev/null 2>&1
#$?表示上一個命令的運行結果,0表示成功,其它值表示失敗
#if [ $? != 0 ]
if [ $? -ne 0 ]
then
rm $LOCALDIR/tmp.txt
exit 1
fi
#mkdir創建遠程目錄
#mkdir $DESTDIR
#ftp -i -n $IP <<FTPIT
ftp -i -n <<FTPIT
open $IP
user Sunrier redhat
bin
passive
cd /home/remote/log/ftpfile
put $FULLNAME $DESTFILE
quit
FTPIT
rm $LOCALDIR/tmp.txt
exit 0
[cpp] view plain
注:
FTP伺服器的啟動:
[root@localhost ~]# service vsftpd start
為 vsftpd 啟動 vsftpd: [確定]
FTP伺服器的埠一般默認為21:
[root@localhost ~]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:523 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:50000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:601 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
[root@localhost ~]#
在使用system執行Shell腳本時,如system("ftpput.sh"),system返回值低8位為system執行腳本所接收到的信號值,9~16位為Shell腳本所設置的exit退出值
『玖』 怎麼用ftp 取文件 命令
熟悉並靈應用FTP內部命令便使用者並收事半功倍效
FTP命令行格式:ftp -v -d -i -n -g [主機名]其
-v顯示遠程伺服器所響應信息;
-n限制ftp自登錄即使用;
.n etrc文件;
-d使用調試式;
-g取消全局文件名
ftp使用內部命令(括弧表示選項):
1.![cmd[args]]:本機執行交互shellexitftp環境:!ls*.zip.
2.$ macro-ame[args]:執行宏定義macro-name.
3.account[password]:提供登錄遠程系統功訪問系統資源所需補充口令
4.append local-file[remote-file]:本文件追加遠程系統主機若未指定遠程系統文件名則使用本文件名
5.ascii:使用ascii類型傳輸式
6.bell:每命令執行完畢計算機響鈴
7.bin:使用二進制文件傳輸式
8.bye:退ftp程
9.case:使用mget遠程主機文件名寫轉寫字母
10.cd remote-dir:進入遠程主機目錄
11.cp:進入遠程主機目錄父目錄
12.chmod mode file-name:遠程主機文件file-name存取式設置mode:chmod 777 a.out
13.close:斷與遠程伺服器ftp(與open應)
14.cr:使用asscii式傳輸文件車換行轉換行
『拾』 我可以直接讀取ftp上的文件嗎
正常情況下是不能夠的,只有你登錄ftp後,將文件下下來後才能訪問。