如何将指定XML文件名写入Output.txt的命令封装为Unix Shell脚本
封装日常文件查找任务为Shell脚本方案
放心,我帮你把这个每日查找特定XML文件并更新Output.txt的需求,封装成一个专业的Unix Shell脚本,方便DBA直接使用:
1. 编写Shell脚本
创建一个名为update_inventory_files.sh的脚本,内容如下(带详细注释,方便DBA理解和调整):
#!/bin/bash # 脚本用途:每日查找/tmp目录下以IBM.PPSDSD.INV.开头的.xml文件,覆盖写入Output.txt # 定义核心路径变量,方便后续修改 TARGET_DIR="/tmp" OUTPUT_FILE="${TARGET_DIR}/Output.txt" # 先切换到目标目录,避免路径匹配出错 cd "${TARGET_DIR}" || { echo "错误:无法进入目录 ${TARGET_DIR},脚本终止"; exit 1; } # 执行查找并覆盖写入输出文件(仅匹配.xml后缀的文件,避免意外匹配其他类型) ls -1 IBM.PPSDSD.INV.*.xml > "${OUTPUT_FILE}" # 添加执行反馈,让DBA知道脚本运行结果 if [ -s "${OUTPUT_FILE}" ]; then FILE_COUNT=$(wc -l < "${OUTPUT_FILE}") echo "✅ 任务完成:${OUTPUT_FILE}已更新,共写入${FILE_COUNT}个匹配文件名" else echo "⚠️ 提示:未找到任何匹配IBM.PPSDSD.INV.*.xml的文件,${OUTPUT_FILE}已被清空" fi
2. 配置脚本权限
创建好脚本后,给它添加执行权限,这样DBA可以直接运行:
chmod +x update_inventory_files.sh
3. 使用方式
- 手动测试运行:
./update_inventory_files.sh - 如果后续需要调整目标目录,只需修改脚本里的
TARGET_DIR变量即可
4. 可选:配置每日定时任务(Cron)
因为需求是每日执行,可以帮DBA设置Cron定时任务,让脚本自动运行:
- 打开Crontab编辑界面:
crontab -e - 添加一行定时规则(示例为每天凌晨2点执行,可根据需求调整时间):
0 2 * * * /full/path/to/update_inventory_files.sh >> /tmp/inventory_script_logs.log 2>&1
- 说明:
0 2 * * *代表每天2点整执行;>> /tmp/inventory_script_logs.log 2>&1会把脚本的输出和错误信息写入日志文件,方便排查问题
内容的提问来源于stack exchange,提问作者Praj
相关产品推荐
相关产品推荐

