mount ftp 並以 rsync 上傳

寫網頁程式的發佈一直很麻煩, 一般是會給你 ftp 或 git 登入權限, 但要一個個複製實在很麻煩。 於是就用 rsync 上傳,再寫到 Makefile, 一個指令就完成,愉悅。

rsync --verbose --recursive --update \
      --exclude '*~' \
      --exclude '.*' \
      ./ ~/gvfs/ftp:host=gisweb.ml/www/exifmap/

本來 rsync 是走自訂的 procotol, 但一般的 web host 都不提供, 只好先用 gvfs 把 ftp mount 成本機的檔案系統, 再用 rsync 在本機間複製。

gvfs mount ftp 大概就是開檔案管理員, 網址就打 ftp url ftp://gisweb.ml , 然後以 debian xfce 來說就是 mount 到 /run/user/1000/gvfs/ftp:host=gisweb.ml 。 我是習慣會 ln -s /run/user/1000/gvfs ~/gvfs , 用起來比較方便。

本來我 rsync 是都用 --archive , 但發現 archive 也就是一堆選項的組合, 但大半都會報錯。

基本上一般只會用到 recuvsive, permision 不知道為什麼怪怪的, 可能是因為我用 gvfs 吧, 對方不是 windows,但卻都是 777。

所以整理一下,就剩 recursive 選項能用, 再加 update 會檢查時間,避免重覆複製。 verbose 則是讓 rsync 顯示到底幹了什麼。

exclude 則是要略過匹配的, 如果資料夾匹配,內容也會被略過。