自從法現 SSH 可以執行遠端命令後,ftp 軟體也漸漸很少用了。
每次補救伺服器代碼,都要打包、上傳、登入到伺服器修改檔案許可權、更新 Cache 等等,又慢又容易出錯,所以做成指令碼,一次幫我搞定,自己就點上一根煙坐在電腦面前發獃,要麼就玩會兒《植物大戰殭屍》啥的,悠閑!
PS: Ant 以及 Phing 使用者,你們可以無視了… 我只是喜歡玩 Shell 而已。
複製代碼 代碼如下:
#!/bin/sh
HOME='/cygdrive/d/public_html/myproject'
## 先打包本地代碼
## 排除如下檔案: *.svn, *.bat, upload.sh, cache
## 如果需要 exclude 的檔案很多,可以使用參數 --exclude-from=FILE
## 將檔案一行行寫入 FILE 中
cd $HOME
tar jcf tmp.tar.bz2 * \
--exclude=*.bat \
--exclude=*.bz2 \
--exclude=*.gz \
--exclude=.svn \
--exclude=cache \
--exclude=upload.sh \
## 通過 SCP 上傳檔案
scp tmp.tar.bz2 user@your.host.com:/home/public_html/myproject/tmp.tar.bz2
## 執行遠程 ssh 命令
## 這裡執行了另外一個指令碼 load.sh
ssh user@your.host.com
"
cd /home/public_html/myproject
tar jxf tmp.tar.bz2
chown -R web:web *
chmod -R 755 *
sh load.sh
rm -f tmp.tar.bz2
"
## 刪除本地檔案
rm -f tmp.tar.bz2
echo "Everything is done."
# 星期一 一月 11, 2010 by Verdana
# vim: set expandtab tabstop=4 shiftwidth=4:
SSH 我配置成了自動登入,可以參考這裡。