If-Koubou

Miten luodaan automaattisesti ja sähköpostitilastotilastot

Miten luodaan automaattisesti ja sähköpostitilastotilastot (Miten)

On tärkeää tarkistaa päivittäin erilaisia ​​lokitietoja ja tilastoja palvelimellasi, mutta se kasvaa ikävältä. Eikö olisi mukavaa, että saisit yhden päivän sähköpostin kaikkiin kohokohtaisiisi, joten sinun ei tarvitse edes palvella etsiä ongelmia? Tässä oppaassa kuvataan automaattisten sähköpostiviestien määrittäminen Linuxissa ja Windowsissa.

Erityisesti katamme tämän Ubuntun ja Windows 8.1: n kanssa, ja Gmailia käytetään sähköpostipalvelimena, josta postia lähetetään. Jos sinulla on toinen versio Linuxista tai Windowsista tai haluat käyttää jotain muuta sähköpostipalvelua, ohjeet pitäisi helposti mukauttaa.

Automaattiset sähköpostit Linuxissa

Käytämme kahta eri pakettia tämän, ssmtp: n ja postitilojen toteuttamiseen. Asenna molemmat seuraavalla komennolla:

$ sudo apt-get asentaa ssmtp mailutils

Kun ne on asennettu, meidän on tehtävä joitain muutoksia SSMTP-määritystiedostoon:

$ sudo vi /etc/ssmtp/ssmtp.conf

Muokkaa tiedostoa näillä muutoksilla (voit vain poistaa kaikki tiedoston tekstin ja kopioida tai liittää nämä asetukset, jos haluat):

# Tämä osoite vastaanottaa sähköpostit, joten anna oma sähköposti täällä, jos haluat vastaanottaa ne.

[email protected]

# Määritä sähköpostipalvelin täällä (jätä niin, jos käytät Gmailia).

mailhub = smtp.gmail.com: 587

# Verkkotunnus, josta posti tulee.

rewriteDomain = gmail.com

# Sähköpostiosoite, josta nämä sähköpostit pitäisi olla.

[email protected]

# SSL / TLS-asetukset, joita tarvitaan Gmailille ja useimmille muille sähköpostipalvelimille.

UseTLS = Kyllä

UseSTARTTLS = Kyllä

# Gmail-tilisi käyttäjätunnus ja salasana.

AUTHUSER = käyttäjätunnus

AuthPass = salasana

# Salli kyky määrittää a eri osoitteesta kuin yllä.

FromLineOverride = yes

Kun olet valmis muokkaamaan tiedostoa, sinun on muutettava käyttöoikeudet, koska Gmail-salasanasi on tallennettu tekstimuodossa.

$ sudo chmod 640 /etc/ssmtp/ssmtp.conf

$ sudo chown username.username /etc/ssmtp/ssmtp.conf

Se on aina turvallisempaa juurtua tiedoston omistajalle, mutta meidän pitäisi käyttää sudo-komentoa käsikirjassamme ja se herättäisi meille salasanan, mikä voitti tämän koko prosessin automatisoinnin.

Jos käytät jaettua palvelinta ja olet huolissasi siitä, että salasanasi on kirjoitettu tekstimuodossa ja luettavissa, voit luoda Gmail-tilin tai käyttää sähköpostipalvelinta, joka ei vaadi minkäänlaista todentamista.

Varmista, että kaikki on määritetty oikein, kokeile testiesähköpostia:

$ echo "Testing" | mail -s "Testaa sähköpostiasetukset" [email protected]

"Testaus" tulee olemaan sähköpostin ruudussa ja aiheena on "Sähköpostin määrittäminen". Tarkista sähköpostisi ja varmista, että olet saanut sen.

Sähköpostien komentosarjan kirjoittaminen

Nyt kun pystymme lähettämään sähköpostiviestejä komentoriviltä, ​​kirjoitamme komentosarjan, joka lähettää meille joitain perustietoja järjestelmästämme.

#! / Bin / bash

