Trang chủ » làm thế nào để » Cách tự động tạo và gửi email thống kê máy tính

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

    Điều quan trọng là kiểm tra 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 tốt nếu 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 phải truy cập máy chủ để kiểm tra sự cố? Hướng dẫn này sẽ chỉ cho bạn cách định cấu hình email tự động trên Linux và Windows.

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

    Email tự động trong Linux

    Chúng tôi 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 bằng lệnh sau:

    $ sudo apt-get cài đặt ssmtp mailutils

    Khi chúng được cài đặt, 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 với những thay đổi này (an toàn khi 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):

    # Địa chỉ này sẽ nhận được email, vì vậy hãy nhập email của riêng bạn vào đây nếu bạn muốn nhận chúng.

    [email protected]

    # Chỉ định máy chủ email tại đây (để nguyên như bạn đang sử dụng Gmail).

    mailhub = smtp.gmail.com: 587

    # Tên miền mà thư sẽ đến.

    viết lại tên miền = gmail.com

    # Địa chỉ email mà các email này phải đến từ.

    tên máy chủ = tên người dùng

    Cài đặt # SSL / TLS, được yêu cầu cho Gmail và hầu hết các máy chủ thư khác.

    Sử dụngTLS = Có

    Sử dụngSTARTTLS = Có

    # Tên người dùng và mật khẩu vào tài khoản Gmail của bạn.

    AuthUser = tên người dùng

    AuthPass = mật khẩu

    # Cho phép khả năng chỉ định một địa chỉ khác với địa chỉ trên.

    FromLineOverride = có

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

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

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

    Luôn luôn an toàn hơn để biến root thành 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 nhập 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ủ dùng chung và lo lắng về việc mật khẩu của bạn được lưu trữ trong văn bản gốc và có thể đọc được bằng root, hãy tạo một tài khoản Gmail vứt đi 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 ở nơi đầu tiên.

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

    $ echo "Kiểm tra" | mail -s "Kiểm tra thiết lập thư" [email protected]

    Thử nghiệm trên máy tính sẽ được đặt trong phần thân của email và chủ đề sẽ là cài đặt thư của Thử nghiệm trên mạng. Kiểm tra email của bạn để đảm bảo bạn đã nhận được nó.

    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

    # Kiểm tra dung lượng ổ cứng

    echo "Dung lượng ổ cứng:"> /home/geek/email.txt

    df -h >> /home/geek/email.txt

    # Liệt kê những người dùng đã đăng nhập

    echo "Người dùng hiện đang đăng nhập:" >> /home/geek/email.txt

    ai >> /home/geek/email.txt

    # Liệt kê các tiến trình hiện đang chạy

    echo "Quá trình đang chạy:" >> /home/geek/email.txt

    ps -e >> /home/geek/email.txt

    # Gửi email

    mèo /home/geek/email.txt | mail -s "Thông tin máy chủ hàng ngày" [email protected]

    # Xóa tệp chúng tôi đã tạo

    rm /home/geek/email.txt

    Rõ ràng bạn có thể hiểu sâu hơn về tập lệnh của mình và thậm chí làm cho định dạng đẹp hơn một chút, nhưng đây là kết quả đầu ra trong email của chúng tôi:

    Bây giờ kịch bản được viết và kiểm tra, 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 sẽ được gửi vào lúc 2:00 sáng mỗi sáng, để chúng tôi có thể đi qua dữ liệu vào cuối ngày hôm đó.

    $ crontab -e

    Đối với email 2:00 SA, thêm:

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

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

    Email tự động trong Windows

    Gửi email tại dòng lệnh có thể thông qua PowerShell, nhưng chúng tôi 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, giúp tích hợp với Trình lập lịch tác vụ Windows 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ợ bởi 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 có kế hoạch 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 thử SendEmail để cảm nhận nhanh về cách thức hoạt động của nó. Mở dấu nhắc lệnh bằng cách nhập cmd vào menu Bắt đầu hoặc Chạy (Ctrl + R).

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

    cd C: \ Gửi thư

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

    sendEmail -f username @ gmail -t [email protected] -s smtp.gmail.com giáp87 -xu tên người dùng -xp mật khẩu -u "Kiểm tra chủ đề email" -m "Đây là email kiểm tra."

    Rõ ràng, thay thế tên người dùng của mật khẩu và tên miền mật khẩu của người dùng trước khi thực hiện lệnh này.

    Đây là những gì lệnh trên thực sự làm:

    gửi email 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

    -bạn - chủ đề email

    -m - văn bản cơ thể 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

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

    Ở 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 thi. Điều này sẽ cung cấp cho bạn một khởi đầu tốt trong 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 của bạn, 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 nhiệm vụ mà họ thường không thể).

    Đối với tập lệnh 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ẻ qua mạng.

    # Kiểm tra dung lượng ổ cứng

    echo "C: Sử dụng ổ đĩa:"> C: \ SendEmail \ info.txt

    Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Kích thước đối tượng chọn, không gian miễn phí >> C: \ SendEmail \ info.txt

    # Liệt kê các tiến trình hiện đang chạy

    echo "Quá trình đang chạy:" >> C: \ SendEmail \ info.txt

    get-process >> C: \ SendEmail \ info.txt

    # Liệt kê các tệp / thư mục hiện đang được chia sẻ

    tiếng vang "cổ phiếu SMB:" >> C: \ SendEmail \ info.txt

    get-smbshare >> C: \ SendEmail \ info.txt

    # Gửi email

    loại C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f username @ gmail -t username @ gmail -s smtp.gmail.com giáp87 -xu tên người dùng -xp mật khẩu -u "Thông tin máy chủ hàng ngày"

    # Xóa tệp chúng tôi đã thực hiện

    rm C: \ SendEmail \ info.txt

    Trong tập lệnh này, nhiều 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 với phần mở rộng tệp ps1 (tệp PowerShell).

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

    Chỉ cần sử dụng quyền hạn lệnh với một -tập tin đối số và chỉ định đường dẫn đến tập lệnh của bạn.

    powershell -file "c: \ SendEmail \ Daily-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 để biết lỗi cú pháp. Đây là những gì email được tạo từ tập lệnh mẫu của chúng tôi trông như sau:

    Bạn có thể chơi xung quanh với định dạng (chẳng hạn như lặp lại các 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 là bạn có thể sử dụng chương trình của bên thứ ba sẽ xuất thông tin cần thiết ở định dạng dễ đọc hơn Windows ( quá trình viết kịch bản vẫn sẽ giống nhau).

    Khi bạn đã xử lý các nút thắt trong tập lệnh của mình, bạn có thể sử dụng Trình lập lịch tác vụ của Windows để tự động hóa nó. Mở Trình lập lịch tác vụ Windows thông qua menu Bắt đầu.

    Khi Trình lập lịch tác vụ mở, chọn Hành động> Tạo tác vụ cơ bản.

    Đặt tên cho nhiệm vụ này một cái gì đó giống như kịch bản email hàng ngày của Nhật Bản Trên màn hình tiếp theo, chọn tần suất bạn muốn chạy tập lệnh email của mình, 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 nên ở trong phần Action Action của phần mềm trong Trình hướng dẫn, chọn Bắt đầu một Chương trình và nhập cùng một văn bản mà chúng tôi đã nhập vào dấu nhắc Chạy trước đó để kiểm tra tập lệnh của chúng tôi.

    Nhấn tiếp theo và sau đó nhấn Yes trên cửa sổ này:

    Nhấp vào Kết thúc trên menu cuối cùng và bạn đã hoàn thành việc lên lịch gửi email tự động của mình.