Linux利用ftp命令上傳下載文件


Linux中如何使用ftp命令,包括如何連接ftp服務器,上傳or下載文件以及創建文件夾。雖然現在有很多ftp桌面應用(例如:FlashFXP),但是在服務器、SSH、遠程會話中掌握命令行ftp的使用還是很有必要的。

ftp命令

使用格式:ftp [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-w:windowsize] [computer]

    -v:禁止顯示遠程服務器響應信息

              -n:禁止自動登錄

    -i:多文件傳輸過程中關閉交互提示

    -d:啟用調試,顯示所有客戶端與服務器端傳遞的命令

    -g:禁用文件名通配符,允許在本地文件和路徑名中使用

         實例:ftp 122.122.122.122 2222

         輸入用戶名、密碼,即可完成登錄。

目錄操作

  FTP命令可以列出、移動、創建文件夾。

  • ls -- 打印目錄列表
  • !ls -- 查看本地目錄
  • cd -- 改變目錄
  • mkdir -- 創建文件夾

使用FTP下載文件

  在下載一個文件之前,首先需要使用lcd命令設定本地接收目錄位置。

  • lcd -- 指定下載目錄
  • get file.txt [file_new.txt] -- 下載文件 支持更改名字
  • mget *.txt -- 使用mget + 通配符下載多個文件

使用FTP上傳文件

  • lcd -- 指定即將上傳的文件,所在的本地目錄。
  • put file.txt [file_new.txt] -- 上傳文件 支持更改名字
  • put /home/data/cwh/file.txt -- 絕對路徑
  • mput *.txt -- 上傳多個文件

關閉FTP連接

  完成FTP工作后,為了安全起見需要關閉連接。有3個命令可以關閉連接:

  • bye -- 關閉連接
  • exit -- 關閉連接
  • quit -- 關閉連接
  • close -- 關閉連接

其他命令

  • ? -- 查詢ftp命令
  • help -- 查詢ftp命令
  • open [ftp server name] -- 和指定的遠程Linux FTP服務器連接
  • user [user name] [password] -- 使用指定遠程Linux FTP服務器的用戶登錄
  • pwd -- 顯示當前路徑
  • ls -- 列出目錄和文件
  • dir -- 列出目錄和文件(同上)
  • mkdir [foldname] -- 創建指定目錄
  • rmdir [foldname] -- 刪除指定目錄
  • cd -- 切換目錄
  • delete [filename] -- 刪除文件
  • rename [filename] [newfilename] -- 重命名
  • close -- 關閉連接 但保留FTP命令參數提示
  • disconnect -- 關閉連接 但保留FTP命令參數提示(同上)
  • bye -- 結束連接
  • quit -- 結束連接
  • ! -- 直接從遠程Linux FTP進入到本地Shell中
  • exit -- (接上步)從本地Shell環境返回遠程Linux FTP中
  • !ls -- 列出本地機器目錄和文件
  • lcd [foldname] -- 更改本地工作目錄
  • binary -- 使用二進制傳輸文件
  • prompt -- 切換提示(使用mput或mget上傳下載多個文件時避免提示)
  • case -- 在使用mget時,將遠程主機文件名的大寫轉換為小寫字母
  • cdup -- 進入遠程主機目錄的父目錄
  • system -- 顯示遠程主機的操作系統類型
  • hash  -- 每傳輸1024字節,顯示一個hash符號(#)
  • status -- 顯示當前ftp狀態

一個完整的shell腳本

文件上傳腳本

#!/bin/bash
#by anding 20200620
#for upload UBF

function putftp
{
Pass='xxxxxxxxxxx'
ftp -n 10.254.104.23 21 <<!
user mcb3tran $Pass
bin 
#對端目錄 cd
/opt/cbbs/pcs/all/data/outgoing put $1 bye ! } # 日志定義 log_date="$(date +'%Y%m%d')" log_dir="$HOME/log/$log_date/upload" log_file="$log_dir/put_%s_${log_date}.log" date1=`date +%Y%m` month1=`date -d "2 month ago" +%Y%m` file="SM"$month1"000.931" #生成文件,調用606接口生成文件 tpssreceive -i 606 sleep 20 #處理文件目錄--本地 cd /jsyy/tpss/jt_upload/SM_temp file1=`ls /jsyy/tpss/jt_upload/SM_temp/*$date1*` sed -i s/$date1/$month1/g $file1 cat $file1>$file #文件校驗 count1=`diff $file1 $file |wc -l` if [ $count1 -gt 0 ]; then echo "====================文件復制出錯,請檢查!!!!=====================" else echo "===================上傳文件中================" rm $file1 fi #上傳文件 putftp $file echo `date +"%Y/%m/%d %H:%M:%S"`" 上傳${file1}文件成功" &>$(printf "$log_file" "SM") mv $file1 BAK_$file1

 


免責聲明!

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



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