Cách tự động tạo và gửi thống kê máy tính qua email

Mục lục:

Cách tự động tạo và gửi thống kê máy tính qua email
Cách tự động tạo và gửi thống kê máy tính qua email

Video: Cách tự động tạo và gửi thống kê máy tính qua email

Video: Cách tự động tạo và gửi thống kê máy tính qua email
Video: Hướng Dẫn Chi Tiết Cách Cài Win 10 Full Không Cần Usb và Đĩa | Kèm Link tải Windows 10 đầy đủ - YouTube 2024, Tháng mười một
Anonim
Điều quan trọng là kiểm tra nhiều dữ liệu nhật ký và số liệu thống kê khác nhau trên máy chủ của bạn mỗi ngày, nhưng nó trở nên tẻ nhạt. Sẽ không hay khi nhận được một email với tất cả các điểm nổi bật mỗi ngày, vì vậy bạn thậm chí không cần đến máy chủ để kiểm tra sự cố? Hướng dẫn này sẽ chỉ cho bạn cách cấu hình các email tự động trên Linux và Windows.
Điều quan trọng là kiểm tra nhiều dữ liệu nhật ký và số liệu thống kê khác nhau trên máy chủ của bạn mỗi ngày, nhưng nó trở nên tẻ nhạt. Sẽ không hay khi nhận được một email với tất cả các điểm nổi bật mỗi ngày, vì vậy bạn thậm chí không cần đến máy chủ để kiểm tra sự cố? Hướng dẫn này sẽ chỉ cho bạn cách cấu hình các email tự động trên Linux và Windows.

Chúng tôi sẽ giới thiệu cụ thể điều này cho Ubuntu và Windows 8.1, với Gmail đang được sử dụng làm máy chủ email mà thư được gửi từ đó. Nếu bạn có một phiên bản Linux hoặc Windows khác, hoặc thích sử dụng một số dịch vụ email khác, các hướng dẫn ở đây phải dễ dàng thích ứng.

Email tự động trong Linux

Chúng ta sẽ sử dụng hai gói khác nhau để thực hiện điều này, ssmtp và mailutils, vì vậy hãy cài đặt cả hai gói với lệnh sau đây:

$ sudo apt-get install ssmtp mailutils

Khi đã cài đặt xong, chúng tôi cần thực hiện một số thay đổi đối với tệp cấu hình SSMTP:

$ sudo vi /etc/ssmtp/ssmtp.conf

Chỉnh sửa tệp bằng những thay đổi này (an toàn để chỉ xóa tất cả văn bản trong tệp và sao chép / dán các cài đặt này, nếu bạn muốn):

# 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

Khi bạn chỉnh sửa xong tệp, bạn sẽ muốn thay đổi quyền vì mật khẩu Gmail của bạn được lưu trữ trong văn bản thuần túy.

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

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

Luôn luôn an toàn hơn để làm cho chủ sở hữu của tệp, nhưng sau đó chúng tôi sẽ phải sử dụng lệnh sudo trong tập lệnh của chúng tôi và nó sẽ nhắc chúng tôi mật khẩu, từ đó đánh bại mục đích tự động hóa toàn bộ quá trình này.

Nếu bạn đang sử dụng máy chủ được chia sẻ và lo lắng về mật khẩu của mình đang được lưu trữ ở dạng văn bản gốc và có thể đọc được bằng thư mục gốc, hãy tạo tài khoản Gmail throwaway hoặc sử dụng máy chủ email không yêu cầu bất kỳ loại xác thực nào.

Để đảm bảo mọi thứ được định cấu hình chính xác, hãy thử một email kiểm tra:

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

"Kiểm tra" sẽ nằm trong phần nội dung của email và chủ đề sẽ là "Kiểm tra thiết lập thư". Kiểm tra email của bạn để đảm bảo bạn đã nhận được email đó.

Viết kịch bản cho email

Bây giờ chúng tôi có thể gửi email từ dòng lệnh, hãy viết một tập lệnh sẽ gửi cho chúng tôi một số thông tin cơ bản về hệ thống của chúng tôi.

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

