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