ほっとくと好きなように使われるので定期的に警告を行う
今までの経緯から整理整頓が苦手な人たちのために、ユーザー毎にホームディレクトリ(/home/xxxxx)の容量をチェックするshellを作成しました。
定期的にcrontabで実行して、ログファイルをメールで通知する予定です。
業務的な都合上以下の処理を追加しています。
- GROUPIDを100に制限しています。
- 100MB以下は表示しません。
- /usr/local/bin/username.shでpasswdファイルのコメントを付け込んでいます。
homedir_chk.sh
set -eu
logdir=/logs/
shname=`basename $0 ".sh"`
alert_size=100000 #閾値(KB単位) 10000=100MB
# ユーザーの一覧を取得する(GROUPID=100のみ)
userlst=(`grep :100: /etc/passwd|awk 'BEGIN { FS = ":" } /home/ {print $1}'`)
for userid in ${userlst[@]}; do
du -sk /home/$userid |\
awk -v "par=${alert_size}" '/home/ {if ($1 > par) {printf "%10s %9.2f MB\n",$2,$1/1024}}' |\
/usr/local/bin/username.sh >> ${logdir}${shname}.log
done
exit $?
username.sh
read_line=`cat -`
computer=`hostname`
hiduke=`date +"%Y%m%d_%H%M%S"`
# 入力データ(標準入力)が空のときexitする。
### if test -z ${read_line} ; then
if [[ -z ${read_line} ]] ; then
exit 0
fi
# ユーザー名を取得する(/etc/passwd)
usernm=`echo ${read_line} |\
cut -b 7-13 |\
xargs -I{} grep {} /etc/passwd|awk 'BEGIN{FS=":"}{print $5"("$1")"}'`
echo -e "${computer} : ${hiduke} : 各自 ホームディレクトリを整理してください。 ${read_line} : ${usernm}"
exit $?
ログの出方はこんな感じです。
[i999999@HOSTNAME ~]$ cat homedir_chk.log
HOSTNAME : 20181010_182122 : 各自 ホームディレクトリを整理してください。 /home/i123456 184.02 MB : Yamada Taro/Qiita(i123456)