简单地说,调用命令squeue -u <username>
将列出给定用户的所有待处理或 Activity 的作业。我想知道是否有一种快速的方法来汇总所有这些,以便我知道有多少出色的工作,包括待处理和积极运行的工作。谢谢!
最佳答案
如果您只想总结squeue
的输出,该如何做:
squeue -u <username> | awk '
BEGIN {
abbrev["R"]="(Running)"
abbrev["PD"]="(Pending)"
abbrev["CG"]="(Completing)"
abbrev["F"]="(Failed)"
}
NR>1 {a[$5]++}
END {
for (i in a) {
printf "%-2s %-12s %d\n", i, abbrev[i], a[i]
}
}'
产生类似:
R (Running) 1
PD (Pending) 4
说明:
job state
的默认格式,假定squeue
在第5个字段中。 为了方便起见,请将以下行添加到
.bash_aliases
或.bashrc
(文件名可能取决于系统):function summary() {
squeue "$@" | awk '
BEGIN {
abbrev["R"]="(Running)"
abbrev["PD"]="(Pending)"
abbrev["CG"]="(Completing)"
abbrev["F"]="(Failed)"
}
NR>1 {a[$5]++}
END {
for (i in a) {
printf "%-2s %-12s %d\n", i, abbrev[i], a[i]
}
}'
}
然后,您可以仅使用
summary [option]
调用命令,其中必要时[option]
接受squeue
的选项(大多数情况下没有必要)。希望这可以帮助。