11Jul

Hogyan lehet automatikusan létrehozni és elküldeni a számítógépes statisztikákat?

click fraud protection

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):

instagram viewer

# 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.

[email protected]

# 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.

[email protected]

# 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" [email protected]

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" [email protected]

# 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 [email protected] -t [email protected] -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é[email protected] -t [email protected] -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.