【好用】运维实施工程师必备shell脚本-批量拷贝目录,解压

场境:实施最头痛的不是遇到问题,而是允许操作服务器时间太少,有时候10几个人用一台,如何更快速的完成服务的部署?

shell功能介绍:
适用于Linux系统,将.tar.gz或.tar格式的文件从/home/source目录批量自动解压到/opt/smile目录中,并将源目录/home/source中的文件移动至/opt/smile目录中

特性:
该过程单个文件移动,同时运行一次将操作信息保存到日志中,日志目录为/opt/smile/smile.log

注意:先创建/opt/smile/目录,这个目录可以随便命名,在脚本里修改即可(一般为公司简称),并给权限

  1. 将需要解压的目录上传到服务器,创建/opt/smile/目录
  2. 编辑脚本,给权限
vim  /opt/smile/auto_install.sh

#! /bin/bash
#日志目录
log="/opt/smile/smile.log"
#获取当前时间
curtime=`date +"%Y/%m/%d  %H:%M:%S"`
#打开指定目录
cd /home/source
#获取目录中的文件数,筛选标准是“行首后紧跟着一个-符号”(^代表行首,)
count=`ls -l|grep '^-'|wc -l`
#对目录中的每个文件进行操作,判断目录中是否有文件
if [ $count -ne  0  ];then
       for i in `ls -1`
           do
               echo "操作文件名:$i ">>$log;
# 将文件解压到指定目录
               tar zxvf /home/source/$i -C /opt/smile;
#将文件移动到指定目录
               mv /home/source/$i /opt/smile;
           done
       echo "$curtime ,执行成功,操作数目: $count">>$log
else
    echo "$curtime source is empty.">>$log
fi

sudo chmod -R 777 /opt/smile/

  1. 执行并验证
    屏幕显示,解压过程
    在这里插入图片描述
    执行成功,并有日志
    在这里插入图片描述
    总结:
    可以根据情况对脚本进行调整,zip包也可以进行批量解压,改命令即可!还可以根据情况添加一些判断是否具备软件部署条件,如:java -version ,若依赖Java环境,根据返回值判断,以解压1个为例,10个也一样,方便演示,复杂的先不介绍了!
    例如:可以判断是什么格式的文件用对应的命令来解压(适用于zip包与gz包混合情况)
#! /bin/bash
#日志目录
log="/opt/smile/smile.log"
#获取当前时间
curtime=`date +"%Y/%m/%d  %H:%M:%S"`
#打开指定目录
cd /home/source
#获取目录中的文件数,筛选标准是“行首后紧跟着一个-符号”(^代表行首,)
count=`ls -l|grep '^-'|wc -l`
#对目录中的每个文件进行操作,判断目录中是否有文件
#if [ $count -ne  0  ];then
       for i in `ls -1`
           do
if [ "${i##*.}" == "gz" ];then
               echo "操作文件名:$i ">>$log;
# 将文件解压到指定目录
               tar zxvf /home/source/$i -C /opt/smile;
#将文件移动到指定目录
               mv /home/source/$i /opt/smile;
elif  [ "${i##*.}" == "zip" ];then
		mv /home/source/$i /opt/smile;
		cd /opt/smile && unzip $i
       echo "$curtime ,执行成功,操作数目: $count">>$log
else   
    echo "$curtime source is empty.">>$log
fi
done

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Friends of the wind

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值