You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据flag文件的数值段仅GPG加密对应匹配的数据文件

Shell 脚本优化方案

核心逻辑

遍历所有已生成的flag文件,提取文件名中的数字标识,仅对匹配该标识的对应数据文件执行加密操作,彻底避免无对应flag的文件被误加密。

优化后完整脚本

#!/bin/bash

# 加载业务环境变量
. /pbapps/pbmis/apps/apps_st/appl/APPSpbmis_ennycebs02.env

# 统一配置工作目录,后续调整路径仅需修改此处
WORK_DIR="/misc/pbmis/output"

# 遍历所有flag文件
for flag_file in "${WORK_DIR}"/SendPaysource.*; do
    # 兼容无flag文件时通配符原样返回的异常场景
    [ -e "${flag_file}" ] || continue
    
    # 提取flag文件后缀的数字标识
    file_id=$(basename "${flag_file}" | awk -F '.' '{print $NF}')
    
    # 拼接对应的数据文件完整路径
    target_data_file="${WORK_DIR}/WSPGLOBAL.PAYMENTS.ISO20022_PAIN_01Ver3.${file_id}.xml"
    
    # 确认数据文件真实存在后再执行加密
    if [ -f "${target_data_file}" ]; then
        gpg --always-trust --no-tty -se --passphrase xxxxxxxxx -r xxxxx.xxxxx.com "${target_data_file}"
        
        # 可选功能:加密完成后删除已处理的flag文件,避免脚本重复执行时重复处理
        # rm -f "${flag_file}"
        # 可选功能:添加处理日志
        # echo "$(date '+%Y-%m-%d %H:%M:%S') 已完成文件${target_data_file}加密" >> /var/log/gpg_encrypt.log
    fi
done

优化点说明

  • 解决原脚本误加密问题:不再使用全量*.xml通配符匹配所有数据文件,仅处理有对应flag文件的目标文件
  • 异常兼容性提升:新增多重文件存在性判断,避免无flag文件、flag存在但数据文件未生成/未写完的场景下执行异常
  • 可维护性优化:工作目录抽为统一变量,后续路径调整仅需修改一处
  • 扩展能力支持:注释提供了去重处理、日志记录的可选实现,可根据业务需求直接启用

内容的提问来源于stack exchange,提问作者mek404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:36:03