Как да генерираме автоматично и електронна поща статистика на компютъра

Съдържание:

Как да генерираме автоматично и електронна поща статистика на компютъра
Как да генерираме автоматично и електронна поща статистика на компютъра

Видео: Как да генерираме автоматично и електронна поща статистика на компютъра

Видео: Как да генерираме автоматично и електронна поща статистика на компютъра
Видео: CS50 2014 - Week 10 - YouTube 2024, Април
Anonim
Важно е всеки ден да проверявате различни данни от дневници и статистически данни на сървъра си, но това става доста досадно. Не би ли било хубаво да получавате един имейл с всички акценти всеки ден, така че дори не е нужно да се качвате на сървъра, за да проверите за проблеми? Това ръководство ще ви покаже как да конфигурирате автоматизирани имейли на Linux и Windows.
Важно е всеки ден да проверявате различни данни от дневници и статистически данни на сървъра си, но това става доста досадно. Не би ли било хубаво да получавате един имейл с всички акценти всеки ден, така че дори не е нужно да се качвате на сървъра, за да проверите за проблеми? Това ръководство ще ви покаже как да конфигурирате автоматизирани имейли на Linux и Windows.

Ще обръщаме специално внимание на това за Ubuntu и Windows 8.1, като Gmail ще се използва като пощенски сървър, от който се изпраща пощата. Ако имате друга версия на Linux или Windows или предпочитате да използвате друга услуга за електронна поща, инструкциите тук трябва лесно да се приспособят.

Автоматизирани имейли в Линукс

Ще използваме два различни пакета, за да постигнем това, ssmtp и mailutils, така че инсталирайте и двете от тях със следната команда:

$ sudo apt-get install ssmtp mailutils

Веднъж инсталирани, трябва да направим някои промени в конфигурационния файл на SSMTP:

$ sudo vi /etc/ssmtp/ssmtp.conf

Редактирайте файла с тези промени (е безопасно просто да изтриете целия текст във файла и да копирате / поставите тези настройки, ако искате):

# This address will receive the emails, so enter your own email here if you want to receive them.

[email protected]

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

[email protected]

# 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

Когато приключите с редактирането на файла, ще искате да промените разрешенията, тъй като паролата ви в Gmail се съхранява в текста.

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

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

Винаги е по-сигурно коренът на собственика на файла, но тогава ще трябва да използваме командата sudo в нашия скрипт и това би ни подсказало за парола, като по този начин победихме целта да автоматизираме целия този процес.

Ако използвате споделен сървър и се притеснявате, че паролата ви ще бъде съхранена в текстов формат и четена от root, създайте акаунт в Gmail или използвайте сървър за електронна поща, който не изисква никакъв тип удостоверяване на първо място.

За да се уверите, че всичко е конфигурирано правилно, опитайте да тествате имейл:

$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]

"Тестване" ще бъде в тялото на имейла и темата ще бъде "Тестване на настройките на пощата". Проверете имейла си, за да сте сигурни, че сте го получили.

Писане на скрипт за имейлите

Сега, когато можем да изпращаме имейли от командния ред, нека да напишем скрипт, който ще ни изпрати някаква основна информация за нашата система.

#!/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

Очевидно можете да получите много по-задълбочено с вашия скрипт и дори да направите форматирането малко по-хубаво, но това е как изглежда изходът в нашия имейл:

Сега, когато скриптът е написан и тестван, можем да използваме cron автоматично да го изпълняваме едновременно всеки ден. В този пример ще конфигурираме електронната поща, която ще бъде изпратена в 2:00 сутринта всяка сутрин, за да можем да прегледаме данните по-късно същия ден.
Сега, когато скриптът е написан и тестван, можем да използваме cron автоматично да го изпълняваме едновременно всеки ден. В този пример ще конфигурираме електронната поща, която ще бъде изпратена в 2:00 сутринта всяка сутрин, за да можем да прегледаме данните по-късно същия ден.

$ crontab -e

За имейли от 2:00 ч. Добавете:

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

Написахме цяла статия за файловете crontab, ако имате нужда от повече помощ с тази част.

Автоматизирани имейли в Windows

Изпращането на имейли на командния ред е възможно чрез PowerShell, но открихме, че внедряването на тази функционалност е много по-лесно с приложенията на трети страни, особено при използването на Gmail. SendEmail е безплатна програма, налична за Windows, която прави интегрирането с Windows Scheduler Task Scheduler и Gmail лек. Кликнете върху връзката по-горе, за да изтеглите последното копие и се уверете, че сте грабнали версията, поддържана от TLS.

След като изтеглите SendEmail, извадете zip файла и поставете съдържанието някъде така, че да можете да ги съхранявате толкова дълго, колкото планирате да изпращате автоматизирани имейли. В този пример ние просто ще съхраняваме програмата в C: SendEmail

Нека да тестваме SendEmail, за да можем бързо да разберем как работи. Отворете командния ред, като въведете cmd в менюто Старт или Изпълнение (Ctrl + R).

