Site icon Mr. 沙先生

用 ncftp 來寫 shell script 遞迴上傳整個資料夾

最近在寫 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 *

Exit mobile version