【问题标题】:Redirect output to different files for sun grid engine array jobs (SGE)将输出重定向到 Sun Grid Engine 阵列作业 (SGE) 的不同文件
【发布时间】:2013-02-26 12:37:10
【问题描述】:

我正在尝试执行 sun Grid Engine 阵列作业,并且每个任务需要不同的输出文件:test.1.out test.2.out 等。

如果我这样写我的脚本:

#!/bin/bash
#$ -S /bin/bash
#$ -N name
#$ -t 1-4000
#$ -o /home/myuser/out/test.$TASK_ID.out
#$ -e /home/myuser/err/test.$TASK_ID.err
#$ -cwd
#$ -V
<bash commands here>

文件名为 $TASK_ID.out(1.out、2.out 等),位于 /home/myuser/

如果我这样写我的脚本:

#!/bin/bash
#$ -S /bin/bash
#$ -N name
#$ -t 1-4000
#$ -o /home/myuser/out/
#$ -e /home/myuser/err/
#$ -cwd
#$ -V
<bash commands here>

文件位于正确的文件夹中,但显然使用默认名称:name.o$JOB_ID.$TASK_ID

我该怎么办?

【问题讨论】:

    标签: grid stdout sun sungridengine


    【解决方案1】:

    如果实时编写专门命名的输出文件很重要,您可以绕过 SGE 的内置输出集合并调用 bash 命令,例如

    $command 1>>/home/myuser/out/test.$SGE_TASK_ID.out 2>>/home/myuser/err/test.$SGE_TASK_ID.err
    

    捕获标准输出和标准错误。

    这两个示例似乎都非常接近您想要的 - 有什么理由不在事后简单地移动/重命名输出文件?

    【讨论】:

      【解决方案2】:

      试试这样的:

      #!/bin/bash
      #$ -S /bin/bash
      #$ -N name
      #$ -t 1-4000
      #$ -o /dev/null
      #$ -e /dev/null
      #$ -cwd
      #$ -V
      exec >/home/myuser/out/test.${SGE_TASK_ID}.out 2>/home/myuser/err/test.${SGE_TASK_ID}.err
      echo whatever
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多