Linux系统下脚本记录与循环执行参数示例
需积分: 10 19 浏览量
更新于2024-08-05
收藏 2KB TXT 举报
"这是关于在Linux系统下记录执行文件日志的一种方法,特别是针对脚本或命令行工具的运行。此范本展示了如何设置错误处理、记录开始时间、创建日志目录、保存日志以及循环遍历两个参数列表(年月数组和省份数组)来执行任务。"
在Linux环境中,正确记录程序的运行情况对于调试和问题排查至关重要。这个示例展示了如何创建一个日志系统,用于跟踪脚本或特定文件(在这个例子中是`hql_path`下的`sharemarket_allload.hql`文件)的执行情况。
首先,`source /etc/profile`用来激活环境变量,确保所有必要的路径和配置都已加载。`set -e`命令通常用来设置脚本的退出策略,使得一旦有任何命令返回非零状态(表示错误),脚本就会立即停止执行,但在这个范例中并未启用。
然后,`start_time`和`start_time1`分别获取了系统当前时间的Unix时间戳和易读格式,便于追踪任务的开始时间。
`parent_path`通过`cd ../; pwd`获取到当前目录的上一级路径,这样可以确保日志文件保存在与执行文件相同的目录结构中。`log_path`被定义为`parent_path`下的`log_files`子目录。如果该目录不存在,`mkdir -p`会创建它。
`hql_path`变量存储了HQL文件所在的路径,而`exe_file`指定了要执行的特定HQL文件。执行文件前,先将文件名和开始执行的时间写入日志文件`sharemarket_allload.log`。
接下来,有两个数组`ym_arr`和`province_arr`分别代表年月和省份。`arr_len_ym_arr`和`arr_len_province_arr`分别获取了它们的长度,用于后续的循环遍历。这两个数组的嵌套循环结构允许针对每一对年月和省份执行文件。
在循环内部,使用`echo`命令向日志文件记录进度,`执行文件的命令`这部分应替换为实际执行HQL文件的命令,例如`hive -f ${exe_file} -Dparam_ym=${param_ym} -Dparam_province=${param_province}`。执行后,`$?`保存了上一个命令的退出状态,用于检查是否成功。成功执行的标志(假设为0)会被写入日志,便于后期分析。
这个范本提供了一个可扩展的基础,可以根据实际需求调整参数列表,添加更复杂的错误处理和日志记录功能。对于大型数据处理或持续运行的服务来说,这样的日志记录机制是非常重要的。
2022-06-29 上传
2021-09-26 上传
2021-10-06 上传
2020-04-30 上传
2021-12-13 上传
2021-10-29 上传
温蒂先生
- 粉丝: 162
- 资源: 7
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查