ホームディレクトリ容量の多いユーザーを調べる
/etc/passwdからユーザー名、UID、ホームディレクトリを切り出し変数にセット。
UIDが500以上かつホームディレクトリがあった場合、duで容量で調べる。
その後ソート、整形、表示する。
#!/usr/bin/sh declare -a username userid userhome username=( $(cut -d":" -f1 /etc/passwd | sed 's/^$/none/') ) userid=($(cut -d":" -f3 /etc/passwd | sed 's/^$/none/')) userhome=($(cut -d":" -f6 /etc/passwd | sed 's/^$/none/')) for (( i=0; i < ${#username[*]}; i++ )); do if [ ${userid[$i]} -ge 500 -a -d ${userhome[$i]} ]; then size_k=$(du -s ${userhome[$i]} | cut -f1) size_m=$(du -s ${userhome[$i]} | cut -f1) echo "$size_k:${username[$i]}:$size_m:${userhome[$i]}" \ >> $$sizelist fi done #exec >> $$results echo -e "Date'\t' $(date)" echo -d "HostName'\t' $(hostname)" echo sort -t : -k1 -nr $$sizelist | head -n 10 | cut -d":" -f2,3,4 \ | tr ':' '\t' | cat -n # cat /$$results | mail -s "top10" root rm $$*