# Tarkista kiintolevytila

echo "Kiintolevytila:"> /home/geek/email.txt

df -h >> /home/geek/email.txt

# Luettelo käyttäjistä, jotka ovat kirjautuneet sisään

echo "Käyttäjät, jotka ovat kirjautuneet sisään:" >> /home/geek/email.txt

jotka >> /home/geek/email.txt

# Luettelo käynnissä olevista prosesseista

echo "Käynnissä olevat prosessit:" >> /home/geek/email.txt

ps -e >> /home/geek/email.txt

# Lähetä sähköpostia

cat /home/geek/email.txt | sähköposti -s "Päivittäiset palvelimen tiedot" [email protected]

# Poista luotu tiedosto

rm /home/geek/email.txt

Tietenkin voit saada paljon enemmän syvällistä käsikirjoitustasi ja jopa tehdä muotoilusta hieman mukavampaa, mutta tämä on mitä tuotos näyttää sähköpostissamme:

Nyt kun komentosarja on kirjoitettu ja testattu, voimme käyttää cronia automaattisesti suorittamaan sen samaan aikaan joka päivä. Tässä esimerkissä määritämme lähetettävän sähköpostiviestin joka aamu kello 2.00, joten voimme käydä läpi tiedot myöhemmin.

$ crontab -e

2:00 sähköpostiisi lisää:

0 2 * * * /home/geek/script.sh

Olemme kirjoittaneet koko artikkelin crontab-tiedostoista, jos tarvitset lisäapua tämän osan kanssa.

Automaattiset sähköpostit Windowsissa

Sähköpostiviestien lähettäminen komentorivillä on mahdollista PowerShellin kautta, mutta olemme havainneet, että tämän toiminnon toteuttaminen on paljon helpompaa kolmannen osapuolen sovellusten kanssa, varsinkin kun käytät Gmailia. SendEmail on ilmainen Windows-käyttöjärjestelmä, joka tekee integroinnista Windows Task Scheduler -ohjelmaan ja Gmailiin. Napsauta yllä olevaa linkkiä ladataksesi uusimman kopion ja varmista, että tartut TLS-tukeen.

Kun olet ladannut SendEmailin, poista zip-tiedosto ja aseta sisältö johonkin, jotta voit tallentaa ne niin kauan kuin aiot lähettää automaattisia sähköpostiviestejä. Tässä esimerkissä aiomme vain tallentaa ohjelman C: \ SendEmailiin

Testataan SendEmail, jotta saat nopeasti tuntumaan siitä, miten se toimii. Avaa komentokehote kirjoittamalla cmd Käynnistä tai Suorita (Ctrl + R) -valikkoon.

Kun komentokehote on auki, käytä muutoshakemiston komentoa siirtymään kohtaan, johon olet tallentanut SendEmail-tiedostoja.

cd C: \ SendEmail

Nyt voimme lähettää testisähköpostin lähettämällä seuraavan komennon:

sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu käyttäjätunnus -xp salasana -u "Test email subject" -m "Tämä on testisähköposti."

Vaihda "käyttäjätunnuksesi" ja "salasana" tilisi käyttöoikeustiedostoilla ennen komennon suorittamista.

Tässä on yllä mainittu komento:

lähettää sähköpostia suorittaa ohjelman.

-f - osoitteesta

-t - osoitteeseen

-S - SMTP-palvelin

-xu - tilin käyttäjätunnus

-xp - tilin salasana

-u - sähköpostin aihe

-m - sähköpostikuvan teksti

Tarkista postilaatikon, että saat testisähköpostin ja siirrymme kirjoittamaan komentosarja, joka lähettää meille palvelintietoja.

Sähköpostien komentosarjan kirjoittaminen

Jotta voimme hyödyntää parhaiten käsikirjoitamme, kirjoitamme sen PowerShellille. Avaa Windows PowerShell ISE kirjoittamalla powershell_ise.exe Run-kehotteeseen (Ctrl + R).

