HƯỚNG DẪN THÊM CRON CHẠY HÀNG TUẦN GỬI BÁO CÁO DISK USAGE QUA EMAIL TRÊN UBUNTU

shape
shape

HƯỚNG DẪN THÊM CRON CHẠY HÀNG TUẦN GỬI BÁO CÁO DISK USAGE QUA EMAIL TRÊN UBUNTU

I. Mục tiêu

  • Tự động kiểm tra dung lượng ổ đĩa trên Ubuntu Server để đảm bảo hệ thống hoạt động ổn định.
  • Gửi báo cáo disk usage qua email nhằm giúp người quản trị theo dõi tình trạng lưu trữ kịp thời.
  • Thiết lập cron chạy định kỳ (hàng tuần) để tiết kiệm thời gian và công sức quản lý.

II. Chuẩn bị

  • Một máy chủ Ubuntu Server.
  • Quyền root hoặc sudo.
  • Một tài khoản email có hỗ trợ SMTP (ví dụ: Gmail SMTP với App Password).
  • Các gói cần thiết:
    • msmtp
    • msmtp-mta
    • mailutils
    • cron

Cài đặt các gói:

sudo apt update
sudo apt install -y msmtp msmtp-mta mailutils ca-certificates

III. Cài đặt & cấu hình gửi email

1. Cấu hình SMTP (ví dụ Gmail)

Chỉnh sửa file cấu hình msmtp:

sudo nano /etc/msmtprc

Nội dung mẫu:

defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log

account gmail
host smtp.gmail.com
port 587
from your_email@gmail.com
user your_email@gmail.com
password APP_PASSWORD_GMAIL

account default : gmail

⚠️ Lưu ý: sử dụng App Password, không dùng mật khẩu Gmail thông thường.

Thiết lập quyền:

sudo chmod 600 /etc/msmtprc
sudo chown root:root /etc/msmtprc

 

2. Kiểm tra gửi mail thủ công

echo "Test email from Ubuntu" | mail -s "TEST SMTP" your_email@gmail.com

Nếu nhận được email → cấu hình SMTP thành công.

IV. Tạo script kiểm tra disk usage

Tạo script:

sudo nano /usr/local/bin/disk_report.sh

Nội dung script:

#!/bin/bash

echo "Disk Usage Report"
echo "Server: $(hostname)"
echo "Time: $(date '+%Y-%m-%d %H:%M:%S')"
echo "----------------------------"
df -h

Cấp quyền thực thi:

sudo chmod +x /usr/local/bin/disk_report.sh

Kiểm tra script chạy độc lập:

/usr/local/bin/disk_report.sh

V. Gửi báo cáo disk qua email

⚠️ Bắt buộc sử dụng pipe (|) để giữ định dạng nhiều dòng

/usr/local/bin/disk_report.sh | mail -s "Disk Usage - $(hostname)" your_email@gmail.com

Kiểm tra email để đảm bảo:

  • Nội dung hiển thị đúng từng dòng
  • Thông tin hostname, thời gian, disk usage chính xác

VI. Thiết lập cron chạy định kỳ

Mở cron của user root:

sudo crontab -e

Chọn editor nano nếu được hỏi.

Ví dụ: chạy hàng tuần – Chủ nhật lúc 08:00

0 8 * * 0 /usr/local/bin/disk_report.sh | mail -s "Weekly Disk Usage - $(hostname)" your_email@gmail.com

Lưu file và thoát.

Kiểm tra cron:

sudo crontab -l

VII. Kiểm tra & xác nhận hoạt động

  • Kiểm tra cron đã được tạo:
sudo crontab -l
  • Theo dõi log cron:
grep CRON /var/log/syslog
  • Chờ đến thời điểm cron chạy và xác nhận email được gửi đúng lịch.

VIII. Kết quả đạt được

Sau khi hoàn tất các bước trên, hệ thống sẽ:

  • Tự động kiểm tra dung lượng ổ đĩa trên Ubuntu Server.
  • Gửi báo cáo disk usage qua email theo lịch hàng tuần.
  • Giúp người quản trị chủ động theo dõi và xử lý sớm các vấn đề về lưu trữ.

Giải pháp này đơn giản, ổn định, dễ áp dụng cho nhiều server và có thể mở rộng thêm (alert khi disk > 80%, thêm CPU/RAM, thay đổi lịch cron…).

Bài viết liên quan

Hướng dẫn kiểm tra băng thông trên Linux bằng Speedtest-cli

Hướng dẫn kiểm tra băng thông trên Linux bằng Speedtest-cli, đo tốc độ download, upload và ping nhằm đánh giá hiệu suất server chính xác, nhanh chóng

Hướng dẫn cài đặt CloudPanel trên Ubuntu

Hướng dẫn cấu hình CloudPanel trên Ubuntu 22.04

Hướng dẫn cài đặt và cấu hình kết nối mysql từ xa

Hướng dẫn cài đặt và cấu hình kết nối MySQL từ xa giúp quản lý cơ sở dữ liệu thuận tiện, giúp đảm bảo khả năng truy cập linh hoạt, duy trì mức độ bảo mật cần thiết

Hướng dẫn scan virus bằng ClamAV trên Linux

Hướng dẫn scan virus bằng ClamAV trên Linux giúp phát hiện malware, kiểm tra hệ thống và tăng cường bảo mật hiệu quả.