Pokud chcete jen shrnout výstup squeue
, co třeba:
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]
}
}'
což dává něco jako:
R (Running) 1
PD (Pending) 4
Vysvětlení:
job state
předpokládá se, že je v 5. poli podle výchozího formátusqueue
.- Potom skript spočítá výskyt každého kódu stavu úlohy kromě 1. řádku, který obsahuje záhlaví.
- Nakonec nahlásí počet jednotlivých kódů stavu úlohy.
Aby to bylo praktické, přidejte do .bash_aliases
následující řádky nebo .bashrc
(název souboru může záviset na systému):
function summary() {
squeue "[email protected]" | 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]
}
}'
}
Poté můžete příkaz vyvolat pouze pomocí summary [option]
, kde [option]
přijímá možnosti na squeue
v případě potřeby (většinou zbytečné).
Doufám, že to pomůže.
"Rychlý příkaz" bych si vyložil jinak. Navíc bych přidal -r pro případy, kdy používáte pole úloh:
squeue -u <username> -h -t pending,running -r | wc -l
volba -h odstraní hlavičku "wc -l" (počet slov) počítá řádek výstupu. Nakonec ji používám s hodinkami
watch 'squeue -u <username> -h -t pending,running -r | wc -l'
Proč Slack vrací chybu Segmentace po upgradu Fedory 29?
Referenční sestavení pro framework .NETFramework,Version=v4.7.1 nebyla nalezena