- 論壇徽章:
- 24
|
本帖最后由 woxizishen 于 2015-03-09 09:22 編輯
TFTP客戶端命令詳解:linux下tftp0.40 客戶端操作命令
connect connect to remote tftp 連接到其他遠(yuǎn)程tftp服務(wù)器
mode set file transfer mode 顯示傳輸模式(如:二進(jìn)制模式或ascii文本模式)
put send file put any(local path files) remote path files (一般無法更改遠(yuǎn)程路徑,被tftp服務(wù)器限制了指定的訪問路徑)
傳送任何本地文件到遠(yuǎn)程tftp服務(wù)器指定的路徑里。
get receive file get remote path files any(local path files)
獲取tftp服務(wù)器指定的路徑里的文件存放到本地任何位置里。
#注意:
1.不管是遠(yuǎn)程好還是本地好,最后路徑結(jié)尾的必須是文件名稱。不支持目錄傳送。
2.傳送文件大小限制為32MB以內(nèi)。超過了無法傳送。tftp本身協(xié)議規(guī)定。
3.指定遠(yuǎn)程tftp服務(wù)器的路徑時(shí),不要將tftp服務(wù)器的共享路徑輸入進(jìn)來。
如:假設(shè)tftp服務(wù)器共享的訪問路徑限制為/tftpboot。
如想獲取/tftpboot下面更下層目錄winxp的文件或把文件存放到/tftpboot/winxp目錄下時(shí)
只需要指定路徑為winxp/xx文件名稱即可。
quit exit tftp (ftp,sftp通用退出命令)
verbose toggle verbose mode 切換到纖細(xì)模式(也就是顯示發(fā)送或接收tftp服務(wù)器的地址以及文件存放或獲取位置路徑而已。)
trace toggle packet tracing 切換到包跟蹤模式(也就是查看發(fā)送包的過程,會顯示你發(fā)送或接收的是什么文件名稱以及以什么模式發(fā)送或接收的)
status show current status 顯示當(dāng)前傳送模式以及包傳送超時(shí)的時(shí)間等等而已
binary set mode to octet 設(shè)定二級制傳送
(傳送執(zhí)行程序,jpg圖片,壓縮檔等等)
ascii set mode to netascii 設(shè)定ascii傳送
(傳送文本,html網(wǎng)頁等等)
rexmt set per-packet transmission timeout 每個包重傳的超時(shí)時(shí)間
timeout set total retransmission timeout 整個包重傳的超時(shí)時(shí)間。
? print help information 幫助(同SFTP,FTP命令一模一樣)
help print help information 幫助(同SFTP,FTP命令一模一樣)
##如果要使用非交互式做shell腳本使用(網(wǎng)上很多文章貼來貼去說tftp沒有交互式操作是錯誤的,都已經(jīng)過時(shí)了,現(xiàn)在新版本tftp客戶端是有交互式操作的。),參照以下命令參數(shù):
tftp [-v][-m mode] [host [port]] [-c command]
-v 顯示詳細(xì)報(bào)告。可有可無,查錯時(shí)可使用。
-m 使用哪種模式傳送 –m binary (使用二級制模式)
host tftp服務(wù)端ip地址或主機(jī)名稱
port 未輸入則使用默認(rèn)UDP端口69傳送或接收數(shù)據(jù)。
-c 下達(dá)各個命令
范例
tftp -v -m binary 172.16.9.15 2 -c get 333.exe
保存為shell腳本,則直接將333.exe文件傳送到當(dāng)前目錄下。
windows tftp客戶端所有命令:
(tftp.exe支持所有windows-32bit系統(tǒng)操作)
-i 使用二級制傳送 不使用該參數(shù)就是ascii模式傳送
host ip地址或主機(jī)名稱
get 同linux版本的get命令一樣。
put 同linux版本的put命令一樣。
只有非交互式的操作,也即只能做bat等腳本使用。
備注:TFTP雖然已經(jīng)是過時(shí)的協(xié)議的,但是很多應(yīng)用領(lǐng)域仍然有他你懂的,不說別的了,就PXE
SFTP客戶端命令詳解:
交互非交互都支持。
Windows下使用putty官方拆分出來的psftp即可連接任何linux操作系統(tǒng)。絕大部份linux操作系統(tǒng)默認(rèn)是安裝ssh服務(wù)端。Sftp服務(wù)端是ssh服務(wù)端的一部份。
范例腳本非交互式操作:
@echo off & cd /d d:\ & mkdir backup
echo lcd backup >>6.txt
echo mget * >>6.txt
psftp 172.16.9.15 -l root -pw kbgroup007 < 6.txt
-l :使用登陸sftp的賬號、
-pw 使用登陸的密碼。
默認(rèn)登陸后,是直接登陸到用戶的家目錄下,如果用root登陸,則可以訪問任何路徑。
Linux下sftp客戶端并不提供非交互的命令。使用scp可以實(shí)現(xiàn),如果非要用sftp命令來實(shí)現(xiàn),需要用到expect。
#!/usr/bin/expect
##
## 用expect模擬sftp上傳文件
## created by yejr(imysql AT imysql.cn),2008/11/20
##
#取得傳遞參數(shù),構(gòu)造變量
set DT [lindex $argv 0]
set NU [lindex $argv 1]
set ftp_lcd "/dbbak/$DT/$NU"
#查看本地文件
send "ls -la $ftp_lcd\r"
#發(fā)送命令
send "cd $ftp_lcd\r"
#發(fā)起sftp
spawn sftp yejr@192.168.0.84
expect "yejr@192.168.0.84's password:"
#發(fā)送密碼
send "abccba"
expect "sftp>"
#設(shè)定lcd
send "lcd $ftp_lcd\r"
expect "sftp>"
#上傳文件,這里不知為何無法使用mput
send "put $ftp_lcd/dbbak*$DT*.sql.gz.md5\r"
expect "sftp>"
send "put $ftp_lcd/dbbak*$DT*.sql.gz\r"
expect "sftp>"
#列文件,確認(rèn)大小沒問題
send "ls -la\r"
expect "sftp>"
#bye bye 
send "bye\r"
interact
。
pwd 顯示遠(yuǎn)程目標(biāo)路徑
lpwd 顯示本地目標(biāo)路徑
ls 顯示遠(yuǎn)端目錄列表
cd path 更改遠(yuǎn)端目錄路徑
lcd path 更改本地目錄路徑
ren 更改遠(yuǎn)端ftp服務(wù)器的檔案名稱或移動檔案
mv 功能同上
mkdir path 創(chuàng)建遠(yuǎn)端文件夾
lmkdir path 創(chuàng)建本地文件夾
rmdir path 刪除遠(yuǎn)端目錄
rm path 刪除遠(yuǎn)端文件,支持通配符*刪除當(dāng)前目錄所有文件,慎重使用。
help 幫助
get remote-path [local-path] 和ftp/tftp功能一樣不做解釋
rget 同ftp一樣支持?jǐn)帱c(diǎn)續(xù)傳
mget 不需要像ftp那么麻煩,直接支持通配符*路徑操作。
注意:在從linux下復(fù)制多個文件到windows下的指定目錄時(shí),還是老實(shí)在前面用lcd來切換路徑吧,直接在mget后面指定的路徑不起作用。
quit 直接退出sftp連接到shell界面或cmd命令
exit 直接退出sftp連接到shell界面或cmd命令
bye 直接退出sftp連接到shell界面或cmd命令
! 斷開sftp連接仍在交互界面
close 斷開sftp連接仍在交互界面
FTP客戶端命令詳解:
腳本下常用的命令
在linux和windows下都可以輕松實(shí)現(xiàn)非交互式操作,即用腳本對FTP服務(wù)端作任何操作。
Windows下非交互式操作(bat腳本)。
格式:
ftp 參數(shù) 存放ftp命令的文本 ftp服務(wù)端ip
范例:
ftp -ni -s:d:\33.txt 172.16.4.36
::在33.txt里存放你任何想執(zhí)行的ftp命令。:
::-n 不自動登錄
::-i 關(guān)閉交互
Linux下非交互式操作(shell腳本):
host="172.16.4.36"
username="ati"
password="pwforati"
ftp -ni $host << EOF
quote USER $username
quote PASS $password
::上面是逐字傳送賬號和密碼。Linux下專用。
中間輸入你任何想操作的ftp客戶端命令
EOF
linux下的-n 表示不讀取用戶目錄下的.netrc的設(shè)定(ftp客戶端默認(rèn)會讀取.netrc里面的設(shè)定進(jìn)行連接)
$ (腳本常用,重要)
做變量使用。(就類似dos里面定義的變量了,一般用在非交互式的腳本里)
如:set a=33
echo %a% 顯示數(shù)值就是
33
這里的$就是那個百分號作用一樣。當(dāng)然和linux操作系統(tǒng)里面的$作用是一模一樣的。
macdef 定義宏變量
glob 官方翻譯是允許使用擴(kuò)展文件名(無語的翻譯) (腳本常用,重要。默認(rèn)是開啟的,不需要改動)
作用就是允許在路徑當(dāng)中使用通配符功能。如*或?.不使用此參數(shù)無法使用這些通配符的。
quote 逐字將命令參數(shù)傳送到ftp服務(wù)器 (非交互模式下腳本常用,重要)
如:
quote USER dawson 將使用dawson用戶進(jìn)行登錄驗(yàn)證。
quote PASS 123456 將使用123456密碼進(jìn)行密碼核對。
這樣的話就類似你在交互模式下手輸用戶名和密碼登錄FTP服務(wù)器進(jìn)行驗(yàn)證效果一樣。
-i 關(guān)閉交互模式(腳本常用,重要),也就是直接在腳本里使用命令傳送和接收數(shù)據(jù)了,沒有任何交互操作了。
proxy 建立副連接。當(dāng)和第一個ftp服務(wù)器連接的時(shí)候就是主連接,如果在使用proxy open 172.16.9.xx 建立的連接就是副連接。
(通俗的說就是你用一個ftp客戶端登陸到2臺ftp服務(wù)器里面拉。進(jìn)行的操作是2臺ftp服務(wù)器之間的操作,和你ftp客戶端所在的主機(jī)沒有任何關(guān)系。)
命令格式:proxy ftp-command。也就是前面出現(xiàn)proxy的參數(shù),就是在副連接上面執(zhí)行的命令
范例:
ftp 172.16.9.15
輸入賬號和密碼后
這樣172.16.9.15就是主連接了。
然后:
proxy open 172.16.9.62
輸入賬號和密碼后
這樣172.16.9.62就是副連接了。
proxy get 12.sh
執(zhí)行的操作就是將9.62ftp服務(wù)器上的數(shù)據(jù)傳送到9.15這臺ftp服務(wù)器上。
(proxy功能 linux下專用。windows暫時(shí)未發(fā)現(xiàn)版本有)
append 傳送或附加一個文件的內(nèi)容到遠(yuǎn)程的文件中。(腳本可能用到統(tǒng)計(jì)日志或其他功能,一般)
##當(dāng)用append傳送一個文件到ftp服務(wù)器中,如果ftp服務(wù)器沒有這個文件,則傳送過去的效果和put是一模一樣的。
##當(dāng)用append傳送一個文件到ftp服務(wù)器中,如果ftp服務(wù)器有這個文件一模一樣的名稱,則傳送過去的話會將內(nèi)容附加到ftp服務(wù)器當(dāng)中已存在的那個同名文件里。而put整好相反則是直接覆蓋噢。
##所以append就類似文本導(dǎo)入命令>>的功能附加的意思,而put則是>覆蓋的意思。
prompt 關(guān)閉mput和mget和mdelete的交互模式。默認(rèn)是開啟交互模式功能(腳本常用,重要)
關(guān)閉mput和mget的交互模式。默認(rèn)是開啟交互模式功能,既如果用mput和mget傳送或接收多個文件時(shí),每一次都要提示你。所以當(dāng)要在腳本里使用mput命令時(shí)或同時(shí)傳送多個文件時(shí),不需要總是提示你
的時(shí)候,就關(guān)閉他即可。直接執(zhí)行prompt,即可關(guān)閉mput和mget交互功能。
case 將遠(yuǎn)程服務(wù)器的大寫文件名稱改成小寫存放到本地(腳本常用,重要)
#言外之意即使遠(yuǎn)程ftp服務(wù)器上存放的是以大寫命名的文件,但你get或mget接收的時(shí)候直接輸入小寫即可,存放的地方也會是小寫。
runique 開啟此功能,將輪詢給相同獲取到的檔案命名。(腳本常用,重要,可以輪詢保存ftp服務(wù)器的文件到本地。)
通過get或mget命令獲取文件到本地時(shí),如果發(fā)現(xiàn)本地有相同的文件名稱,則另存為同名的檔案并加上一個.1 , .2 ,.3等等的擴(kuò)展名
(linux ftp客戶端專用)
sunique 官方解釋是與runique對于。測試沒撒意義,就是覆蓋相同的文件。測試版本0.39(不知)
newer 同步更新參數(shù)。官方解釋是比較修改時(shí)間,如果遠(yuǎn)程服務(wù)器修改時(shí)間為最新的則同步,經(jīng)測試完全不是這么回事。測試版本為0.39版。無論遠(yuǎn)程修改的時(shí)間為新還是舊,都將文件覆蓋到本地上來。如果新版本還有此bug,則此參數(shù)可以完全忽略。get本身就有此覆蓋功能。
type 設(shè)置傳輸數(shù)據(jù)類型,如直接輸type,則是查看當(dāng)前傳輸方式,type ascii 設(shè)置傳輸方式為ascii?梢院雎源嗣。設(shè)定數(shù)據(jù)類型直接輸入即可改變類型。
binary 程序,圖片,壓縮檔案等等二級制方式傳輸
image 設(shè)置二進(jìn)制數(shù)據(jù)類型傳輸(同binary)。
ascii html,文本等等數(shù)據(jù)傳輸
cr html,文本等等數(shù)據(jù)傳輸
tenex 設(shè)置文件傳輸方式為與 TENEX 機(jī)器通訊所需要的方式(不知用途)
傳送接收刪除命令
傳送
mput 傳送多個本地文件到遠(yuǎn)程ftp服務(wù)器上.支持通配符*操作。
put 傳送單個本地文件到遠(yuǎn)程ftp服務(wù)器上
send 傳送單個本地文件到遠(yuǎn)程ftp服務(wù)器上
接收
mget 從遠(yuǎn)程ftp服務(wù)器獲取多個文件 支持通配符操作如*
get 從遠(yuǎn)程ftp服務(wù)器獲取文件
reget 從上次中斷的時(shí)候續(xù)傳。就類似斷點(diǎn)續(xù)傳啦。
recv 從遠(yuǎn)程ftp服務(wù)器獲取文件
刪除
delete 刪除單個文件
mdelete 刪除多個文件,可以使用通配符進(jìn)行模糊刪除,但每刪除一個文件都會提示確認(rèn),需使用prompt關(guān)閉交互即可不再提示確認(rèn)。
rmdir 刪除目錄
mkdir 建立目錄
open 進(jìn)入ftp交互模式后,打開一個連接遠(yuǎn)程ftp服務(wù)器的請求
disconnect 斷開連接
close 斷開連接
hash 每傳輸1024字節(jié),顯示一個hash符號(#)。就相當(dāng)于一個進(jìn)度條而已。
cd 切換遠(yuǎn)程磁盤路徑
lcd 切換本地磁盤路徑(凡是開頭帶l的都是與本地有關(guān)系)
cdup 切換目錄到上一層
mdir 顯示ftp服務(wù)器多個目錄里面文件列表
dir 顯示ftp服務(wù)器當(dāng)前目錄列表
ls 顯示ftp服務(wù)器當(dāng)前目錄列表
nlist 顯示ftp服務(wù)器當(dāng)前目錄列表 (無語了,三個命令效果幾乎差不多)
mls 將指定FTP服務(wù)器路徑的目錄列表存到本地ftp客戶端電腦上。
size 查看遠(yuǎn)程指定文件大小
pwd 查看遠(yuǎn)程當(dāng)前目錄路徑
status 查看本地ftp客戶端的狀態(tài)信息
rstatus 查看遠(yuǎn)程ftp服務(wù)器的狀態(tài)信息(linux下ftp客戶端專用,新版windows ftp客戶端不知是否有更新此功能)
rename 給遠(yuǎn)程ftp服務(wù)器上的文件重新命名。格式rename 遠(yuǎn)程文件名稱a 修改為遠(yuǎn)程文件名稱b
verbose 顯示詳細(xì)傳輸報(bào)告.默認(rèn)開啟。不用管。
trace 傳輸數(shù)據(jù)包信息跟蹤,默認(rèn)關(guān)閉。就是多一些傳輸報(bào)告而已。例如,使用被動還是主動模式,傳送到哪個ip啊等等
idle 設(shè)定遠(yuǎn)程ftp服務(wù)器最長空閑時(shí)間,超過空閑時(shí)間自動斷開客戶端。(有些ftp服務(wù)器不支持該命令。)不加任何參數(shù),是顯示遠(yuǎn)程ftp服務(wù)器默認(rèn)最長空閑時(shí)間。
passive 切換成被動傳輸模式。默認(rèn)是主動模式。
restart
clear
private
cprotect
protect
safe
設(shè)定以上5個級別的保護(hù)數(shù)據(jù)傳輸。
nmap 設(shè)置或取消文件名映射機(jī)制
ntrans 設(shè)置或取消文件名字符轉(zhuǎn)換機(jī)制
bell 每個命令執(zhí)行完畢后計(jì)算機(jī)響鈴一次
form 文件傳輸格式設(shè)置為 format. 缺省格式為 “file non-print"
struct 設(shè)置傳輸數(shù)據(jù)結(jié)構(gòu):structure
mode 設(shè)置傳輸模式,默認(rèn)stream(一般不需要更改啦。)需要更改則mode 傳輸模式
以上三部份一般無法更改,默認(rèn)即可。
reset 清楚應(yīng)答隊(duì)列,當(dāng)遠(yuǎn)程ftp服務(wù)器和ftp客戶端發(fā)生協(xié)議錯誤時(shí),可能會使用到此命令。
umask 設(shè)置遠(yuǎn)端機(jī)器上的文件掩碼為netmask(linux上專用,windows的ftp服務(wù)器無法使用)
chmod 將遠(yuǎn)端系統(tǒng)上文件 file-name 的權(quán)限改為 mode (linux上的ftp服務(wù)器用,windows上的ftp服務(wù)器無法使用,會直接提示無法理解此命令。很少用)
ccc 關(guān)閉命令通道保護(hù),關(guān)閉此保護(hù),一些攻擊者會插入命令到該命令通道里。一般不建議關(guān)閉。而且有些ftp服務(wù)器直接就拒絕你發(fā)送的這條命令。 (不常用,不用理會)
modtime (linuxftp客戶端專用)顯示時(shí)間是GMT和北京時(shí)間相差8小時(shí)。--不常用。
system (linuxftp客戶端專用)顯示遠(yuǎn)程操作系統(tǒng)-無實(shí)際作用,登陸成功時(shí)候就有顯示了。--不常用。
sendport ftp客戶端每建立一個連接進(jìn)行數(shù)據(jù)傳送時(shí), 都會使用一個 PORT 命令。缺省是使用port命令。某些情況下,某些版本ftp忽略了port命令,而應(yīng)答時(shí)顯示已接收port命令,此時(shí)應(yīng)該禁用
debug 當(dāng) debigging 狀態(tài)為 on 時(shí), ftp 會顯示每條送往遠(yuǎn)端機(jī)器的指令,并在顯示的指令前加上 ‘-->’
account 提供登錄遠(yuǎn)程系統(tǒng)成功后訪問系統(tǒng)資源所需的補(bǔ)充口令。
TYPE: ASCII, FORM: Nonprint; STRUcture: File; transfer MODE: STREAM
傳輸數(shù)據(jù)類型:ascii 傳輸數(shù)據(jù)結(jié)構(gòu):structure 傳輸模式:stream
? 幫助
help 幫助
rhelp 幫助(linux ftp客戶端專用)去向遠(yuǎn)程ftp服務(wù)器請求解釋你后面跟的命令,如果直接敲入rhelp,則返回遠(yuǎn)程服務(wù)器所有已知的命令。
!
quit
bye
以上都是退出命令 |
|