每天檢查伺服器上的各種日誌資料和統計資訊是很重要的,但是這會變得很乏味。如果每天收到一封包含所有精彩內容的電子郵件,那麼你甚至不需要上伺服器檢查問題,這不是很好嗎?本指南將向您展示如何在Linux和Windows上配置自動電子郵件。
我們將專門為Ubuntu和Windows8.1介紹這一點,Gmail將用作傳送郵件的電子郵件伺服器。如果您有其他版本的Linux或Windows,或者更喜歡使用其他電子郵件服務,這裡的說明應該很容易適應。
我們將使用兩個不同的軟體包s**tp和mailutils來完成此任務,因此請使用以下命令安裝這兩個軟體包:
$ sudo apt-get install s**tp mailutils
一旦安裝了這些,我們需要對SSMTP配置檔案進行一些更改:
$ sudo vi /etc/s**tp/s**tp.conf
使用這些更改編輯檔案(如果願意,可以刪除檔案中的所有文字並複製/貼上這些設定):
# This address will receive the emails, so enter your own email here if you want to receive them.
# Specify the email server here (leave as is if you’re using Gmail).
mailhub=**tp.gmail.com:587
# The domain name that the mail will come from.
rewriteDomain=gmail.com
# The email address that these emails should be from.
# SSL/TLS settings, required for Gmail and most other mail servers.
UseTLS=Yes
UseSTARTTLS=Yes
# The username and password to your Gmail account.
AuthUser=username
AuthPass=password
# Allow the ability to specify a from address different than the one above.
FromLineOverride=yes
當你編輯完檔案後,你會想更改許可權,因為你的Gmail密碼是明文儲存的。
$ sudo chmod 640 /etc/s**tp/s**tp.conf
$ sudo chown username.username /etc/s**tp/s**tp.conf
讓root成為檔案的所有者總是更安全的,但是我們必須在指令碼中使用sudo命令,它會提示我們輸入密碼,從而使整個過程自動化。
如果您使用的是共享伺服器,並且擔心您的密碼以明文形式儲存且可由root讀取,請建立一個一次性的Gmail帳戶或使用一個不需要任何型別的身份驗證的電子郵件伺服器。
為了確保所有配置都正確,讓我們試試測試電子郵件:
$ echo "Testing" | mail -s "Testing mail setup" [email protected]
“測試”將出現在郵件正文中,主題是“測試郵件設定”。檢查您的電子郵件,確保您收到了它。
現在我們可以從命令列傳送電子郵件了,讓我們編寫一個指令碼,向我們傳送一些有關係統的基本資訊。
#!/bin/bash
# Check hard drive space
echo "Hard drive space:" > /home/geek/email.txt
df -h >> /home/geek/email.txt
# List the users that are logged in
echo "Users currently logged in:" >> /home/geek/email.txt
who >> /home/geek/email.txt
# List currently running processes
echo "Running processes:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Send the email
cat /home/geek/email.txt | mail -s "Daily server information" [email protected]
# Delete the file we created
rm /home/geek/email.txt
顯然,您可以更深入地瞭解您的指令碼,甚至可以將格式設定得更好一些,但我們的電子郵件中的輸出是這樣的:
現在指令碼已經編寫和測試,我們可以使用cron在每天的同一時間自動執行它。在本例中,我們將電子郵件配置為每天凌晨2:00傳送,以便我們可以在當天晚些時候檢視資料。
$ crontab -e
對於凌晨2:00的電子郵件,請新增:
0 2 * * * /home/geek/script.sh
我們已經寫了一整篇關於crontab檔案的文章,如果您在這部分需要更多幫助的話。
透過PowerShell可以在命令列傳送電子郵件,但我們發現,使用第三方應用程式實現此功能要容易得多,尤其是在使用Gmail時。sendmail是一個免費的Windows程式,可以輕鬆地與Windows任務排程器和Gmail整合。單擊上面的連結以下載最新的副本,並確保獲取TLS支援的版本。
一旦你下載了sendmail,提取zip檔案並把內容放在某個地方,你可以儲存它們,只要你打算自動傳送電子郵件。在本例中,我們只將程式儲存在C:\sendmail中
讓我們測試一下sendmail,快速瞭解它的工作原理。在“開始”或“執行”(Ctrl+R)選單中鍵入cmd,開啟命令提示符。
在命令提示符開啟的情況下,使用change directory命令導航到儲存sendmail檔案的位置。
cd C:\SendEmail
現在,我們可以嘗試使用以下命令傳送測試電子郵件:
sendEmail -f [email protected] -t [email protected] -s **tp.gmail.com:587 -xu username -xp password -u "Test email subject" -m "This is a test email."
顯然,在執行命令之前,用您的帳戶憑據替換“username”和“password”。
上面的命令實際上是這樣做的:
sendEmail執行程式。
-f–發件人地址
-t–收件人地址
-s–SMTP伺服器
-xu–帳戶使用者名稱
-xp–帳戶密碼
-u–電子郵件主題
-m–電子郵件正文文字
檢查您的收件箱,確保您收到了測試電子郵件,然後我們可以繼續編寫指令碼,向我們傳送伺服器資訊。
為了充分利用我們的指令碼,我們將為PowerShell編寫它。鍵入PowerShell開啟Windows PowerShell ISE_ise.exe檔案進入執行提示(Ctrl+R)。
在PowerShell ISE視窗的右側,可以列出PowerShell能夠執行的每個命令。這將為您生成需要報告的資訊型別提供一個良好的開端。在您的指令碼中,您還可以呼叫第三方程式來輸出資訊(即sendmail是第三方應用程式,但PowerShell和cmd可以使用它來完成通常無法完成的任務)。
對於我們的示例指令碼,我們將檢查C驅動器的當前磁碟使用情況,顯示當前正在執行的程序,並顯示當前透過網路共享的所有檔案。
# Check hard drive space
echo "C: Drive Usage:" > C:\SendEmail\info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID='C:'" | Select-Object Size,FreeSpace >> C:\SendEmail\info.txt
# List currently running processes
echo "Running processes:" >> C:\SendEmail\info.txt
get-process >> C:\SendEmail\info.txt
# List the files/folders currently being shared
echo "SMB shares:" >> C:\SendEmail\info.txt
get-**bshare >> C:\SendEmail\info.txt
# Send the email
type C:\SendEmail\info.txt | C:\SendEmail\sendEmail -f [email protected] -t [email protected] -s **tp.gmail.com:587 -xu username -xp password -u "Daily server info"
# Delete the file we made
rm C:\SendEmail\info.txt
在這個指令碼中,各種資訊被輸出到C:\sendmail\資訊.txt,然後該文件中的文字在被刪除之前透過電子郵件傳送給我們。使用ps1副檔名(PowerShell檔案)儲存指令碼。
指令碼完成後,從執行提示符執行一個快速測試,以確保它正常工作。
只需將powershell命令與-file引數一起使用,並指定指令碼的路徑。
powershell -file "c:\SendEmail\daily-email.ps1"
檢查你的收件箱,確保你收到了電子郵件-如果沒有,檢查你的指令碼語法錯誤。下面是從我們的示例指令碼生成的電子郵件的樣子:
您可以隨意使用格式(例如在文字之間回送空行),使其在裝置上顯示得更好,或者更好的是,您可以使用第三方程式,以比Windows更可讀的格式輸出所需的資訊(指令碼過程仍然是相同的)。
一旦解決了指令碼中的問題,就可以使用Windows任務排程器來實現自動化。透過“開始”選單開啟Windows任務計劃程式。
開啟任務計劃程式後,選擇操作>建立基本任務。
將此任務命名為“每日電子郵件指令碼”,然後單擊“下一步”。在下一個螢幕上,選擇您希望電子郵件指令碼執行的頻率,可能是每天。然後,選擇希望指令碼執行的時間,然後單擊next。
現在,您應該在嚮導的“操作”部分,選擇“啟動程式”,並輸入與我們之前在Run提示符中輸入的文字相同的文字來測試指令碼。
在此視窗中單擊“下一步”,然後單擊“是”:
單擊最後一個選單上的Finish,您就完成了自動電子郵件的計劃。
...你不會得到任何有意義的度量,但是你可以看到每個組是如何與其他組相關聯的。值為1表示絕對相關,表示兩個值完全相同。相關值越接近1,相關性越強。 ...
...gle指令碼,並將結果分發給所有人。您將在本文底部看到如何自定義這個新選單項。 ...
如果你需要傳輸大檔案,你可以上傳到一個雲帳戶,透過本地網路共享,或者你可以把檔案傳輸到一個USB驅動器,然後和朋友或同事共享。 ...
...是的,它適用於所有系統,無論您是否有MSI圖形卡。這是如何設定它的! 你需要什麼 MSI加力主要是一個超頻工具擠壓出更多的效能,你的圖形卡。但它也可以與Guru3D.com上的RivaTuner統計伺服器協同工作,在玩遊戲時顯示實時效...
...Chromebook有一個隱藏的效能儀表板,您可能不知道。這是如何找到它的。 相關:如何顯示Windows10隱藏的浮動效能面板 效能監控通常與高階Windows機器相關,但是沒有理由不對Chromebook上的這些統計資料感興趣。這很容易做到。 在Chr...
使用bmonlinux應用程式,您可以看到網路連線上的頻寬使用情況。然而,瞭解更精細的細節需要一些偵探工作,所以我們為您做了! bmon的工作原理 顯示各種網路介面上的活動的動態圖和實時統計資料可以讓您對網路的效能和頻...
...動態配置IP地址、網路介面和路由規則。我們將向您展示如何使用這個經典(現在已棄用)ifconfig的現代替代品。 ip命令的工作原理 使用ip命令,可以調整Linux計算機處理ip地址、網路介面控制器(nic)和路由規則的方式。更改...
googledrive仍然沒有正式的Linux客戶端,但是您可以直接從命令列使用rclone實用程式備份到googledrive。我們教你怎麼做。 linux上的google drive在哪裡? 儘管2012年承諾Linux支援“很快就會到來”,但沒有跡象表明Google會為GoogleDrive生產...
...崩潰報告。 使用統計資料(也稱為“遙測”)包括有關如何使用應用程式的資訊,包括與哪些按鈕和選單互動以及使用它們的頻率。對於像Firefox或Chrome這樣的web瀏覽器,資料將包括關於您打開了多少個選項卡、您的瀏覽器使用...