Vi vil dekke dette spesielt for Ubuntu og Windows 8.1, med Gmail som e-postserver som e-posten sendes fra. Hvis du har en annen versjon av Linux eller Windows, eller foretrekker å bruke annen e-posttjeneste, bør instruksjonene her lett tilpasses.
Automatiserte e-poster i Linux
Vi skal bruke to forskjellige pakker for å oppnå dette, ssmtp og mailutils, så installer begge med følgende kommando:
$ sudo apt-get install ssmtp mailutils
Når disse er installert, må vi gjøre noen endringer i SSMTP-konfigurasjonsfilen:
$ sudo vi /etc/ssmtp/ssmtp.conf
Rediger filen med disse endringene (det er trygt å bare slette all tekst i filen og kopiere / lime inn disse innstillingene, hvis du vil):
# This address will receive the emails, so enter your own email here if you want to receive them.
# Specify the email server here (leave as is if you’re using Gmail).
mailhub=smtp.gmail.com:587
# The domain name that the mail will come from.
rewriteDomain=gmail.com
# The email address that these emails should be from.
# SSL/TLS settings, required for Gmail and most other mail servers.
UseTLS=Yes
UseSTARTTLS=Yes
# The username and password to your Gmail account.
AuthUser=username
AuthPass=password
# Allow the ability to specify a from address different than the one above.
FromLineOverride=yes
Når du er ferdig med å redigere filen, vil du endre tillatelsene siden Gmail-passordet ditt er lagret i ren tekst.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Det er alltid sikrere å gjøre roten til eieren av filen, men da må vi bruke sudo-kommandoen i vårt skript, og det vil be oss om et passord, og dermed beseire formålet med å automatisere hele prosessen.
Hvis du bruker en delt server og er bekymret for at passordet ditt blir lagret i ren tekst og lesbar av rot, må du opprette en kaste Gmail-konto eller bruke en e-postserver som ikke krever noen type autentisering i utgangspunktet.
For å sikre at alt er konfigurert riktig, la oss prøve en test-e-post:
$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]
"Testing" kommer til å ligge i e-postens kropp, og emnet blir "Testing av e-postoppsett." Kontroller e-posten din for å sikre at du mottok den.
Skrive et skript for e-postene
Nå som vi kan sende e-post fra kommandolinjen, la oss skrive et skript som vil sende oss noen grunnleggende opplysninger om systemet vårt.
#!/bin/bash
# Check hard drive space
echo 'Hard drive space:' > /home/geek/email.txt
df -h >> /home/geek/email.txt
# List the users that are logged in
echo 'Users currently logged in:' >> /home/geek/email.txt
who >> /home/geek/email.txt
# List currently running processes
echo 'Running processes:' >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Send the email
cat /home/geek/email.txt | mail -s 'Daily server information' [email protected]
# Delete the file we created
rm /home/geek/email.txt
Tydeligvis kan du få mye mer grundig med skriptet ditt og til og med gjøre formateringen litt finere, men dette ser utgangen ut i vår epost:
$ crontab -e
For 2:00 e-post, legg til:
0 2 * * * /home/geek/script.sh
Vi har skrevet en hel artikkel om crontab-filer hvis du trenger mer hjelp med denne delen.
Automatiserte e-poster i Windows
Sende e-post på kommandolinjen er mulig gjennom PowerShell, men vi har funnet ut at implementering av denne funksjonaliteten er mye enklere med tredjepartsapps, spesielt når du bruker Gmail. SendEmail er et gratis program tilgjengelig for Windows som gjør integrasjon med Windows Task Scheduler og Gmail en bris. Klikk på koblingen ovenfor for å laste ned den nyeste kopien, og sørg for at du tar tak i den TLS-støttede versjonen.
Når du har lastet ned SendEmail, trekk ut zip-filen og sett innholdet et sted du kan lagre dem så lenge du planlegger å sende automatiserte e-poster. I dette eksemplet skal vi bare lagre programmet i C: SendEmail
La oss teste SendEmail for å få en rask følelse av hvordan det fungerer. Åpne en kommandoprompt ved å skrive cmd i Start eller Run (Ctrl + R) -menyen.
cd C:SendEmail
Nå kan vi prøve å sende en test-e-post med følgende kommando:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u 'Test email subject' -m 'This is a test email.'
Du må selvsagt erstatte "brukernavn" og "passord" med kontoens legitimasjon før du utfører kommandoen.
Her er hva kommandoen ovenfor egentlig gjør:
sendEmail
utfører programmet.
-f
- Fra adresse
-t
- til adresse
-s
- SMTP-server
-xu
- Konto brukernavn
-xp
- bruker passord
-u
- e-post Emne
-m
- E-post kropps tekst
Sjekk innboksen din for å forsikre deg om at du har mottatt test-e-posten, og så kan vi fortsette å skrive et skript som sender oss serverinformasjon.
Skrive et skript for e-postene
For å få mest mulig ut av skriptet vårt, skal vi skrive det til PowerShell. Åpne Windows PowerShell ISE ved å skrive powershell_ise.exe i en Run prompt (Ctrl + R).
# Check hard drive space
echo 'C: Drive Usage:' > C:SendEmailinfo.txt
Get-WmiObject win32_LogicalDisk -Filter 'DeviceID='C:'' | Select-Object Size,FreeSpace >> C:SendEmailinfo.txt
# List currently running processes
echo 'Running processes:' >> C:SendEmailinfo.txt
get-process >> C:SendEmailinfo.txt
# List the files/folders currently being shared
echo 'SMB shares:' >> C:SendEmailinfo.txt
get-smbshare >> C:SendEmailinfo.txt
# Send the email
type C:SendEmailinfo.txt | C:SendEmailsendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u 'Daily server info'
# Delete the file we made
rm C:SendEmailinfo.txt
I dette skriptet sendes ulike opplysninger til C: SendEmail info.txt, og deretter sendes teksten i det dokumentet til oss før det blir slettet. Lagre skriptet ditt med en PS1 filutvidelse (PowerShell-fil).
Når skriptet er ferdig, må du kjøre en rask test fra en kjør-spørring for å sikre at den fungerer som den skal.
Bare bruk
powershell
kommandoen med a
-file
argument og spesifiser banen til skriptet ditt.
powershell -file 'c:SendEmaildaily-email.ps1'
Når du har utarbeidet kinks i skriptet ditt, kan du bruke Windows Task Scheduler til å automatisere det. Åpne Windows Oppgaveplanlegger via Start-menyen.
Nå bør du være på "Handling" -delen av veiviseren, velg "Start et program" og skriv inn samme tekst som vi skrev inn i Kjør-spørringen tidligere for å teste skriptet vårt.