Cách gửi email bằng dòng lệnh trong Linux

Cập nhật lúc 13h42' ngày 09/12/2008
Quản trị mạng - Trong Linux dòng lệnh cũng có thể được sử dụng rất hữu dụng khi bạn biết cách sử dụng nó. Bạn có thể phân tách dữ liệu, kiểm tra các quá trình và thực hiện rất nhiều công việc hữu dụng khác qua nó. Công cụ dòng lệnh cũng có thể được sử dụng để tạo một báo cáo và mail nó đến một địa chỉ nào đó. Trong bài này chúng tôi sẽ giới thiệu cho các bạn cách sử dụng lệnh trong Linux để gửi mail bằng một kịch bản. Bổ sung thêm vào đó là việc gửi theo các đính kèm từ dòng lệnh.

MAIL

Trước khi chạy một kiểm tra nhanh chóng để bảo đảm rằng ứng dụng “sendmail”đã được cài đặt và làm việc đúng cách. Bạn hãy thực thi lệnh dưới đây, thay thế “you@youremailid.com” bằng địa chỉ email của  bạn.

# mail -s “Hello world” you@youremailid.com

Nhấn phím Enter/return, khi đó bạn sẽ được đưa tới một dòng mới. Nhập vào đoạn văn bản “This is a test from my server”. Sau khi nhập xong đoạn văn bản đó bạn hãy nhấn phím return lại lần nữa. Sau đó nhấn kết hợp các phím Control+D để tiếp tục. Nhắc lệnh sẽ hỏi bạn xem bạn có muốn đánh dấu một bản copy của mail đến một địa chỉ nào khác không, nhấn Control+D lần nữa. Kiểm tra mailbox của bạn. Lệnh này sẽ gửi đi một mail đến một email ID đã được đề cập với subject “Hello world”.

Để add thêm nội dung vào phần body của mail trong khi vẫn chạy lệnh, bạn có thể sử dụng các tùy chọn dưới đây. Nếu bạn muốn bổ sung thêm đoạn văn bản của chính bạn:

# echo “This will go into the body of the mail.” | mail -s “Hello world” you@youremailid.com

Và nếu bạn muốn mail để đọc nội dung từ một file:

# mail -s “Hello world” you@youremailid.com < /home/calvin/application.log

Một số tùy chọn hữu dụng khác trong lệnh mail này là:

-s subject (subject của mail)
-c email-address (Đánh dấu một copy cho địa chỉ “email-address” này hoặc CC)
-b email-address (Đánh dấu BCC)

Đây là cách bạn có thể sử dụng các tùy chọn này:

# echo “Welcome to the world of Calvin n Hobbes” | mail -s “Hello world” calvin@cnh.com -c hobbes@cnh.com -b susie.derkins@cnh.com

MUTT

Một trong những trở lại lớn trong việc sử dụng lệnh mail là nó không hỗ trợ việc gửi các đính kèm. Tuy vậy, lệnh mutt lại hỗ trợ điều đó. Chúng tôi đã phát hiện thấy tính năng này rất hữu dụng cho các kịch bản để tạo các báo cáo không nguyên bản hoặc các back up có kích thước nhỏ. Mutt cho phép bạn có thể thực hiện rất nhiều công việc ngoài việc chỉ gửi các đính kèm. Nó còn có nhiều tính năng hơn lệnh mail. Chúng ta hãy đi khám phá những vấn đề cơ bản có thể thực hiện với lệnh này. Đây là cách bạn có thể đính kèm một file vào mail:

# echo “Sending an attachment.” | mutt -a backup.zip -s “attachment” calvin@cnh.com

Lệnh này sẽ gửi một mail đến calvin@cnh.com với chủ đề là “attachment”, body là “Sending an attachment.” và gồm có một file đính kèm backup.zip. Giống như lệnh mail, bạn có thể sử dụng tùy chọn “-c” để đánh dấu CC đến một mail ID khác.

Gửi mail từ một kịch bản

Với những cơ bản đã được giới thiệu, bạn hoàn toàn có thể gửi các mail từ các kịch bản của mình. Đây là một kịch bản đơn giản mà chúng tôi giới thiệu để đọc không gian sử dụng trên phần vùng ổ cứng và mail dữ liệu đó đến bạn.

#!/bin/bash
df -h | mail -s “disk space report” calvin@cnh.com

Lưu các dòng này trong một file nào đó trên máy chủ Linux và chạy file này. Bạn sẽ nhận được một email gồm có các kết quả của các lệnh trong đó. Mặc dù vậy, nếu cần gửi nhiều dữ liệu hơn thì bạn cần phải viết dữ liệu vào một file văn bản và nhập nó vào body của mail trong khi soạn thảo mail. Đây là một ví dụ về kịch bản sẽ thực hiện công việc xem hiệu suất đĩa cứng cũng như bộ nhớ, ghi dữ liệu đó vào một file tạm thời, sau đó nhập nó vào thân của một mail và gửi đi:

#!/bin/bash
df -h > /tmp/mail_report.log
free -m >> /tmp/mail_report.log
mail -s “disk and RAM report” calvin@cnh.com < /tmp/mail_report.log

Ở đây có một vấn đề phức tạp hơn. Bạn phải lấy một back up các file và mail sau đó. Đầu tiên thư mục được mail sẽ được lưu lại. Sau đó nó sẽ được gửi như một đính kèm của email bằng lệnh mutt. Đây là kịch bản để thực hiện công việc đó:

#!/bin/bash
tar -zcf /tmp/backup.tar.gz /home/calvin/files
echo | mutt -a -s /tmp/backup.tar.gz “daily backup of data” calvin@cnh.com

Echo ở đầu dòng cuối cùng sẽ thêm một phần trống vào thân của mail sẽ được thiết lập.

Văn Linh (Theo SimpleHelp)
Đánh giá(?):
META.vn | Mua sắm trực tuyến
Bài viết mới nhất
Xem tất cả
Bài viết cũ hơn cùng chủ đề
Xem tất cả