制作简单的`linux`可执行bin包,做升级文件

本文介绍了如何通过Shell脚本和一个JSON格式的升级清单来执行软件升级。升级过程中涉及文件打包、备份、解压以及执行特定操作。升级清单包含前端UI、中间件、数据库更新、配置文件和脚本等信息。通过创建bin包执行升级,确保了过程的专业性和可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的升级操作,可以通过tar -czPf 压缩包名 需要的文件……来将需要升级的文件打包,然后命令行解压升级。

我的思路是,有一个升级清单文件,是json格式,里面定义自己要升级的文件及要做的操作,例如:

{
	"ui": "dist.zip",  # 如果升级前端写dist.zip,否则为空
	"middleware": [  # 列表中写入所有更新的文件,否则为空
		"middleware/app/check/views.so",
		"middleware/app/check/service.so"
	],
	"update_sql": 0,  # 是否升级数据库,是:1, 否:0
	"supervisor_conf": 0,  # 是否更新supervisor的配置,是:1, 否:0
	"version": "1.0.1",  # 升级的版本号
	"script": 0  # 是否有up.sh脚本执行,有:1, 无:0
}

代码中解析这个升级清单,进行相应的操作,备份原文件,防止升级失败,然后可以进行还原。其中script可以看是否有需要执行的安装命令,或者替换某些linux文件的脚本,这样做的话,实现升级是可以,就是升级包显得不够专业。

bin包升级

我们可以利用shell脚本和文件写入到bin包中,通过执行bin包升级

先创建一个shell脚本,里面可以执行相关的操作:vim test.sh

#!/bin/bash

name=upgrade163;
tmpfile_name=/tmp/${name}.tgz;
# 这里可以写一堆操作,安装依赖等
sed -n -e '1,/^exit 0;/!p' $0 > ${tmpfile_name} 2> /dev/null;  # 分离脚本与升级包
tar -xzf ${tmpfile_name} -C /home/test/; 
exit 0;

然后通过 cat test.sh upgrade.tgz > bag.bin生成一个bin包

chmod a+x bag.bin

./bag.bin执行bin包即可将升级的文件分离到指定的目录下,后续可以写一些脚本解压替换等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值