Insar结合ISCE2,某一个文件进行并行-stackSentinel.py

发布于:2025-03-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

stackSentinel.py

依次执行 run_01 到 run_15,记录各自的日志

并行执行 run_16 里的所有命令,仍然记录日志

不知道对不对,测试的时间有点长就给停了

#!/bin/bash

# ✅ 适用于 WSL/Linux
runfiles_path="/mnt/e/insar_order_test/Stacks/run_files"
log_dir="/mnt/e/insar_order_test/logs"

# 创建日志目录(如果不存在)
mkdir -p "$log_dir"

# 依次执行 run_01 到 run_15,并记录日志
for file in $(ls $runfiles_path/run_??_* 2>/dev/null | grep -v "run_16" | sort); do
    log_file="$log_dir/$(basename "$file").log"
    
    echo "=============================================" | tee -a "$log_file"
    echo "Executing: $file" | tee -a "$log_file"
    echo "======= Contents of $file =======" | tee -a "$log_file"
    cat "$file" 2>/dev/null | tee -a "$log_file"
    echo "=============================================" | tee -a "$log_file"

    # 执行文件,并同时在终端打印和日志保存
    bash "$file" | tee -a "$log_file"

    echo "✅ Execution of $file completed!" | tee -a "$log_file"
done

# ✅ 并行执行 run_16 里面的所有命令
run_16_file="$runfiles_path/run_16"
log_16="$log_dir/run_16.log"

if [ -f "$run_16_file" ]; then
    echo "🔄 开始并行执行 run_16 命令..." | tee -a "$log_16"
    cat "$run_16_file" | tee -a "$log_16" | parallel -j 8 --joblog "$log_dir/parallel_run_16.log" | tee -a "$log_16"
    echo "✅ run_16 命令全部执行完成!" | tee -a "$log_16"
else
    echo "⚠️ 警告:run_16 文件未找到,跳过该步骤!" | tee -a "$log_dir/run_all.log"
fi

echo "✅ 所有任务已按顺序执行完成!" | tee -a "$log_dir/run_all.log"

在这里插入图片描述