Você não pode, pelo menos não do jeito que você quer fazer. Aqueles #SBATCH
lines são comentários shell que por acaso são interpretados pelo comando sbatch
, você não pode executar código shell neles.
Além disso, a opção sbatch
-o
compreende apenas um conjunto muito limitado de símbolos de substituição (veja as extrações de página man abaixo).
Provavelmente, o mais próximo que você pode chegar do que deseja é executar sbatch
em um script de wrapper que acrescenta o ID do trabalho, o Nome do trabalho e a data atual & tempo em um arquivo de texto (por exemplo, timestamp<TAB>jobid<TAB>jobname
) e, em seguida, use esse após a conclusão da execução do trabalho para renomear o arquivo de saída.
tempo_t ou segundos desde a época, ou seja, date +%s
, é o formato de data / hora mais útil em um script. Ele pode ser facilmente impresso de qualquer maneira, sem a necessidade de analisá-lo primeiro.
Não seria difícil escrever um script que fosse iterado por esse arquivo de texto e renomeado os arquivos de saída para cada jobid que não estivesse mais em execução (verifique com squeue -t BF,CA,CD,F,NF,PR,TO
) E ainda não tivesse sido renomeado.
FYI, a página man de sbatch
diz:
-o, --output=
Instruct Slurm to connect the batch script's standard output directly to the file name specified in the "filename pattern". By default both standard output and standard error are directed to the same file. For job arrays, the default file name is
slurm-%A_%a.out
,%A
is replaced by the job ID and%a
with the array index. For other jobs, the default file name isslurm-%j.out
, where the%j
is replaced by the job ID. See the--input option
for filename specification options.
E, para -i
, diz:
-i, --input=
Instruct Slurm to connect the batch script's standard input directly to the file name specified in the "filename pattern". By default,
/dev/null
is open on the batch script's standard input and both standard output and standard error are directed to a file of the nameslurm-%j.out
, where the%j
is replaced with the job allocation number, as described below.The filename pattern may contain one or more replacement symbols, which are a percent sign
%
followed by a letter (e.g.%j
).Supported replacement symbols are:
%A Job array's master job allocation number. %a Job array ID (index) number. %j Job allocation number. %N Node name. Only one file is created, so %N will be replaced by the name of the first node in the job, which is the one that runs the script. %u User name.