11Jul
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.
Otamme nimenomaan tämän Ubuntun ja Windows 8.1: n osalta, ja Gmailia käytetään sähköpostipalvelimena, johon 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 suorittamiseen, joten asenna molemmat seuraavalla komennolla:
$ sudo apt-get asenna ssmtp mailutils
Kun nämä asennetaan, tarvitsemmetehdä muutoksia SSMTP-määritystiedostoon:
$ sudo vi /etc/ssmtp/ ssmtp.conf
Muokkaa tiedostoa näillä muutoksilla( voit poistaa kaikki tiedoston tekstin ja kopioida tai liittää nämä asetukset, jos haluat):
# Tämä osoite vastaanottaa sähköpostit, joten kirjoita oma sähköpostiesi, 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öpostiosoitteen, josta nämä sähköpostit pitäisi olla.
# SSL / TLS-asetukset, joita tarvitaan Gmailille ja useimmille muille sähköpostipalvelimille.
UseTLS = Kyllä
KäytäSTARTTLS = Kyllä
# Käyttäjätunnus ja salasana Gmail-tilillesi.
AuthUser = käyttäjätunnus
AuthPass = salasana
# Antaa kyvyn määrittää eri osoitteesta kuin yllä.
FromLineOverride = kyllä
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
On aina turvallisempaa juurtua tiedoston omistaja, mutta meidän pitäisi käyttää sudo-komentoa käsikirjassamme ja sepyydä meitä salasanasta, mikä tukahduttaa tämän koko prosessin automatisoinnin.
Jos käytät jaettua palvelinta ja olet huolissasi siitä, että salasanasi on kirjoitettu tekstimuodossa ja voit lukea sen pääkäyttäjänä, luo oma Gmail-tili tai käytä sähköpostipalvelinta, joka ei vaadi minkäänlaista todentamista.
Varmistaaksesi, että kaikki on määritetty oikein, kokeile testiesähköpostia:
$ echo "Testing" |mail -s "Sähköpostin määrittäminen" [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 voimme lähettää komentosarjan sähköposteja, joten kirjoitamme komentosarjan, joka lähettää meille joitain perustietoja järjestelmästämme.
#!/bin/ bash
# Tarkista kiintolevytila
echo "Kiintolevytila:" & gt;/home/geek/ email.txt
df-h & gt; & gt;/home/geek/ email.txt
# Luettelo käyttäjistä, jotka ovat kirjautuneet sisään
echo "Käyttäjät, jotka ovat kirjautuneet sisään:" & gt; & gt;/home/geek/ email.txt
, kuka & gt; & gt;/home/geek/ email.txt
# Näytä käynnissä olevat prosessit
echo "Käynnissä olevat prosessit:" & gt; & gt;/home/geek/ email.txt
ps -e & gt; & gt;/home/geek/ email.txt
# Lähetä sähköpostia
cat /home/geek/ email.txt |sähköposti -s "Päivittäiset palvelintiedot" [email protected]
# Luomasi tiedosto
rm /home/geek/ email.txt
Voit selata komentojasi perusteellisemmin ja tehdä muotoilusta hieman mukavamman, muttatä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 AM -viestit 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 kolmansien osapuolten sovellusten kanssa, varsinkin Gmailin käytön aikana. 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, purkaa zip-tiedosto ja laita sisältösi johonkin, jotta voit tallentaa ne niin kauan kuin aiot lähettää automaattisia sähköpostiviestejä.Tässä esimerkissä aiomme tallentaa ohjelman C: \ SendEmail
: ssä. 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 yrittää lähettää testisähköpostin seuraavalla komennolla:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xpsalasana -u "Testaa sähköpostin aihe" -m "Tämä on testisähköposti."
Korvaa käyttäjätunnukset ja salasanat tilisi tunnuksilla ennen komentojonon suorittamista.
Tässä yllä mainittu komento:
sendEmail suorittaa ohjelman.
-f - osoitteesta
-t - osoitteeseen
-s - SMTP-palvelin
-xu - tilin käyttäjätunnus
-xp - salasanan
-u - sähköpostin aihe
-m - sähköpostin kehon teksti
Tarkasta postilaatikkosi varmistaaksesi, ettäsaat testisähköpostin ja voimme siirtyä komentosarjan kirjoittamiseen, joka lähettää meille palvelintietoja.
Sähköpostien komentosarjan kirjoittaminen
Jotta saisimme parhaan hyödyn skriptistä, aiomme kirjoittaa 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 normaalisti).
Esimerkkiskriptimme 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ö:" & gt;C: \ SendEmail \ info.txt
Hanki-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" |Valitse -objektin koko, FreeSpace & gt; & gt;C: \ SendEmail \ info.txt
# Näytä käynnissä olevat prosessit
echo "Käynnissä olevat prosessit:" & gt; & gt;C: \ SendEmail \ info.txt
get-prosessi & gt; & gt;C: \ SendEmail \ info.txt
# Luettelo jaetut tiedostot / kansiot
echo "SMB-osuudet:" & gt; & gt;C: \ SendEmail \ info.txt
get-smbshare & gt; & gt;C: \ SendEmail \ info.txt
# Lähetä sähköpostia
tyyppi 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 "Päivittäiset palvelintiedot"
# Poista tiedosto, jonka olemme tehneet
rm C: \ SendEmail \ info.txt
Tässä kirjoitusohjelmassa annetaan 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ääte( PowerShell-tiedosto).
Kun käsikirjoitus on valmis, suorita nopea testi Run-kehotteesta varmistaaksesi, että se toimii oikein.
Käytä vain powershell-komentoa -file-argumentilla ja määritä komentojesi polku.
powershell -tiedosto "c: \ SendEmail \ daily-email.ps1"
Tarkasta postilaatikkoosi, että olet saanut sähköpostin - jos ei, tutustu käsikirjoitustasi syntaksivirheiden varalta. Tässä esimerkki siitä, mitä esimerkkikirjastosta syntynyt sähköposti näyttää:
Voit pelata muotoilun( kuten kuvien jäljessä tyhjillä viivoilla tekstin välillä), jotta se näyttäisi paremmalta laitteellasi tai paremmin, mutta voit käyttää kolmannen osapuolen ohjelmaa, jokatulosta tarvittavat tiedot luettavammassa muodossa kuin Windows tekee( komentosarjojen prosessi on edelleen sama).
Kun olet selvittänyt komentojesi komentotulokset, voit automatisoida Windows Task Scheduler -ohjelman. Avaa Windows Task Scheduler Käynnistä-valikosta.
Kun Task Scheduler on auki, valitse Toiminto & gt;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 komentojonoa testattuun ajo-ohjelmaan.
Paina seuraavaksi ja paina sitten Kyllä tässä ikkunassa:
Napsauta lopuksi viimeistä valikkoa ja olet valmis aikatauluttamaan automaattiset sähköpostiviestit.