PowerShell ISE -ikkunan oikealla puolella voit luetella kaikki komennot, jotka PowerShell pystyy suorittamaan. Tämän pitäisi antaa sinulle hyvä alku tuottaa tietotyypit tarvitset raportoitu. Komentosarjassa voit myös soittaa kolmansien osapuolten ohjelmiin tietojen tuottamiseksi (eli SendEmail on kolmannen osapuolen sovellus, mutta PowerShell ja cmd voivat käyttää sitä tehtävien suorittamiseen, joita he eivät tavallisesti pysty).

Esimerkkikirjassamme tarkistamme C-aseman nykyisen levyn käytön, näytämme käynnissä olevat prosessit ja näytämme kaikki tiedostot, jotka jakautuvat parhaillaan verkon kautta.

# Tarkista kiintolevytila

echo "C: Aseman käyttö:"> C: \ SendEmail \ info.txt

Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Valitse -objektien koko, FreeSpace >> C: \ SendEmail \ info.txt

# Luettelo käynnissä olevista prosesseista

echo "Käynnissä olevat prosessit:" >> C: \ SendEmail \ info.txt

get-prosessi >> C: \ SendEmail \ info.txt

# Luettelo tiedostoista / kansioista, jotka ovat parhaillaan jaettuja

echo "SMB-osakkeet:" >> C: \ SendEmail \ info.txt

get-smbshare >> C: \ SendEmail \ info.txt

# Lähetä sähköpostia

kirjoita C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu käyttäjätunnus -xp salasana -u "Daily server info"

# Poista tiedosto, jonka olemme tehneet

rm C: \ SendEmail \ info.txt

Tässä kirjoitusohjelmassa kerätään erilaisia ​​tietoja C: \ SendEmail \ info.txt: lle ja sitten kyseisessä asiakirjassa oleva teksti lähetetään meille sähköpostitse, ennen kuin se poistetaan. Tallenna skripti ps1-tiedostopääteellä (PowerShell-tiedosto).

Kun käsikirjoitus on valmis, suorita nopea testi Run-kehotteesta varmistaaksesi, että se toimii oikein.

Käytä vain PowerShell komento a -tiedosto argumentti ja määritä polku komentosarjalle.

powerhell-tiedosto "c: \ SendEmail \ daily-email.ps1"

Tarkista postilaatikostasi, että olet saanut sähköpostiviestin - jos ei, katso käsikirjoituksesi syntaksivirheiden yli. Seuraavassa on esimerkki siitä, mitä esimerkkikirjassamme syntynyt sähköposti näyttää:

Voit pelata muotoilua (kuten tekstiä sisältävien tyhjien viivojen toistoa), jotta se voi näkyä laitteeseesi paremmin tai paremmin, mutta voit käyttää kolmannen osapuolen ohjelmaa, joka tuottaa tarvittavat tiedot luettavammassa muodossa kuin Windows tekee ( komentotiedosto on edelleen sama).

Kun olet selvittänyt komentojasi kynsit, voit automatisoida Windows Task Scheduler -ohjelman. Avaa Windows Task Scheduler Käynnistä-valikosta.

Kun Task Scheduler on auki, valitse Toimi> Luo perustoiminto.

Nimeä tämä tehtävä jotain "Daily email script" ja napsauta seuraavaksi. Valitse seuraavalla näytöllä, kuinka usein sähköpostiosoitekirjasi toimii, todennäköisesti päivittäin. Valitse sitten aika, jonka haluat käsikirjoituksen toimivan, ja napsauta seuraavaksi.

Nyt sinun pitäisi olla ohjatun toiminnon "Toimi" -osassa, valitse "Käynnistä ohjelma" ja kirjoita sama teksti, jonka kirjoitimme komentojonon testin aikaisempiin Run-kehotteeseen.

Paina seuraavaksi ja paina sitten Kyllä tässä ikkunassa:

Napsauta Lopeta viimeisessä valikossa ja olet valmis aikatauluttamaan automaattiset sähköpostiviestit.