Shell中使用scp命令实现文件上传代码
自从法现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 tarjcftmp.tar.bz2* \ --exclude=*.bat \ --exclude=*.bz2 \ --exclude=*.gz \ --exclude=.svn \ --exclude=cache \ --exclude=upload.sh\ ##通过SCP上传文件 scptmp.tar.bz2user@your.host.com:/home/public_html/myproject/tmp.tar.bz2 ##执行远程ssh命令 ##这里执行了另外一个脚本load.sh sshuser@your.host.com " cd/home/public_html/myproject tarjxftmp.tar.bz2 chown-Rweb:web* chmod-R755* shload.sh rm-ftmp.tar.bz2 " ##删除本地文件 rm-ftmp.tar.bz2 echo"Everythingisdone." #星期一一月11,2010byVerdana #vim:setexpandtabtabstop=4shiftwidth=4:
SSH我配置成了自动登录,可以参考这里。