Shell指令碼實現FTP上傳下載檔案
Linux下使用Shell指令碼實現FTP自動上傳和下載檔案
登入FTP實現下載檔案功能
FTP伺服器:10.11.10.11
FTP路徑:Down
本地路徑: ./
將檔案從FTP下載到本地的指令碼如下:
批量下載指令碼程式碼
#從FTP上批量下載檔案到本地
#!/bin/sh
ftp -v -n 10.11.10.11<<EOF
user ftpuser ftppwd
binary
cd Down
lcd ./
prompt
mget *
bye
EOF
echo "download from ftp successfully"
下載單個檔案指令碼程式碼
#從FTP上下載單檔案到本地
#!/bin/sh
ftp -v -n 10.11.10.11<<EOF
user ftpuser ftppwd
binary
cd Down
lcd ./
prompt
#get down.txt
get down.txt note.txt
bye
EOF
echo "download from ftp successfully"
登入FTP實現上傳檔案功能
FTP伺服器:10.11.10.11
FTP路徑:Up
本地路徑: ./
將檔案從本地傳到FTP的指令碼如下:
批量上傳指令碼程式碼
#從本地向FTP批量上傳文件
#!/bin/sh
ftp -v -n 10.11.10.11 <<EOF
user ftpuser ftppwd
binary
hash
cd Up
lcd ./
prompt
mput *
bye
#here document
EOF
echo "commit to ftp successfully"
上傳單個檔案指令碼程式碼
#從本地向FTP上傳單個文件
#!/bin/sh
PUTFILE = up.txt
ftp -v -n 10.11.10.11<<EOF
user ftpuser ftppwd
binary
cd Up
lcd ./
prompt
put $PUTFILE
bye
#here document
EOF
echo "commit to ftp successfully"
命令解釋
登入FTP
ftp -i -n 10.11.10.11 << EOF
<< 是使用即時檔案重定向輸入
EOF是即時檔案的標誌它必須成對出現,以標識即時檔案的開始和結尾。
ftp常見的幾個標誌有:
-d:使用除錯模式,但必須編輯 /etc/syslog.conf 檔案並新增以下中的一項:user.info FileName 或 user.debug FileName。
-g:禁用檔名中的元字元拓展,即取消全域性檔名。
-i :關閉多檔案傳輸中的互動式提示。
-n:防止在起始連線中的自動登入。否則, ftp 命令會搜尋 $HOME/.netrc 登入項,該登入項描述了遠端主機的登入和初始化過程。
-v:顯示遠端伺服器的全部響應,並提供資料傳輸的統計資訊,即在程式執行時顯示詳細的處理資訊。
輸入FTP使用者名稱和密碼
user ftpuser ftppwd
ftpuser:登入FTP時的使用者名稱
ftppwd:登入FTP時的密碼
通過binary命令傳輸檔案
binary
FTP檔案傳輸型別有: ascii、binary、ebcdic、image、local M 和 tenex。
– ascii:將檔案傳輸型別設定為網路 ASCII。此型別為預設值,即預設使用ascii方式進行傳輸。
– binary:將檔案傳輸型別設定為二進位制映像。需要使用binary方式傳輸的檔案型別有ISO檔案、可執行檔案、壓縮檔案、圖片等。此型別可能比 ASCII 傳送更有效。
– ebcdic:將檔案傳輸型別設為 EBCDIC。
– image:將檔案傳輸型別設定為二進位制映像。此型別可能比 ASCII 傳送更有效。
– local M:將檔案傳輸型別設定為本地。M 引數定義每計算機字位的十進位制數。此引數沒有預設值。
– tenex:將檔案傳輸型別設為 TENEX 機器需要的型別。
切換雜湊符號 (#) 列印
hash
當用get或put命令傳送一個數據塊時,讓FTP顯示一個#,這是看得見的確定資料在傳輸的訊號,在使用者不確信網路是否工作時有用。當傳輸很大的檔案時,如果FTP已顯示這種資訊,表示傳輸正在進行。hash命令是一個布林變數式的命令,用hash命令開啟顯示#開關,再用hash命令關閉顯示。
切換目錄
分別在本地和FTP上進入對應資料夾下:
到FTP上對應路徑(這裡表示進入Dwon資料夾下):
cd ./Down
到本地的對應路徑(這裡表示在當前資料夾下):
lcd ./
切換互動式提示
prompt
使用mget或mput時,prompt命令讓FTP在傳輸每個檔案前進行提示,這樣防止覆蓋已有的檔案。若發出prompt命令時已經啟動了提示,FTP將把提示關掉,此時再傳輸所有的檔案則不會有任何提問。
檔案傳輸
下載檔案
下載多個檔案:
格式:mget [remote-files]
例如:獲取遠端所在資料夾下所有檔案
mget *
#或
mget *.*
注:mget . 每下載一個檔案,都會有提示。如果要除掉提示,則在mget . 命令前先執行:prompt off。
下載單個檔案:
格式:get [remote-file] [local-file]
例如:獲取遠端FTP上的a.txt檔案
get a.txt
上傳檔案
上傳多個檔案:
格式:mput local-files
例如:將所在資料夾下所有檔案上傳到FTP上
mput *
上傳單個檔案:
格式:put local-file [remote-file]
例如:將本地a.txt檔案上傳到遠端FTP上
put a.txt
斷開連線
bye
結束檔案傳輸會話並退出 ftp 命令,與quit命令相同。
分界符標誌
... << EOF
#execute shell
EOF
EOF只是一個分界符標誌,完全可以用abc, ! 等替換,也一樣的功能,只是大家都習慣用EOF來表示。
<<用法:當shell看到<<的時候,它就會知道下一個詞是一個分界符。在該分界符以後的內容都被當作輸入,直到shell又看到該分界符(位於單獨的一行)。因此分界符可以是定義的任何字串。
相關推薦
Shell指令碼實現FTP上傳下載檔案
Linux下使用Shell指令碼實現FTP自動上傳和下載檔案 登入FTP實現下載檔案功能 FTP伺服器:10.11.10.11 FTP路徑:Down 本地路徑: ./ 將檔案從FTP下載到本地的指令碼如下: 批量下載指令碼程式碼 #從
Java 實現Ftp上傳下載檔案
最近專案中需要實現將檔案先存放到ftp上,需要的時候再從ftp上下載,做的過程中碰到了問題,發現中文檔名的無法上傳到ftp上,ftp上的中文檔名的檔案下載不下來,幾番折騰,終於搞定了,記錄一下備忘。首先給工程新增maven依賴,pom.xml檔案中新增:<depende
java實現FTP上傳下載:FTPClient類進行FTP上傳下載大檔案(包含導致假死現象)
介紹: FTPClient是一個強大的FTP上傳下載工具,可以實現各種方式的ftp檔案傳輸,可以支援上傳下載各種大檔案(已在實踐中使用),而且存在官網使使用者方便的使用這個工具等等。 1.首先,程式中設定ftp請求方式為被動模式,即程式去請求ftp伺服器,要求伺服器來
Linux系統中使用lftp命令實現FTP上傳下載
lcd 工作 亂碼問題 pwd -- cd 命令 史記 size ls 命令 Linux 下常用的操作命令有 ftp、 lftp 和 sftp,圖形化界面非常好用的有 FileZilla。不過在服務器命令界面中,lftp使用比較方便,功能也比ftp更加強大。lftp的界面
Windows環境在cmd中使用ftp上傳下載檔案 檢視端口占用情況
cmd使用 端口占用 ftp上傳下載檔案 上傳 下載 端口占用 有時候在執行一些開發工具的時候經常會碰到埠被佔用的情況,比如adb執行埠被其它流氓軟體佔用,解決方法如下 開啟執行 彈窗,輸入cm
CentOS 安裝rz和sz命令,實現ftp上傳下載功能
lrzsz在linux裡可代替ftp上傳和下載。 windows 需要向centos伺服器上傳檔案,可直接在centos上執行命令yum -y install lrzsz 程式會自動安裝好,然後如你要下載者sz [找到你要下載的檔案] 如果你要上傳,者rz 瀏覽找到你
Ftp上傳下載檔案,並能自定義進度條展示(FtpClient)
前一段時間,自己寫了一個java專案釋出在一個免費的java平臺上但是該平臺給專案的是虛擬路徑並不能上傳檔案。後來想到應用ftp作為上傳檔案的儲存器。 ftp上傳的工具類有sun(sun.net.*)和apache(org.apache.commons.net.ftp.*
JAVA 實現FTP上傳下載(sun.net.ftp.FtpClient)
package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java
使用Apache Commons Net API實現FTP上傳下載過程中的坑點
最近專案需要實現FTP上傳、下載功能,採用了Apache Commons Net API。程式碼很快就完成了,但由於對相關API使用場景不是很熟悉,走了一些彎路,抽一點時間做一下總結。 A)主動被動模式選擇:FTP主動模式和被動模式的詳細介紹可
C#實現FTP上傳下載功能
//ftp的上傳功能 private void Upload(string filename) { FileInfo fileInf = new FileInfo(filename); string uri = "ftp://
定時執行Linux shell指令碼實現SFTP定時上傳下載檔案
之所以寫這篇文章,是因為網上很多有關文章亂轉載,crontab 命令的語法都是錯的,都直接轉了,雖然很簡單,但也會浪費時間啊,尤其是對於第一次寫的同學來說。轉入正題一:定時任務(大部分文章出錯的就是這個部分)1.執行命令:crontab -e2.按 i 編輯檔案,新增命令如下
java實現FTP上傳(檔案)、下載(檔案、資料夾、資料夾遞迴)、刪除(檔案、資料夾遞迴)
提示:必須先保證有在FTP上上傳、下載、刪除的許可權! 本文結構 ---- 先給出測試樣例(圖片版),再給出工具類程式碼(文字版)! 上傳測試 注意:.uploadFile(String remoteDir, String remoteFileName, F
使用指令碼在FTP上傳、下載檔案
由於最近勒索病毒變種又一次爆發,公司內部封鎖了TCP 445埠。導致原來通過檔案共享的方式上傳下載的計劃任務無法執行。所以,我開設了FTP伺服器來完成這個工作。 關於如何建立FTP伺服器,請看這裡 Windows 2012 R2上搭建IIS管理使用者的隔離模式FTP http://blog.51cto.c
java+jsp程式碼實現從FTP伺服器上傳下載檔案
首先宣告一下。jsp從ftp伺服器上面下載檔案,有兩種方法1.直接給出檔案的地址 2.將檔案作為位元組流返回給瀏覽器 一 、先說第一種吧(這種發放很簡單)。 1.直接使用一個超連結:<a href='ftp://FTP使用者名稱:密碼@IP地址:埠號+ 後面是路徑 (
Linux使用Shell指令碼實現FTP自動下載檔案,並記錄下載檔案日誌
Linux使用Shell指令碼實現FTP自動下載檔案,並記錄下載檔案日誌 最近初學shell程式設計,記一下自己寫的第一個指令
Java FTP上傳下載的實現
.net 一個 bin 上傳文件 pre 上傳下載 ole 切換 apach 昨天修改了一個接口,看到它涉及FTP的上傳與下載,用的是:org.apache.commons.net.ftp.FTPClient,它只支持FTP,不支持SFTP 總結下來如此使用: //創建對
老男孩教育每日一題-第95天-shell腳本知識點:書寫腳本完成ftp上傳下載
ftp腳本 ftp上傳腳本 ftp下周腳本 每日一題 題目日常工作中經常用到FTP,進行文件的共享與下載,單對於有些不熟悉FTP命令行人員使用FTP進行共享文件管理,是一件很頭疼的事。而且FTP如果有些文件需要每天定時進行上傳或下載,人為重復相同工作也是沒有意義的因此如何編寫自動下載或上傳FT
Struts框架上傳下載檔案輔助類,簡單實現Struts上傳圖片以及下載
首先在看這篇文章的前提下,你得會用Struts框架,有一定的基礎瞭解,說白了瞭解怎麼搭建就行了,然後基本就能順利執行本篇文章的Demo,當然這個類不僅僅侷限於圖片上傳下載的,因為是自己用流寫的方法所以可以支援其他檔案上傳下載。
用java實現ftp上傳檔案
實際專案需求:從資料庫查詢資訊,在本地生成檔案,再上傳到ftp 所用Jar包:NetComponents.jar 核心程式碼: import java.io.File; import java.io.FileInputStream; import java.io.IOExcepti
Java實現FTP上傳檔案到Linux伺服器的那些坑
一、Linux安裝FTP服務 首先Linux伺服器需要安裝FTP服務,步驟如下: 1、執行如下ftp服務安裝命令: yum install vsftpd 可能會出現如下錯誤: "Couldn't open file /m