Shell脚本:利用sed打包生成二进制部署安装脚本

Posted old w

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本:利用sed打包生成二进制部署安装脚本相关的知识,希望对你有一定的参考价值。

操作环境Centos7

实验脚本nginx-1.12.1

脚本打包

新创建一个目录,把脚本需要的安装包和依赖包及配置文件放到同一个目录下。

 !!!注意:以上只是脚本的安装包和文件并没有脚本。

打包刚才装有脚本安装包的目录

 在写好的脚本开头加上二进制生成语句

# vim /nginx_install.sh
    DIR_TMP=$INSTALL_DIR(变量定义脚本的安装目录)/installtmp
    mkdir ${DIR_TMP}
    sed -n '1,/^exit 0$/!p' $0 > ${DIR_TMP}/app.tar.gz(替换成刚才打包的安装包的文件名) 2>/dev/null
    tar xvf ${DIR_TMP}/app.tar.gz(同上) -C $INSTALL_DIR
    rm -rf ${DIR_TMP}(删除多余的文件)
    rm -rf $INSTALL_DIR/app.tar.gz(同上)

执行合并语句

注意:脚本和刚才打包的安装包文件要在一个目录下。

cat nginx-install.sh(脚本名称) app.tar.gz(打包的安装包名称) > nginx_install.sh (新的脚本名称)

等待执行完成后,二进制脚本制作完毕。

脚本前半段是脚本,后半段是二进制码。

该操作可以有效的避免因缺少文件,导致脚本无法安装。

以上是关于Shell脚本:利用sed打包生成二进制部署安装脚本的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本自动编译打包Gradle项目并docker部署

将 shell 脚本打包到 rpm 包中

Shell脚本自动部署(编译)LAMP平台

Linux定时对日志批量打包Shell脚本及定时任务crontab 详细用法

salt-master minion 部署脚本[未完成]

SpringBoot打包不同环境配置与shell脚本部署