11Jul
Fontos, hogy naponta ellenőrizze a különböző naplóadatokat és statisztikákat a kiszolgálón, de egyre fárasztóbbá válik. Nem lenne jó fogadni egyetlen e-mailt a napi összes kiemeléssel kapcsolatban, így nem kell a kiszolgálón megkeresnie a problémákat? Ez az útmutató megmutatja, hogyan állíthatja be az automatizált e-maileket Linuxon és Windowson.
Az Ubuntu és a Windows 8.1 rendszerrel foglalkozunk, mivel a Gmailt e-mail kiszolgálóként használják, hogy a leveleket elküldjük. Ha van egy másik Linux vagy Windows verziója, vagy inkább egy másik e-mail szolgáltatást szeretne használni, az itt található utasításoknak könnyen alkalmazkodniuk kell.
Automatikus e-mailek Linux alatt
A kétféle csomagot kétféleképpen használhatjuk: ssmtp és mailutils, ezért telepítsd mindkettőt a következő paranccsal:
$ sudo apt-get install ssmtp mailutils
Miután ezeket telepítettük, szükségünk vanhogy módosítsa az SSMTP konfigurációs fájlt:
$ sudo vi /etc/ssmtp/ ssmtp.conf
Szerkesztse a fájlt ezekkel a változtatásokkal( biztonságosan törölheti az összes szöveget a fájlban, és ha szükséges, másolja / illessze be ezeket a beállításokat):
# Ez a cím megkapja az e-maileket, ezért ide írja be saját e-mail címét, ha azokat meg szeretné kapni.
root=username@gmail.com
# Adja meg itt az e-mail szervert( hagyja el az állapotot, ha Gmail-t használ).
mailhub = smtp.gmail.com: 587
# A domain neve, ahonnan a levél származik.
rewriteDomain = gmail.com
# Az e-mail cím e-mail címe.
hostname=username@gmail.com
# SSL / TLS beállítások, amelyek szükségesek a Gmail és a legtöbb más levélkiszolgáló számára.
UseTLS = Igen
UseSTARTTLS = Igen
# A Gmail-fiókod felhasználóneve és jelszava.
AuthUser = felhasználónév
AuthPass = jelszó
# Engedélyezheti, hogy a fentiektől eltérő címet adjon meg.
FromLineOverride = yes
Ha befejezte a fájl szerkesztését, módosítania kell az engedélyeket, mivel a Gmail jelszavát szöveges formában tárolja./etc/ssmtp/ $ sudo chmod 640 /etc/ssmtp/ ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ ssmtp.conf
Mindig biztonságosabb a fájl tulajdonosának gyökeresedése, de a sudo parancsot a szkriptünkben kellene használnikérjen nekünk jelszót, ezáltal lefedve az egész folyamat automatizálását.
Ha megosztott kiszolgálót használ, és aggódik amiatt, hogy a jelszavát szöveges formában tárolja és gyökéren olvashatja, hozzon létre egy eldobható Gmail-fiókot, vagy olyan e-mail szervert használjon, amely nem igényel semmiféle hitelesítést.
Ahhoz, hogy minden rendben legyen beállítva, próbálkozzunk egy tesztüzeneten:
$ echo "Testing" |mail -s "A postai beállítások tesztelése" username@gmail.com
A "Tesztelés" az e-mail testében lesz, és a téma "A postai beállítás ellenőrzése" lesz. Ellenőrizze az e-mail címét, hogy megbizonyosodjon arról, hogy megkapta.
Script írása az e-mailekhez
Most, hogy képesek vagyunk küldeni e-maileket a parancssorból, írjunk egy parancsfájlt, amely elküldi nekünk néhány alapvető információt a rendszerünkről.
#!/bin/ bash
# A merevlemez helyének ellenőrzése
echo "Merevlemez-terület:" & gt;/home/geek/ email.txt
df -h & gt; & gt;/home/geek/ email.txt
# Sorolja fel a bejelentkezett felhasználókat
echo "Jelenleg bejelentkezett felhasználók:" & gt; & gt;/home/geek/ email.txt
, aki & gt; & gt;/home/geek/ email.txt
# A jelenleg futó folyamatok felsorolása
echo "Futási folyamatok:" & gt; & gt;/home/geek/ email.txt
ps -e & gt; & gt;/home/geek/ email.txt
# Küldje el az e-mailt
macska /home/geek/ email.txt |mail -s "Napi kiszolgálói információk" username@gmail.com
# Töröltük a létrehozott fájlt
rm /home/geek/ email.txt
Nyilvánvaló, hogy sokkal részletesebben beszerezheted a szkriptedet, és még a formázást is kicsit szebbé teheted, deez az, amit a kimenet az e-mailünkben néz ki:
Most, hogy a szkriptet megírják és tesztelik, használhatjuk a cron-ot, hogy automatikusan hajtsa végre ugyanabban az időben minden nap. Ebben a példában beállítjuk az e-mailt, amelyet minden reggel 2:00 órakor küldünk, így később az adatokon keresztül továbbhaladhatunk.
$ crontab -e
2:00 AM e-mailekhez adjon hozzá:
0 2 * * * /home/geek/ script.sh
Teljes cikket írtunk a crontab fájlokról, ha további segítségre van szükségünk ezzel a részvel kapcsolatban.
Automatizált e-mailek a Windows
-ben Az e-mailek küldése a parancssorban a PowerShell segítségével lehetséges, de úgy találtuk, hogy a funkciók végrehajtása sokkal könnyebb a harmadik féltől származó alkalmazásoknál, különösen a Gmail használatakor. A SendEmail egy ingyenes Windows program, amely a Windows Task Schedulerrel és a Gmail-szel való integrációt megkönnyíti. A fenti linkre kattintva letöltheti a legújabb példányt, és győződjön meg róla, hogy megragadja a TLS által támogatott verziót.
Ha letöltötte a SendEmail programot, húzza ki a zip fájlt, és tegye a tartalmat valahová, ahol tárolhatja őket, amíg automatizált e-maileket kíván küldeni. Ebben a példában a programot csak a C: \ SendEmail
programban tároljuk. Próbáljuk kipróbálni a SendEmail-t, hogy gyorsan érzékeljük, hogyan működik. Nyissa meg a parancssorból a cmd parancsot a Start vagy a Futtatás( Ctrl + R) menübe.
A parancssor megnyitásakor használja a Change Directory parancsot a SendEmail fájlok tárolására.
cd C: \ SendEmail
Most megpróbálhatjuk elküldeni egy tesztüzenetet a következő paranccsal:
sendEmail -f username@gmail.com -t username@gmail.com -s smtp.gmail.com:587 -xu felhasználónév -xpjelszó -u "Test e-mail tárgy" -m "Ez egy teszt e-mail."
Nyilvánvalóan a parancs végrehajtása előtt cserélje ki a "felhasználónevet" és a "jelszót" a fiók hitelesítő adataival.
A fentiek szerint a fenti parancsok:
sendEmail futtatja a programot.
-f - az
-t címről - az
-s címre -
-xu SMTP-kiszolgáló - account username
-xp - fiókfiók
-u - e-mail tárgy
-m - e-mail szövege
Ellenőrizze a beérkező leveleket,megkaptad a tesztüzeneteket, és továbbléphetsz egy olyan parancsfájl írására, amely kiszolgálóinformációkat küld.
Script írása az e-mailekhez
Ahhoz, hogy a lehető legtöbbet hozhassuk ki a szkriptből, megírjuk a PowerShell-nek. Nyissa meg a Windows PowerShell ISE-t, ha a powershell_ise.exe parancsot egy parancssorba( Ctrl + R) írja be.
A PowerShell ISE ablak jobb oldalán felsorolhat minden olyan parancsot, amelyet a PowerShell képes végrehajtani. Ennek jó kiindulópontot kell kovácsolnia a jelentett információk típusaihoz. A szkriptben harmadik féltől származó programokat is felhívhat az információk kiadására( azaz a SendEmail egy harmadik féltől származó alkalmazás, de a PowerShell és a cmd is használhatják olyan feladatok elvégzésére, amelyeket általában nem tudnak).
A példaszriptünknél megnézzük a C meghajtó aktuális lemezhasználatát, megmutatjuk az éppen futó folyamatokat, és megmutatjuk az összes olyan fájlt, amely jelenleg megosztásra kerül a hálózaton keresztül.
# A merevlemez helyének ellenőrzése
echo "C: Drive Usage:" & gt;C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" |Objektum-méret kiválasztása, FreeSpace & gt; & gt;C: \ SendEmail \ info.txt
# A jelenleg futó folyamatok felsorolása
echo "Futási folyamatok:" & gt; & gt;C: \ SendEmail \ info.txt
get-process & gt; & gt;C: \ SendEmail \ info.txt
# Sorolja fel a jelenleg megosztott fájlokat / mappákat
echo "SMB shares:" & gt; & gt;C: \ SendEmail \ info.txt
get-smbshare & gt; & gt;C: \ SendEmail \ info.txt
# Küldje el az e-mailt
típusú C: \ SendEmail \ info.txt |C: \ SendEmail \ sendEmail -f felhasználónév@gmail.com -t username@gmail.com -s smtp.gmail.com:587 -xu felhasználónév -xp jelszó -u "Napi kiszolgálóinformáció"
# Törölt fájlunk
rm C: \ SendEmail \ info.txt
Ebben a szkriptben különböző információkat küldenek a C: \ SendEmail \ info.txt fájlba, majd a dokumentum szövegét e-mailben küldi el nekünk, mielőtt törölni fog. Mentse el a szkriptet egy PS1 kiterjesztéssel( PowerShell fájl).
A szkript befejezése után futtasson egy gyors tesztet a Run parancsból, hogy megbizonyosodjon róla, hogy megfelelően működik.
Csak használja a powershell parancsot egy -file argumentummal és adja meg a parancsfájl elérési útját.
powerhell -fájl "c: \ SendEmail \ daily-email.ps1"
Ellenőrizze a beérkező leveleket, hogy megbizonyosodjon arról, hogy megkapta az e-mailt - ha nem, nézze át a szkriptet szintaktikai hibákra.Így néz ki a létrehozott e-mail a mi példaszriptünkről:
A formázással( mint például a szöveget tartalmazó üres sorok visszhangjával) játszhatsz, hogy megjelenjen a készülékénél jobb, vagy még jobb, ha olyan harmadik féltől származó programot használsz, amelyadja ki a szükséges információkat egy olvasható formában, mint a Windows( a szkriptfolyamat továbbra is ugyanaz lesz).
Miután kidolgozta a parancsfájlban lévő ütéseket, a Windows Task Scheduler segítségével automatizálhatja azt. Nyissa meg a Windows Task Scheduler programot a Start menüben.
A Feladatütemező megnyitásakor válassza a Művelet & gt;Alapvető feladat létrehozása.
Nevezze el ezt a feladatot valami olyannak, mint a "Daily email script", majd kattintson a következőre. A következő képernyőn válassza ki azt a gyakoriságot, amellyel az e-mailes szkriptet el kívánja futtatni, valószínűleg naponta. Ezután válassza ki azt az időt, ameddig a szkript fut, és nyomja meg a következőt.
Most a varázsló "Akció" részének kell lennie, válassza a "Program indítása" pontot, és írja be ugyanazt a szöveget, amelyet korábban a futás parancsra írtak be, hogy teszteljük a szkriptet.
Nyomja meg a következőt, majd nyomja meg az Igen gombot az ablakban:
Az utolsó menüben kattintson a Befejezés gombra, és befejezte az automatikus e-mailek ütemezését.