在系統建立新使用者時傳送郵件的 Bash 指令碼
作者:
Magesh Maruthamuthu
譯者:
LCTT geekpi
| 2019-08-07 23:28
目前市場上有許多開源監測工具可用於監控 Linux 系統的效能。當系統到達指定的閾值時,它將傳送郵件提醒。
它會監控 CPU 利用率、記憶體利用率、交換記憶體利用率、磁碟空間利用率等所有內容。但我不認為它們可以選擇監控新使用者建立活動,併傳送提醒。
如果沒有,這並不重要,因為我們可以編寫自己的 bash 指令碼來實現這一點。
我們過去寫了許多有用的 shell 指令碼。如果要檢視它們,請點選以下連結。
這個指令碼做了什麼?它監測 /var/log/secure
檔案,並在系統建立新帳戶時提醒管理員。
我們不會經常執行此指令碼,因為建立使用者不經常發生。但是,我打算一天執行一次這個指令碼。因此,我們可以獲得有關使用者建立的綜合報告。
如果在昨天的 /var/log/secure
中找到了 “useradd” 字串,那麼該指令碼將向指定的郵箱傳送郵件提醒,其中包含了新使用者的詳細資訊。
注意:你需要更改郵箱而不是使用我們的郵箱。
# vi /opt/scripts/new-user.sh
#!/bin/bash
#Set the variable which equal to zero
prev_count=0
count=$(grep -i "`date --date='yesterday' '+%b %e'`" /var/log/secure | egrep -wi 'useradd' | wc -l)
if [ "$prev_count" -lt "$count" ] ; then
# Send a mail to given email id when errors found in log
SUBJECT="ATTENTION: New User Account is created on server : `date --date='yesterday' '+%b %e'`"
# This is a temp file, which is created to store the email message.
MESSAGE="/tmp/new-user-logs.txt"
TO="2daygeek@gmail.com"
echo "Hostname: `hostname`" >> $MESSAGE
echo -e "\n" >> $MESSAGE
echo "The New User Details are below." >> $MESSAGE
echo "+------------------------------+" >> $MESSAGE
grep -i "`date --date='yesterday' '+%b %e'`" /var/log/secure | egrep -wi 'useradd' | grep -v 'failed adding'| awk '{print $4,$8}' | uniq | sed 's/,/ /' >> $MESSAGE
echo "+------------------------------+" >> $MESSAGE
mail -s "$SUBJECT" "$TO" < $MESSAGE
rm $MESSAGE
fi
給 new-user.sh
新增可執行許可權。
$ chmod +x /opt/scripts/new-user.sh
最後新增一個 cron 任務來自動化執行它。它會在每天 7 點執行。
# crontab -e
0 7 * * * /bin/bash /opt/scripts/new-user.sh
注意:你將在每天 7 點收到一封郵件提醒,但這是昨天的日誌。
你將會看到類似下面的郵件提醒。
# cat /tmp/logs.txt
Hostname: 2g.server10.com
The New User Details are below.
+------------------------------+
2g.server10.com name=magesh
2g.server10.com name=daygeek
+------------------------------+
via: https://www.2daygeek.com/linux-bash-script-to-monitor-user-creation-send-email/
作者:Magesh Maruthamuthu 選題:lujun9972 譯者:geekpi 校對:wxy
相關文章
- 教你如何用 Bash 指令碼傳送新使用者建立的郵件指令碼
- Linux配置msmtp+mutt傳送郵件(可放在指令碼中定時傳送郵件)Linux指令碼
- iOS12系統應用傳送普通郵件構建郵件iOS
- 使用 Bash 指令碼傳送包含幾天內到期的使用者賬號列表的電子郵件指令碼
- Shell指令碼中傳送html郵件的方法指令碼HTML
- 【主機】傳送郵件指令碼的改進指令碼
- rman備份指令碼 傳送郵件通知指令碼
- 郵件傳送時的亂碼問題
- 定時傳送郵件
- node 定時傳送郵件
- 註冊時,給使用者郵箱傳送啟用連結(java 傳送郵件)Java
- 郵件的傳送
- 收到263定時傳送郵件的傳送提醒
- 郵件傳送庫原始碼原始碼
- 為什麼郵件系統不能用來大量傳送郵件
- Laravel 傳送純文字郵件時提示亂碼Laravel
- 郵件傳送
- 傳送郵件
- 谷歌郵箱,配置傳送郵件密碼谷歌密碼
- Ubuntu的郵件傳送Ubuntu
- laravel 傳送郵件修改密碼Laravel密碼
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- Laravel 傳送郵件Laravel
- PHP傳送郵件PHP
- Django——郵件傳送Django
- java郵件傳送Java
- Laravel傳送郵件Laravel
- gmail傳送郵件AI
- Oracle郵件傳送Oracle
- java傳送郵件Java
- Powershell郵件傳送
- thinkphp 郵件傳送PHP
- centos 傳送郵件CentOS
- phpcms傳送郵件PHP
- 網站建設之郵件傳送形式網站
- 企業郵箱在傳送郵件時失敗的原因是什麼
- 如何傳送電子郵件到別人郵箱?電子郵件傳送的方法