Rõ ràng bạn có thể có được nhiều hơn chiều sâu với kịch bản của bạn và thậm chí làm cho các định dạng đẹp hơn một chút, nhưng đây là những gì đầu ra trông giống như trong email của chúng tôi:

Bây giờ kịch bản được viết và thử nghiệm, chúng ta có thể sử dụng cron để tự động thực thi nó cùng một lúc mỗi ngày. Trong ví dụ này, chúng tôi sẽ định cấu hình email được gửi lúc 2:00 sáng mỗi sáng, vì vậy chúng tôi có thể xem xét dữ liệu vào cuối ngày hôm đó.
Bây giờ kịch bản được viết và thử nghiệm, chúng ta có thể sử dụng cron để tự động thực thi nó cùng một lúc mỗi ngày. Trong ví dụ này, chúng tôi sẽ định cấu hình email được gửi lúc 2:00 sáng mỗi sáng, vì vậy chúng tôi có thể xem xét dữ liệu vào cuối ngày hôm đó.

$ crontab -e

Đối với email 2:00 AM, hãy thêm:

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

Chúng tôi đã viết toàn bộ một bài viết về các tệp crontab nếu bạn cần thêm trợ giúp về phần này.

Email tự động trong Windows

Gửi email tại dòng lệnh là có thể thông qua PowerShell, nhưng chúng tôi nhận thấy rằng việc triển khai chức năng này dễ dàng hơn rất nhiều với các ứng dụng của bên thứ ba, đặc biệt là khi sử dụng Gmail. SendEmail là một chương trình miễn phí có sẵn cho Windows mà làm cho tích hợp với Windows Task Scheduler và Gmail một cách dễ dàng. Nhấp vào liên kết ở trên để tải xuống bản sao mới nhất và đảm bảo bạn lấy phiên bản được hỗ trợ TLS.

Sau khi bạn đã tải xuống SendEmail, hãy giải nén tệp zip và đặt nội dung ở đâu đó mà bạn có thể lưu trữ chúng miễn là bạn dự định gửi email tự động. Trong ví dụ này, chúng tôi sẽ lưu trữ chương trình trong C: SendEmail

Hãy kiểm tra SendEmail để có cảm nhận nhanh về cách hoạt động của nó. Mở dấu nhắc lệnh bằng cách gõ cmd vào menu Bắt đầu hoặc Chạy (Ctrl + R).

Khi dấu nhắc lệnh mở ra, hãy sử dụng lệnh thư mục thay đổi để điều hướng đến nơi bạn đã lưu các tệp SendEmail.
Khi dấu nhắc lệnh mở ra, hãy sử dụng lệnh thư mục thay đổi để điều hướng đến nơi bạn đã lưu các tệp SendEmail.

cd C:SendEmail

Bây giờ chúng tôi có thể thử gửi một email thử nghiệm bằng lệnh sau:

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

Rõ ràng, thay thế "tên người dùng" và "mật khẩu" bằng thông tin đăng nhập tài khoản của bạn trước khi thực hiện lệnh.

Dưới đây là những gì lệnh trên thực tế:

sendEmail

thực hiện chương trình.

-f

- từ địa chỉ

-t

- Đến địa chỉ

-s

- Máy chủ SMTP

-xu

- tài khoản người dùng

-xp

- mật khẩu tài khoản

-u

- chủ đề email

-m

- văn bản nội dung email

Kiểm tra hộp thư đến của bạn để đảm bảo bạn đã nhận được email kiểm tra và sau đó chúng tôi có thể chuyển sang viết một tập lệnh sẽ gửi cho chúng tôi thông tin máy chủ.

Viết kịch bản cho email

Để khai thác tối đa kịch bản của chúng tôi, chúng tôi sẽ viết kịch bản cho PowerShell. Mở Windows PowerShell ISE bằng cách gõ powershell_ise.exe vào dấu nhắc Run (Ctrl + R).

Image
Image

