#!/bin/sh

#set就是当命令以非零状态退出时,则退出shell。主要作用是,当脚本执行出现意料之外的情况时,立即退出,避免错误被忽略,导致最终结果不正确

set -e  #${JOB_NAME}=$1  ${BUILD_NUMBER}=$2 buidNo=$2

#let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来。语法:let a=5+4

let

buidNo=buidNo-10  

#cd /data/soft/jenkins/jobs/$1/builds/ #這是114机器的路径

cd /data/jenkins-read/jobs/$1/builds

#rm 用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。

# -r/R --recursive   同时删除该目录下的所有目录层  # -f      --force    略过不存在的文件,不显示任何信息,强制删除

rm -fr ${buidNo}

cp -r newBuild ${buidNo}

ln -s newBuild $2  

# maxdepth 指定遍历搜索的最大深度

# -mtime+1

#表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件这也能解释了,为什么6号22点生成的这个文件为什么没有输出出来这里-##time +1 为什么是48小时以外,而不是24小时以外呢,因为n只能是整数,比1大的下一个整数是2,所以是48小时以外的  #-exec command:command 为其他指令,-exec后面可再接额外的指令来处理搜寻到的结果。

#“rm -rf /”意味着擦除根路径“/”下挂载的所有内容而无需询问 #{} 对一串命令在当前shell执行

find ./ -maxdepth 1 -mtime +3 -name "*" -exec rm -rf {} \;

exit 0

注意,$1,$2为执行sh命令时,占位传输过来的比如,该脚本名称叫ClearJenkinsJob.sh

sh "/data/jenkins-read/workspace/testfiles/libs/ClearJenkinsJob.sh ${env.JOB_NAME} ${env.BUILD_NUMBER}"
03-12 06:34