/ procサブディレクトリの解析は機能します:
bashスクリプトとして:
for PROCESS in /proc/*/; do
swapused=$(awk 'BEGIN { total = 0 } /^Swap:[[:blank:]]*[1-9]/ { total = total + $2 } END { print total }' ${PROCESS}/smaps 2>/dev/null || echo 0)
if [ $swapused -gt 0 ]; then
/bin/echo -e "${swapused}k\t$(cat ${PROCESS}/cmdline)"
fi
done
出力はパイプでソートすることにより、Hi-Loでソートできます。
{blah}| sort -rn
もちろん、好きな週の言語でこれを好きなように書き直してください。私のawk-fuは強くありません。
(カットアンドパス可能な)
#!/bin/bash
#
# show swap used by processes
#
(for PROCESS in /proc/*/; do
swapused=$(awk 'BEGIN { total = 0 } /^Swap:[[:blank:]]*[1-9]/ { total = total + $2 } END { print total }' ${PROCESS}/smaps 2>/dev/null || echo 0)
if [ $swapused -gt 0 ]; then
/bin/echo -e "${swapused}k\t$(cat ${PROCESS}/cmdline)"
fi
done ) | sort -nr