遇坑填坑之旅:使用FTP工具在不同的平臺之間傳輸文件時,用錯傳輸類型將導致文件損壞
我在Windows10用Xftp工具發送RPM軟件包到CentOS後遇到過2次傳輸問題----執行yum安裝命令時才發現RPM包是損壞的; 於是我慢慢養成一個習慣:凡是跨平臺傳輸了安裝包一類的文件,都用命令去校驗源文件和傳輸後的文件MD5是否一致.
一. 若你的目標文件是test.txt,三大主流平臺下的MD5校驗命令:
Linux:
md5sum test.txt
Windows:
certutil -hashfile test.txt MD5
MacOS:
md5 test.txt
二. 另外記錄一下在Linux系統使用ftp命令來推送文件:
舉例:從CentOS7發送一個RPM包到遠程服務器的操作流程:
1.傳輸的是非文本類型,如安裝包、壓縮包等等,必須指定binary[二進制]類型進行傳輸:
例如有個文件是CentOS系統上的QQ RPM安裝包:
linuxqq.rpm
操作過程如下:
//發起請求ftp連接請求
ftp www.target.com
//接着按順序輸入用戶名和密碼
root
123456
//因爲目標文件是RPM格式,必須指定二進制類型傳輸,否則會亂碼無法安裝
binary
//先定位到本地的家目錄,因爲linuxqq.rpm就放在那
lcd ~
//然後打開遠程服務器的一個目錄,本次我要把文件推送到home目錄下
cd /home
//推送文件
put linuxqq.rpm
//檢查一下遠程服務器的目錄下是否多出了目標文件
dir
//關閉ftp通道
close
//退出ftp模式
bye
2.傳輸的是文本類型,請指定ascii類型進行傳輸:
又例如在你的CentOS系統上有個python項目,你想把裏面的依賴包描述文件(requirements.txt
)發送到其他機器:
操作過程如下:
//發起請求ftp連接請求
ftp www.target.com
//按順序輸入用戶名和密碼
root
123456
//因爲目標文件是文本格式,指定用ASCII類型來推送
ascii
//先定位到本地的項目根目錄,如/home/PlaneWars/
lcd /home/PlaneWars/
//然後打開遠程服務器的一個目錄,本次我要把文件推送到home目錄下
cd /home
//推送文件
put requirements.txt
//檢查一下遠程服務器的目錄下是否多出了目標文件
dir
//關閉ftp通道
close
//退出ftp模式
bye