Files

30 lines
1.8 KiB
Bash

line() { sed -n "${2}p" "/root/lab-answers/$1" 2>/dev/null | tr -d '[:space:]'; }
# Today's sar -d rows with figures in them.
sar_rows() {
S_TIME_FORMAT=ISO LC_ALL=C sar -d -p 2>/dev/null |
awk '$1 ~ /^[0-9]+:[0-9]+:[0-9]+$/ && !/DEV|RESTART/ && NF >= 8' | wc -l
}
task 1 "Busiest device and process in /root/lab-answers/1"
need "line 1 names the busiest device" '[ "$(line 1 1 | sed "s#^/dev/##")" = loop42 ]'
need "line 2 names the process" '[ "$(sed -n 2p /root/lab-answers/1 | awk "{print \$1}" | sed "s#.*/##")" = reindexd ]'
task 2 "fio figures in /root/lab-answers/2, test file removed"
need "fio is installed" 'command -v fio'
need "line 1 is a throughput such as 188MiB/s" 'line 2 1 | sed "s/^BW=//" | grep -Eq "^[0-9.]+[kKMG]i?B/s$"'
need "line 2 is an IOPS figure such as 48.2k" 'line 2 2 | sed "s/^IOPS=//" | grep -Eq "^[0-9.]+[kKM]?$"'
need "no test file is left in /data" '[ -z "$(find /data -xdev -type f -size +1M)" ]'
task 3 "loop41's scheduler found, then set to mq-deadline"
need "/root/lab-answers/3 names loop41's original scheduler" '[ "$(answer 3 | tr -d "[]")" = "$(state_get scheduler)" ]'
need "loop41 uses mq-deadline now" 'grep -q "\[mq-deadline\]" /sys/block/loop41/queue/scheduler'
task 4 "loop41 keeps mq-deadline after a reboot"
need "a udev rule (or tuned profile) sets the scheduler" '[ -n "$(grep -rlsE "queue/scheduler|elevator" /etc/udev/rules.d /etc/tuned)" ]'
need "loop41 uses mq-deadline" 'grep -q "\[mq-deadline\]" /sys/block/loop41/queue/scheduler'
task 5 "sysstat collecting; sar -d shows today's disk activity"
need "sysstat collection is on (sysstat-collect.timer active)" active sysstat-collect.timer
need "it starts at boot" 'enabled sysstat || enabled sysstat-collect.timer'
need "sar -d -p shows rows for today" '[ "$(sar_rows)" -gt 0 ]'