毎週日曜日の午後10時に実行されるように週間レポートをスケジュールする必要があります。このレポートには、サーバーにログインしたすべてのアカウント(ユーザー名とIPアドレス)が表示されます。この出力は電子メールで送信されます。
この目的のために「last」と「mail」コマンドを使用したいと思います。
cronは以下の通りですが、-ㅏ'オプションを選択すると、ログインしたユーザーの完全な情報が一覧表示されます。ところで、先週だけにログインしたユーザーに関する情報を探しています。この目標を達成する方法は?
0 22 * * 0 /usr/bin/last -a | mail -s "SSH Logins Report" -r [email protected]
サーバー情報
オペレーティングシステム:CentOS Linuxバージョン7.5
カーネル: 3.10.0-862.2.3.el7.x86_64
ベストアンサー1
utmpdump
出力に年があるので、このコマンドを使用します。
for weekday in 'monday' 'tuesday' 'wednesday' 'thursday' 'friday' 'saturday' 'sunday' ;
do
/usr/bin/utmpdump /var/log/wtmp | grep "`date --date \"$weekday week ago\" '+%a %b %d\s[^ ]*\s%Y'`"
done 2> /dev/null