2016-02-27 91 views
2

默認情況下,從提交的作業到轉矩隊列的輸出將被保存到名爲job_name.o658392的文件中。使用該示例,我想要做的是將輸出文件命名爲658392.job_name.log轉矩PBS:指定標準輸出文件名作爲作業標識號

我知道我可以通過在腳本的頂部寫入#PBS -e filename行來指定輸出文件的名稱,甚至可以在文件名中使用變量,例如$PBS_JOBID。 問題是,$PBS_JOBID不只是數字 - 而是它看起來像658392.some.very.long.host.name

我試過使用${PBS_JOBID/.*},它應該只涉及數字,但問題是我得到一個錯誤這樣做。它的內容如下:Failed to expand destination path in data staging: /path/to/output/${PBS_JOBID/.*}.log

您是否知道如何以有效的方式指定輸出文件名?

回答

2

如果你是管理員,你可以得到這僅僅是個數字工作。通過設置

qmgr -c 'set server display_job_server_suffix = false' 

當然,如果你改變這個設置要做到這一點,當你沒有工作排隊。

如果你是一個普通的用戶 - 我沒有測試過這個 - 但我相信如果你添加一個變量到作業的環境中,你可以在作業的輸出文件中使用該變量。如果你想,你可以創建一個名爲numeric_jobid的變量並將其添加到作業的環境中,然後在作業的輸出文件中使用它。我相信你可以在job_script以下行:

#PBS -j oe 
#PBS -o $numeric_jobid 

然後

jobid=`qsub job_script` 
numeric_id=`get just the numeric id from $jobid` 
qalter $jobid -v numeric_id=$numeric_id 

編輯:您可以保存此步:

qalter -o $numeric_id.log $jobid 

而且我相信會允許你這樣做。

+0

我在我的提交腳本中添加了類似的語句(我發現'qalter'可以直接設置-o和-e)。謝謝! – jonaslb