MAC命令行使用FTP並且實現腳本操作FTP的上傳下載


前言

FTP基本操作

安裝FTP工具

brew install telnet
brew install inetutils
brew link --overwrite inetutils

使用FTP

登錄

#方式一
$ ftp
ftp> open server-ip
#方式二
$ ftp server-ip

以上命令之后,按提示輸入用戶名和密碼。
當出現以下日志,表示連接成功

Connected to server-ip
220 (vsFTPd 2.2.2)
Name (10.0.0.101:username): username
331 Please specify the password.
Password:
230 Login successful.

此時已經進入ftp命令行環境,此時如果進行本地目錄或文件操作命令將發生一些變化,如下:

服務器操作 本地目錄操作
cd 目錄名(進入服務器目錄) lcd 目錄名(進入本機目錄)
cd (退到服務器根目錄) lcd (退到本機根目錄)
cd ..(退回到上一級目錄) lcd ..(退回到上一級目錄)
pwd !pwd
ls !ls

上傳文件

#server-filename 必須顯式指明,否則報錯:文件名無效
ftp> put /local/path/filename /remote/path/server-filename

注意:向ftp服務器上傳文件有兩種模式
字符模式(ASCII)和二進制模式(Binary)。默認是ASCII模式。一般上傳非文本文件要用二進制模式。
登錄ftp后,上傳文件前,在ftp>狀態下輸入bin即可(切換為二進制模式)。 在ftp>狀態下輸入asc(切換為ASCII模式)

批量上傳

使用通匹符批量上傳文件至服務器,需要注意的一點,mput 不支持絕對路徑,應該先進入要上傳的本地文件夾及遠程文件夾才可以操作。

ftp> cd /remote/path
ftp> lcd /local/path
ftp> mput file*
local: file.jar remote: imgs.jar
229 Entering Extended Passive Mode (|||62331|)
150 Opening data channel for file upload to server of "/local/path/imgs.jar"
100% |*|   519        2.60 MiB/s    --:-- ETA
226 Successfully transferred "/local/path/imgs.jar"
519 bytes sent in 00:00 (19.54 KiB/s)

注意:ftp不支持文件夾上傳

文件下載

下載服務器中的文件至本地目錄中,可選指定下載至本地目錄后的文件名稱,依然要求提前進入待下載文件的目錄中。

ftp> get remote-filename local-filename

默認本地當前路徑,local-filename可省略

注意:關於下載文件夾, FTP 命令不支持文件夾下載操作

刪除文件

ftp> delete /remote/path/filename

在服務器中刪除文件,可以指定絕對路徑,相對其他命令顯得比較靈活

Shell腳本操作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"

下載單個文件腳本代碼

#!/bin/sh
ftp -v -n 10.11.10.11 [端口用空格分開,默認端口可以不填]<<EOF
user ftpuser ftppwd
quote pasv
passive
binary
cd Down
lcd ./
prompt
#get down.txt
get down.txt note.txt
bye
EOF
echo "download from ftp successfully"

批量上傳腳本代碼

#從本地向FTP批量上傳文檔
#!/bin/sh
ftp -v -n 10.11.10.11 [端口用空格分開,默認端口可以不填]<<EOF
user ftpuser ftppwd
quote pasv
passive
binary
hash
cd Up
lcd ./
prompt
mput *
bye
#here document
EOF
echo "commit to ftp successfully"

上傳單個文件腳本代碼

#從本地向FTP上傳單個文檔
#!/bin/sh
ftp -v -n 10.11.10.11 [端口用空格分開,默認端口可以不填]<<EOF
user ftpuser ftppwd
quote pasv
passive
binary
cd Up
lcd ./
prompt
put file.txt
bye
#here document
EOF
echo "commit to ftp successfully"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM