Jenkins配置任务(SVN)及追加Execute shell
Jenkins配置任务(SVN)及追加Execute shell先放一张我设计的架构图。如果需要一个自动更新的测试环境,可以再增加一个svn自动更新的代码目录。一、添加用户1.http://localhost:8080/2.二、新建任务Jenkins主页 --> 新建 --> 任务名称:aoc --> 构建一个自由风格的软件项目 --> 确
·
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选项,就不用加这个了
更多推荐
已为社区贡献1条内容
所有评论(0)