「最後」コマンドの毎週の出力をメールで送信するようにCronを設定する

「最後」コマンドの毎週の出力をメールで送信するようにCronを設定する

毎週日曜日の午後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

おすすめ記事