最近在寫 script 的時候,需要使用到上傳整個 local 端的資料夾,在 CentOS 裡內建的 ftp client 是沒有辦法直接用 mput 上傳整個目錄
所以只好安裝另一個 ftp client:ncftp
ncftp 是一個很適合用於 script 的 ftp 工具,提供 chmod、put -R、set、lookup 等功能非常使用
在本篇的例子中,我必須要做到的是 將本地的 site 目錄底下所有的資料(包含目錄) 一次上傳到 ftp server 中的 shazi.info 資料夾內
example script :
#!/bin/bash FTP_SITE='192.168.10.10' FTP_USER='ftp_user' FTP_PWD='ftp_pwd' REMOTE_DIR='shazi.info' LOCAL_DIR='/usr/share/nginx/html/site' ncftp -u $FTP_USER -p $FTP_PWD $FTP_SITE << shazi.info lcd $LOCAL_DIR cd $REMOTE_DIR rm -rf * put -R * close shazi.info
本地資料夾位置:/usr/share/nginx/html/site
遠端 FTP 位置:/shazi.info (這是相對於登入 FTP 後的根目錄位準)
另外 rm -rf * 的意義是我希望兩邊的資料可以一致達到同步的效果,並不是只有新增/修改,由於我已經定好目錄位置,所以才使用 rm -rf *