Lệnh cron trong linux với các ví dụ dễ hiểu

Lệnh cron trong linux là một trình lập lịch tác vụ mạnh mẽ, cho phép bạn tự động hóa việc thực thi các lệnh hoặc script theo lịch trình định sẵn. Bạn có thể sử dụng cron để chạy các tác vụ hàng ngày, hàng tuần hoặc thậm chí hàng phút một cách dễ dàng. Cron rất hữu ích cho việc sao lưu dữ liệu, gửi email tự động và thực hiện các công việc bảo trì hệ thống.

Lệnh cron trong linux là gì?

Cron là một trình lập lịch công việc trong Linux, cho phép bạn tự động hóa việc thực thi các command theo lịch trình định sẵn. Bạn có thể sử dụng command cron in linux để lên lịch chạy các script, sao lưu dữ liệu, hoặc thực hiện bất kỳ tác vụ nào khác một cách tự động. Cron hoạt động dựa trên một file cấu hình gọi là crontab, nơi bạn chỉ định thời gian và lệnh cần thực thi. Việc sử dụng cron giúp tiết kiệm thời gian và công sức, đồng thời đảm bảo các tác vụ quan trọng được thực hiện đúng giờ. Hãy tưởng tượng cron như một người trợ lý ảo luôn sẵn sàng thực hiện các công việc lặp đi lặp lại cho bạn.

Tìm hiểu về Cron Service và Crontab

Trong bước này, chúng ta sẽ khám phá cron service trên Linux, một trình lập lịch công việc theo thời gian.

Chúng ta sẽ học cách xem và chỉnh sửa crontab, là file cấu hình cho các cron job.

Đầu tiên, hãy kiểm tra trạng thái của cron service bằng lệnh sau:

sudo systemctl status cron

Ví dụ về kết quả trả về:

● cron.service - Regular background program processing daemon
     Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-04-28 12:34:56 UTC; 1 day 2h ago
   Main PID: 589 (cron)
      Tasks: 1 (limit: 4915)
     Memory: 1.3M
        CPU: 1ms
     CGroup: /system.slice/cron.service
             └─589 /usr/sbin/cron -f

Kết quả cho thấy cron service đang hoạt động (active) và đang chạy (running).

Tiếp theo, hãy xem crontab hiện tại cho người dùng labex bằng lệnh sau:

crontab -l

Lệnh này sẽ liệt kê tất cả các cron job đã được lên lịch cho người dùng hiện tại.

Vì đây là một môi trường mới, crontab sẽ trống.

Để chỉnh sửa crontab, hãy chạy lệnh sau:

crontab -e

Lệnh này sẽ mở trình soạn thảo crontab, nơi bạn có thể thêm, sửa đổi hoặc xóa các entry cron job.

File crontab sử dụng một định dạng cụ thể để xác định thời điểm một job nên chạy:

* * * * * /path/to/script.sh

Năm dấu hoa thị đại diện cho các giá trị sau:

  1. Phút (0-59)
  2. Giờ (0-23)
  3. Ngày trong tháng (1-31)
  4. Tháng (1-12)
  5. Ngày trong tuần (0-6, trong đó 0 là Chủ nhật)

Bạn có thể tùy chỉnh các giá trị này để lên lịch cho các cron job theo nhu cầu.

Lên Lịch Một Cron Job Đơn Giản

Trong bước này, chúng ta sẽ tạo một cron job đơn giản để chạy script mỗi phút.

Đầu tiên, hãy tạo một script mẫu mà chúng ta sẽ lên lịch bằng cron:

nano ~/project/cron_job.sh

Thêm nội dung sau vào file:

#!/bin/bash
echo "Cron job ran at $(date)" >> ~/project/cron_output.log

Lưu lại và thoát file.

Bây giờ, hãy thêm cron job vào crontab của user labex:

crontab -e

Thêm dòng sau vào crontab:

* * * * * /home/labex/project/cron_job.sh

Dòng này sẽ chạy script cron_job.sh mỗi phút một lần.

Lưu lại và thoát trình soạn thảo crontab.

Để kiểm tra xem cron job có đang chạy không, hãy đợi một phút và kiểm tra file cron_output.log:

cat ~/project/cron_output.log

Bạn sẽ thấy output hiển thị ngày và giờ hiện tại khi cron job chạy.

Cấu hình Thông báo và Ghi nhật ký Cron

Trong bước cuối cùng này, chúng ta sẽ cấu hình cron để gửi thông báo email cho đầu ra của cron job và bật ghi nhật ký chi tiết.

Đầu tiên, hãy cài đặt gói cần thiết để bật thông báo email:

sudo apt-get update
sudo apt-get install -y mailutils

Tiếp theo, chúng ta cần cấu hình cài đặt email cho người dùng labex. Mở trình soạn thảo crontab:

crontab -e

Thêm dòng sau vào đầu tệp:

[email protected]

Điều này sẽ gửi đầu ra của bất kỳ cron job nào đến địa chỉ email đã chỉ định.

Bây giờ, hãy bật ghi nhật ký chi tiết cho dịch vụ cron. Chỉnh sửa tệp cấu hình cron:

sudo nano /etc/crontab

Tìm dòng sau:

#EXTRA_OPTS=""

Bỏ comment và thay đổi nó thành:

EXTRA_OPTS="-l 7"

Điều này sẽ đặt mức nhật ký thành 7, là mức chi tiết nhất. Lưu và thoát tệp.

Khởi động lại dịch vụ cron để áp dụng các thay đổi:

sudo systemctl restart cron

Bây giờ, bất kỳ đầu ra hoặc lỗi cron job nào sẽ được ghi vào tệp /var/log/cron.log, bạn có thể xem bằng lệnh sau:

sudo tail -n 20 /var/log/cron.log

Kết luận cho linux cron command

Vậy là bạn đã nắm được những kiến thức cơ bản về cron rồi đấy! Hy vọng hướng dẫn này giúp bạn tự động hóa các tác vụ lặp đi lặp lại một cách dễ dàng. Hãy nhớ rằng, việc sử dụng linux cron command một cách cẩn thận sẽ giúp hệ thống của bạn hoạt động trơn tru hơn. Đừng ngại thử nghiệm với các lịch trình khác nhau để tìm ra cấu hình phù hợp nhất với nhu cầu của bạn. Nếu gặp bất kỳ khó khăn nào, hãy tìm kiếm trên mạng hoặc tham khảo tài liệu chính thức của Linux. Chúc bạn thành công trên con đường tự động hóa hệ thống của mình! Hãy tận dụng sức mạnh của cron để tiết kiệm thời gian và công sức nhé. Chắc chắn bạn sẽ thấy nó vô cùng hữu ích đấy!

Last Updated : 17/10/2025