Когато командният ред е отворен, използвайте командата за промяна на директория, за да отидете до мястото, където сте съхранили файловете SendEmail.
Когато командният ред е отворен, използвайте командата за промяна на директория, за да отидете до мястото, където сте съхранили файловете SendEmail.

cd C:SendEmail

Сега можем да опитаме да изпратим тестов имейл със следната команда:

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

Очевидно заменете "потребителско име" и "парола" с идентификационните данни на профила си, преди да изпълните командата.

Ето какво всъщност прави командата по-горе:

sendEmail

изпълнява програмата.

-f

- от адрес

-t

- на адрес

-s

- SMTP сървър

-xu

- потребителско име за профила

-xp

- парола за акаунта

-u

- тема на имейла

-m

Текст на текста на електронната поща

Проверете входящата си поща, за да сте сигурни, че сте получили тестовия имейл, и след това може да преминете към написването на скрипт, който ще ни изпрати информация за сървъра.

Писане на скрипт за имейлите

За да извлечете максимума от нашия скрипт, ще го напишем за PowerShell. Отворете Windows PowerShell ISE, като въведете powershell_ise.exe в подкана за изпълнение (Ctrl + R).

От дясната страна на прозореца PowerShell ISE можете да изброите всяка команда, която PowerShell може да изпълни. Това трябва да ви даде добър старт за генерирането на видовете информация, която ви е необходима. В скрипта можете също да се обаждате на програми на трети страни, за да извеждате информация и (т.е. SendEmail е приложение на трета страна, но PowerShell и cmd могат да я използват, за да изпълняват задачите, които нормално не могат).
От дясната страна на прозореца PowerShell ISE можете да изброите всяка команда, която PowerShell може да изпълни. Това трябва да ви даде добър старт за генерирането на видовете информация, която ви е необходима. В скрипта можете също да се обаждате на програми на трети страни, за да извеждате информация и (т.е. SendEmail е приложение на трета страна, но PowerShell и cmd могат да я използват, за да изпълняват задачите, които нормално не могат).
За примерния ни скрипт ще проверим текущото използване на диска на C устройството, ще покажем процесите, които в момента се изпълняват и ще покажем всички файлове, които понастоящем се споделят в мрежата.
За примерния ни скрипт ще проверим текущото използване на диска на C устройството, ще покажем процесите, които в момента се изпълняват и ще покажем всички файлове, които понастоящем се споделят в мрежата.

# 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

В този скрипт се извежда различна информация в C: SendEmail info.txt, след което текстът в този документ е изпратен по имейл преди да бъде изтрит. Запазете скрипта си с разширение за файл ps1 (файл PowerShell).

С приключването на скрипта изпълнете бърз тест от подкана за изпълнение, за да се уверите, че работи правилно.

Просто използвайте

powershell

команда с

-file

аргумент и да посочите пътя към вашия скрипт.

powershell -file 'c:SendEmaildaily-email.ps1'

Проверете входящата си поща, за да се уверите, че сте получили имейла - ако не, потърсете скрипта за грешки при синтаксиса. Ето как изглежда генерираният имейл от нашия примерен скрипт:
Проверете входящата си поща, за да се уверите, че сте получили имейла - ако не, потърсете скрипта за грешки при синтаксиса. Ето как изглежда генерираният имейл от нашия примерен скрипт:
Можете да играете навсякъде с форматирането (като отразяване на празни линии между текста), за да стане по-хубаво на устройството ви, но все пак можете да използвате програма на трета страна, която ще изведе необходимата информация в по-четлив формат от Windows ( процесът на скриптове ще продължи да бъде същият).
Можете да играете навсякъде с форматирането (като отразяване на празни линии между текста), за да стане по-хубаво на устройството ви, но все пак можете да използвате програма на трета страна, която ще изведе необходимата информация в по-четлив формат от Windows ( процесът на скриптове ще продължи да бъде същият).

След като сте изработили скиците в скрипта си, можете да използвате Windows Task Scheduler, за да го автоматизирате. Отворете Windows Task Scheduler през менюто "Старт".

С отвореното работно планиране на задачите изберете Действие> Създаване на основна задача.
С отвореното работно планиране на задачите изберете Действие> Създаване на основна задача.
Наименувайте тази задача като "Daily email script" и щракнете върху следващия. На следващия екран, изберете честотата, с която искате да се изпълнява скриптът Ви за емайл, вероятно ежедневно. След това изберете часа, в който искате да се изпълни скрипта, и натиснете следващия.
Наименувайте тази задача като "Daily email script" и щракнете върху следващия. На следващия екран, изберете честотата, с която искате да се изпълнява скриптът Ви за емайл, вероятно ежедневно. След това изберете часа, в който искате да се изпълни скрипта, и натиснете следващия.

Сега трябва да сте в частта "Действие" на съветника, да изберете "Стартиране на програма" и да въведете същия текст, който въведохме в подкана за изпълнение, за да тествате скрипта.

Препоръчано: