私はrootで、他のユーザーが利用できるメニューを設定しています。他のユーザーにはこのメニューのみが表示されます。
相互に関連する2つのオプションがあります。最初のオプションは、ユーザーを検索することです。私が取得するコードは次のとおりです。
last | awk '{print $1,$4,$5,$6,$7} '
このコードの確認はうまくいき、ユーザー名と最後にログインした日付が表示されます。
2番目のオプションの場合:日付を設定してから、上記のコマンドの出力を使用して、その日付以降にアクティブでないユーザーを削除したいと思います。
私はLinux MintとVimのテキストエディタを使用しています。
答え1
次のことができます。
root@host#lastlog -b Num_Days_Since_Last_Login | root@host#lastlog -b Num_Days_Since_Last_Login | egrep -v "^username |ログインしていない" | awk '{print $1}' |
ここで、Num_Days_Since_Last_Login は最後のログイン以降の整数日数です。
答え2
完璧なソリューション:
#!/bin/bash
maxdate=$(date -d "$1" +%s) || exit 1
daysdate=$((($(date +%s)-maxdate)/(3600*24)))
LANG=C lastlog -b $daysdate -u 1000- |
awk 'NR>1{print $1}' |
xargs -n1 echo userdel
テストしてecho
forReal™を削除してください。使用例:
./script.sh 'Fri Dec 5 17:00:06 CET 2013'