Jenkins配置任务(SVN)及追加Execute shell

Jenkins配置任务(SVN)及追加Execute shell


先放一张我设计的架构图。如果需要一个自动更新的测试环境,可以再增加一个svn自动更新的代码目录。



一、添加用户


1.http://localhost:8080/


2.



二、新建任务

Jenkins主页 --> 新建 --> 任务名称:aoc  --> 构建一个自由风格的软件项目 --> 确定








如果需要增加shell语句。点击:
构建 --> 增加构建步骤 --> Execute shell

date_1=$(date -d "+1 minute ago" "+%Y_%m_%d_%H_%M")
d_dir=/web/aoc/
s_dir=/web/jenkins/aoc/
ssh 172.17.198.238 "mkdir -p /web/project/backup;cd /web;tar -czvPf /web/project/backup/aoc_"$date_1".tar.gz  "$d_dir""
chown -R php-fpm:php-fpm $s_dir
rsync -avuz $s_dir   --exclude=".svn" 172.17.198.238:"$d_dir"


 
  

三、注:

1.在执行

su - jenkins -c "ssh root@x.x.x.x "mkdir -p /web/project/backup;cd /web;tar -czvPf /web/project/backup/aoc_2018_03_07_20_03.tar.gz  /web/aoc/""

的时候,一直报错Host key verification failed.

检查来了密钥都正确,删除了known_hosts也没用。最后切换到jenkins用户下,执行ssh root@x.x.x.x "mkdir -p /web/project/backup;cd /web;tar -czvPf /web/project/backup/aoc_2018_03_07_20_03.tar.gz  /web/aoc/"成功。说明应该是know hosts存在缓存,即使删除文件也依旧存在。


2.模板:rsync传输文件

rsync -avuz /web/svn_update/   --exclude="index.php" 172.17.198.238:/web/svn_update/

rsync常用参数:
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-v, --verbose 详细模式输出
-u, 加上这个选项后将会把DST中比SRC还新的文件排除掉,不会覆盖(即以文件更改时间判断是否更新)
-z, --compress 对备份的文件在传输时进行压缩处理
-l 保留软链结
-L 向对待常规文件一样处理软链结,如果是SRC中有软连接文件,则加上该选项后将会把软连接指向的目标文件拷贝到DST
-p 保持文件权限
-o 保持文件属主信息
-g 保持文件属组信息
-D 保持设备文件信息
-t 保持文件时间信息
--delete 删除那些DST中SRC没有的文件
--exclude=PATTERN 指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)
--progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等
-r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项,上面加了-a选项,就不用加这个了




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值