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

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 我配置成了自动登录,可以参考这里。

Putty实现自动登陆远程Linux主机的方法
由于工作需要,经常要从Windows主机访问远程的Ubuntu服务器,每次输入账号和老长的密码,感觉很麻烦,于是参考网上的教程简单的设置了一下就能自动

linux Shell入门:掌握Linux,OS X,Unix的Shell环境
在Linux或类Unix系统中,每个用户和进程都运行在一个特定环境中。这个环境包含了变量、设置、别名、函数以及更多的东西。下面是对Shell环境下一些常

Linux Shell脚本实现检测tomcat
LinuxShell脚本检测tomcat并自动重启后台运行命令shxxx.sh&查看后台任务:jobs召唤到前台:fgjobs编号可以删掉while循环的代码放到crontab里面定时执行,可以将脚