编写shell脚本一键下载特定目录下的tar.gz包文件

1、背景概述:

工作中遇到这样一种情况,就是有时候需要下载服务器某个目录下面所有后缀名为tar.gz的压缩包到本地目录存放,一般我们都会直接使用sz命令直接进行文件传输下载,但是需要一级一级cd到相关的目录下去。这样就比较繁琐,而且有的时候遇到层级目录结构比较深的更是抓狂,但是如果通过编写一个shell脚本来执行这项重复的操作就比较方便了,基本可以实现一键下载,同时还可以指定包名(关键字匹配)进行下载。

2、前提工作:

需要设置一下xshell工具(不一定非得是xshell工具,这里我用的是xshell)的文件下载默认目录路径,避免每次都弹出窗口指定本地存放路径。

编写shell脚本一键下载特定目录下的tar.gz包文件_第1张图片
image.png

3、编写shell脚本(get_all_jenkins_target.sh):

#!/bin/bash

basedir='/home/jenkins/workspace'

usage() {
echo "$0 [base|workFlowEngine|settings|access|order|risk]"
}

usage

if [ $# -eq 1 ];then
path=$1

tar=`find ${basedir}/*${path}* -name "*.tar.gz" -type f`
echo "============starting to  transfer $tar ============"
sz -b $tar

else
echo "============starting to  transfer all tar.gz in $basedir =============="
for tar in $(find ${basedir}/ -name "*.tar.gz" -type f); do sz -b $tar;done
fi
echo "====tracsfer success===="

4、分配权限:

比如我们将shell脚本get_all_jenkins_target.sh放到一个根目录(/home/jenkins/workspace)下,然后分配用户宿主和执行权限。

4.1、分配jenkins宿主(使用root账户权限进行分配):

[root@base ~]$ chown -R jenkins:jenkins get_all_jenkins_target.sh

4.2、赋予x可执行权限

[root@base ~]$ chmod +x get_all_jenkins_target.sh

分配完之后

编写shell脚本一键下载特定目录下的tar.gz包文件_第2张图片
image.png

5、执行shell脚本

后面不加任何参数,表示下载所有后缀名为tar.gz的压缩包

[jenkins@base ~]$ sh get_all_jenkins_target.sh

后面加上参数(比如这里加了order),表示下载所有后缀名里面包含了order关键字的tar.gz压缩包

[jenkins@base ~]$ sh get_all_jenkins_target.sh order

6、执行效果:

编写shell脚本一键下载特定目录下的tar.gz包文件_第3张图片
image.png
image.png
编写shell脚本一键下载特定目录下的tar.gz包文件_第4张图片
image.png

你可能感兴趣的:(编写shell脚本一键下载特定目录下的tar.gz包文件)