admin管理员组

文章数量:1533099

2023年12月30日发(作者:)

长时间稳定运行的脚本开发需要注意的问题

1.脚本语言种类的选择

语言的选取主要考虑功能和性能的考虑。考虑是否该种语言方便完成所需要的功能,满足性能的要求。通常对于简单的对于性能要求不高的应用,优先考虑使用sh, ksh, awk…。复杂的应用可以考虑使用perl, python。

2.需要具有暂停,并重新从断点继续运行的能力

对于需要长时间运行的脚本,需要有历史纪录的能力,当由于某些外部原因需要暂停、系统重新启动等要求时,可以在系统恢复时,脚本能从断点出继续运行。

可能使用到的技术有:a. 在脚本中捕获信号,并处理,使程序能正常退出。常用的信号有:SIGHUP, SIGINT, SIGQUIT, SIGTERM;b. 纪录运行的历史,如果在程序中断时可以通过历史记录自动找到断点,重新运行。

3.错误监测

注意要对系统命令的返回值进行判断,特别是某些消耗系统资源的命令,例如cp,mv等。对于cp可以考虑使用如果不成功则循环等待的方法。

4.需要有应对系统资源不足的策略

可能的资源不足有:磁盘空间不足;

5.脚本是否能高效运行

一般来说,脚本语言相对C/C++来说效率要低一些,但是它可以快速开发,不依赖编译环境。而广受欢迎。一般来说,用shell实现某功能往往有多种方法,它们的执行效率有时相差悬殊。下面列举一些例子:

a.find . –name *.tmp –exec rm {} ;

没有

find . –name *.tmp |xargs –I rm {}

效率高

b.在拷贝,移动大量文件时,成批拷贝/移动要比一个文件一个文件的拷贝来的快

c.

6.日志纪录、入库

日志对了解程序运行状态,事后查找、统计相关数据至关重要。对于有大量输出的日志,建议每天/小时产生一个日志, 以降低日志文件大小, 减少写大文件对系统性能的影响。

对于以后可能需要频繁查找的日志文件,可以考虑另外开发一个程序定期将日志文件入库,以方便查找。

7.同时运行一个脚本不互相冲突

为了能同时运行多个脚本程序,开发时应注意避免将临时目录、临时文件写死。可以考虑使用进程号作为文件名/目录名的一部分。

8.程序结构化,便于后期维护

9.命令行参数

本文标签: 需要考虑日志脚本