Ở bên phải của cửa sổ PowerShell ISE, bạn có thể liệt kê mọi lệnh mà PowerShell có khả năng thực hiện. Điều này sẽ cung cấp cho bạn một khởi đầu tốt về việc tạo ra các loại thông tin mà bạn cần báo cáo. Trong tập lệnh, bạn cũng có thể gọi các chương trình của bên thứ ba để xuất thông tin (ví dụ: SendEmail là ứng dụng của bên thứ ba nhưng PowerShell và cmd có thể sử dụng nó để hoàn thành các tác vụ mà họ thường không thể thực hiện được).

Đối với kịch bản mẫu của chúng tôi, chúng tôi sẽ kiểm tra mức sử dụng đĩa hiện tại của ổ C, hiển thị các quy trình hiện đang chạy và hiển thị tất cả các tệp hiện đang được chia sẻ trên mạng.
Đối với kịch bản mẫu của chúng tôi, chúng tôi sẽ kiểm tra mức sử dụng đĩa hiện tại của ổ C, hiển thị các quy trình hiện đang chạy và hiển thị tất cả các tệp hiện đang được chia sẻ trên mạng.

# 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

Trong tập lệnh này, thông tin khác nhau được xuất ra C: SendEmail info.txt, và sau đó văn bản trong tài liệu đó được gửi qua email cho chúng tôi trước khi nó bị xóa. Lưu tập lệnh của bạn bằng phần mở rộng tệp ps1 (tệp PowerShell).

Khi tập lệnh của bạn hoàn tất, hãy chạy thử nghiệm nhanh từ lời nhắc Chạy để đảm bảo nó hoạt động đúng cách.

Chỉ cần sử dụng

powershell

lệnh với một

-file

đối số và chỉ định đường dẫn đến tập lệnh của bạn.

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

Kiểm tra hộp thư đến của bạn để đảm bảo bạn đã nhận được email - nếu không, hãy xem qua tập lệnh của bạn để tìm lỗi cú pháp. Dưới đây là những gì email được tạo từ tập lệnh mẫu của chúng tôi trông giống như sau:
Kiểm tra hộp thư đến của bạn để đảm bảo bạn đã nhận được email - nếu không, hãy xem qua tập lệnh của bạn để tìm lỗi cú pháp. Dưới đây là những gì email được tạo từ tập lệnh mẫu của chúng tôi trông giống như sau:
Image
Image

Bạn có thể chơi xung quanh với định dạng (chẳng hạn như lặp lại dòng trống giữa văn bản) để làm cho nó hiển thị đẹp hơn trên thiết bị của bạn, hoặc tốt hơn bạn có thể sử dụng chương trình của bên thứ ba sẽ xuất ra thông tin cần thiết theo định dạng dễ đọc hơn Windows ( quá trình viết kịch bản sẽ vẫn như cũ).

Sau khi bạn đã tìm ra các kinks trong tập lệnh, bạn có thể sử dụng Windows Task Scheduler để tự động hóa nó. Mở Windows Task Scheduler thông qua menu Start.

Mở Task Scheduler, chọn Action> Create Basic Task.
Mở Task Scheduler, chọn Action> Create Basic Task.
Đặt tên cho tác vụ này là "Kịch bản email hàng ngày" và nhấp vào tiếp theo. Trên màn hình tiếp theo, chọn tần suất bạn muốn tập lệnh email của mình chạy, có thể là hàng ngày. Sau đó, chọn thời gian bạn muốn tập lệnh chạy và nhấn tiếp theo.
Đặt tên cho tác vụ này là "Kịch bản email hàng ngày" và nhấp vào tiếp theo. Trên màn hình tiếp theo, chọn tần suất bạn muốn tập lệnh email của mình chạy, có thể là hàng ngày. Sau đó, chọn thời gian bạn muốn tập lệnh chạy và nhấn tiếp theo.

Bây giờ bạn sẽ ở trên phần "Hành động" của trình hướng dẫn, chọn "Bắt đầu một Chương trình" và nhập cùng văn bản mà chúng tôi đã nhập vào lời nhắc Chạy trước đó để kiểm tra tập lệnh của chúng tôi.

Đề xuất: