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 statepř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 "example@unixlinux.online" | 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