免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5372 | 回复: 8
打印 上一主题 下一主题

[学习共享] shell脚本工具架构设计 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-10 06:12 |只看该作者 |倒序浏览
如果要设计可以重用的工具脚本的话,大家都是怎么样来设计架构的
我来抛砖引玉
从目录结构,
/bin --可执行脚本
/logs-- 保存log文件
/cfg  -- 配置文件根据不同的环境
/lib -- 函数

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
2 [报告]
发表于 2013-09-10 08:30 |只看该作者
本帖最后由 rdcwayx 于 2013-09-10 10:31 编辑

带日志输出,带库文件。这个好像是不小的工程啊。 你确定想要的是shell 脚本吗?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
3 [报告]
发表于 2013-09-10 08:41 |只看该作者
随用随写
无重用
无架构

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
4 [报告]
发表于 2013-09-10 09:20 |只看该作者
常用功能会做在一个库文件里用于source。

论坛徽章:
0
5 [报告]
发表于 2013-09-10 10:02 |只看该作者
比如说你的环境有几百台server, 有四五个不同的环境,例如QA, Staging,Prod,我要把不同环境的变量都放到配置文件里面,这样run script的时候只要传一个参数进去就可以了
首先我想重用我的脚本,也不是很复杂的库函数,但是不想放到main script里面
其次我想把python和bash库函数分开
其次我要知道自动化部署的结果,所以一定要有log
这样的脚本又可以在不同project里面再重用

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
6 [报告]
发表于 2013-09-11 15:22 |只看该作者
bash脚本通常没有 库函数这个说法。用bash 脚本的话,别想着要大而全。 针对某个任务些个通用的脚本即可。

论坛徽章:
0
7 [报告]
发表于 2013-09-11 17:39 |只看该作者
本帖最后由 ziyema 于 2013-09-11 17:44 编辑

我们目前shell的架构基本是如下类型
-----------------------------------------
/shell_project
|_ /comm 通用函数,用于脚本调用log函数和状态返回函数
|_ /conf   一些变量和状态的定义
|_ /logs   脚本执行返回的日志信息
|_ /main  主要脚本路径
       |_ /protjectA     项目A
                 |_ /conf   A脚本的一些配置文件
                 |_ /COPY_FILES  需要拷贝的文件
                 |_ /packages       脚本所需依赖包
                 |_ projecyA_deploy.sh  主脚本
                 |_ README         脚本说明

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
8 [报告]
发表于 2013-09-12 10:31 |只看该作者
你看看这个吧

shell如何模块化和复用
http://arganzheng.iteye.com/blog/1174470

论坛徽章:
0
9 [报告]
发表于 2013-09-13 03:32 |只看该作者
rdcwayx 发表于 2013-09-12 10:31
你看看这个吧

shell如何模块化和复用


谢谢分享很有帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP