NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
17/12/2024
Lượt xem

Lệnh cron trong Linux: Hướng dẫn thiết lập lịch trình và quản lý tác vụ tự động

17/12/2024
13 phút đọc
Lượt xem

Đánh giá

Lệnh cron trong Linux cho phép bạn lên lịch thực hiện các lệnh, script một cách tự động vào đúng thời điểm nhất định. Nhờ đó, bạn có thể tiết kiệm được nhiều thời gian và công sức. Hãy cùng Vietnix tìm hiểu chi tiết về lệnh cron và cách sử dụng thông qua các ví dụ thực tế ngay sau đây.

Những điểm chính

  • Nắm rõ lệnh cron trên Linux là gì: Khám phá cách lệnh cron giúp tự động hóa các tác vụ trên hệ thống Linux.
  • Hiểu rõ về crontab: Nắm được cách cấu hình và sử dụng tệp crontab để quản lý các tác vụ định kỳ trên Linux.
  • Khám phá 3 ví dụ thực tế về cách sử dụng lệnh cron trong Linux: Cung cấp ba ví dụ cụ thể để bạn áp dụng lệnh cron vào các tình huống thực tế.
  • Giới thiệu về Vietnix – Đối tác công nghệ chiến lược, đồng hành cùng doanh nghiệp nâng tầm quốc tế.

Lệnh cron trên Linux là gì?

Lệnh cron trong Linux hay tiện ích phần mềm là một lệnh có chức năng cho phép user lên lịch thực thi các lệnh lặp đi lặp lại trong một khoảng thời gian nhất định. Lệnh cron liên tục so sánh thời gian hiện tại với thời gian được chỉ định. Khi có sự trùng khớp, hệ thống sẽ tự động thực thi các lệnh đã được thiết lập. Tiến trình cron thường được khởi động tự động từ /etc/init.d khi hệ thống chuyển sang chế độ đa người dùng (multi-user runlevels).

Lệnh cron trong Linux là lệnh cho phép user lên lịch thực thi các lệnh lặp đi lặp lại
Lệnh cron trong Linux là lệnh cho phép user lên lịch thực thi các lệnh lặp đi lặp lại

Ví dụ: Lệnh này như một chiếc đồng hồ báo thức cho máy tính của bạn, cho phép bạn đặt lệnh nào đó chạy lặp lại theo chu kỳ (ví dụ: hàng ngày, hàng giờ, hàng tuần…). Khi đến giờ bạn đã cài đặt, cron sẽ tự động thực hiện các lệnh đó.

Cú pháp cơ bản của lệnh cron trong Linux như sau:

cron [-f] [-l] [-L loglevel]

iconLưu ý

Trong cú pháp trên, các chữ cái được thêm dấu gạch ngang “-“ trong ngoặc vuông ( [] ) đại diện cho các tuỳ chọn của lệnh cron.

Trong môi trường quản trị hệ thống Linux, việc thành thạo lệnh cron là một yêu cầu thiết yếu. Cron cho phép tự động hóa các tác vụ định kỳ, từ đó tối ưu hóa quy trình vận hành và giảm thiểu can thiệp thủ công. Để ứng dụng kiến thức đã học, việc thực hành trực tiếp trên một VPS Linux sẽ mang lại trải nghiệm thực tiễn và củng cố kỹ năng. Đối với các ứng dụng và dịch vụ đòi hỏi hiệu năng cao, VPS NVMe của Vietnix là một giải pháp đáng cân nhắc. Với tính năng tự động backup hàng tuần và toàn quyền quản trị, VPS Vietnix giúp bạn dễ dàng quản lý hệ thống mà không lo lắng về việc bảo mật hay sao lưu dữ liệu.

Các tùy chọn của lệnh cron

Lệnh cron trong Linux cung cấp một số tùy chọn để bạn có thể tùy chỉnh cách thức hoạt động. Dưới đây là một số tùy chọn thường được sử dụng:

Tùy chọnCách thức hoạt động
-fChạy lệnh cron ở chế độ foreground, không chạy nền – không daemonize. Nói đơn giản là bạn sẽ thấy quá trình cron chạy trực tiếp trên màn hình terminal.
-lCho phép sử dụng tên tuân thủ chuẩn LSB cho các file trong thư mục /etc/cron.d. Tùy chọn này chủ yếu dành cho người dùng nâng cao, bạn có thể bỏ qua nếu mới bắt đầu.
-nThêm tên miền đầy đủ (FQDN) vào tiêu đề email khi cron gửi thông báo. Nếu bạn nhận email thông báo từ cron, tùy chọn này sẽ giúp bạn biết rõ máy chủ nào đang gửi.
-LThiết lập mức độ ghi log (log level):
1: Bắt đầu ghi log cho tất cả các tác vụ cron.
2: Kết thúc ghi log cho tất cả các tác vụ cron.
4: Ghi log cho mỗi tác vụ cron thất bại (trạng thái thoát khác 0).
8: Ghi log số hiệu tiến trình (PID) của tất cả các tác vụ cron.
Tùy chọn lệnh cron

iconLưu ý

Các tùy chọn trong giao diện dòng lệnh Linux (CLI) phân biệt chữ hoa chữ thường. Bạn hãy chú ý viết chính xác.

Giới thiệu về crontab

Lệnh cron trong Linux kiểm tra file cấu hình cứ mỗi phút một lần để thực hiện các công việc đã được lên lịch trước. Lệnh sẽ đọc file crontab (cron table – bảng lịch trình cron), nơi bạn có thể lên kế hoạch cho các tác vụ lặp lại. Mỗi người dùng Linux đều có riêng một crontab để lên lịch công việc của mình.

Cú pháp cơ bản để lên lịch tác vụ trong crontab như sau:

a b c d e command

Trong đó:

  • a: Phút (Giá trị từ 0-59)
  • b: Giờ (Giá trị từ 0-23)
  • c: Ngày trong tháng (Giá trị từ 1-31)
  • d: Tháng (Giá trị từ 1-12)
  • e: Thứ trong tuần (Giá trị từ 0-7, 0 và 7 đều là Chủ nhật)
  • command: Lệnh hoặc tập lệnh cần thực thi.

Mỗi giá trị được phân cách bằng dấu cách.

Cú pháp crontab
Cú pháp crontab

Để sử dụng cron, bạn cần thêm các lệnh vào file crontab. Mặc định, tất cả người dùng đều có quyền truy cập cron. Nhưng bạn có thể thay đổi quyền truy cập bằng cách tạo mới hoặc sử dụng các file /etc/cron.allow hoặc /etc/cron.deny.

Dưới đây là 3 ví dụ thực cụ thể cách sử dụng lệnh cron trong Linux:

Ví dụ 1: Cho phép người dùng chạy tác vụ cron trên Linux

Để cấp quyền cho người dùng chạy cron job thì tên của người dùng cần được thêm vào file /etc/cron.allow hoặc /etc/cron.d/cron.allow. Như hình bên dưới là danh sách những người dùng được phân quyền chọn cron job trên máy tính.

Danh sách người dùng được phân quyền chọn cron job
Danh sách người dùng được phân quyền chọn cron job

Nếu không có file /etc/cron.allow, bạn hãy kiểm tra file /etc/cron.deny. Người dùng không được phép nằm trong file /etc/cron.deny. Nếu cả 2 tập tin trên đều không tồn tại, chỉ super user (hay quản trị viên hệ thống) mới có quyền chạy cron job. Trong trường hợp này, bạn (với quyền root) có thể tạo hoặc sửa đổi file /etc/cron.allow để cấp quyền cho những người dùng cụ thể.

Ví dụ, bạn có thể sẽ tạo file /etc/cron.allow và cấp quyền chạy tác vụ cron cho một số người dùng cụ thể như sau:

Bước 1: Mở Terminal Ubuntu.

Bước 2: Di chuyển đến thư mục /etc. Sau đó, bạn gõ lệnh sau và nhấn Enter:

sudo nano cron.allow
Di chuyển đến thư mục và gõ lệnh
Di chuyển đến thư mục và gõ lệnh

Bước 3: Nhập mật khẩu của người dùng root khi được yêu cầu.

Bước 4: Trong trình soạn thảo nano, bạn hãy nhập tên người dùng bạn muốn cấp quyền bao gồm cả người dùng root. Mỗi tên người dùng trên một dòng. Ví dụ:

root

vietnix

minecraftuser

pseudo

Bước 5: Nhấn phím CTRL+S để lưu thay đổi.

Bước 6: Nhấn phím CTRL+X để thoát trình soạn thảo.

Kết quả: 

  • Hình ảnh đầu tiên cho thấy cách tạo file “cron.allow” với quyền superuser sử dụng lệnh sudo. File này sẽ chứa danh sách những người dùng được phép chạy cron job.
  • Hình ảnh thứ hai tiếp tục sử dụng lệnh sudo để thêm tên người dùng vào file “cron.allow”. Trong ví dụ này, người dùng “vietnix” đã được cấp quyền chạy lệnh crontab, đồng nghĩa với việc họ có thể lên lịch và chạy cron job.
File chứa danh sách người dùng
File chứa danh sách người dùng
cap quyen chay lenh crontab
Cấp quyền chạy lệnh crontab

Ví dụ 2: Từ chối người dùng chạy tác vụ cron trên Linux

Để ngăn chặn một người dùng nào đó chạy cron job trên máy tính của bạn. Khá đơn giản, bạn chỉ cần thêm tên người dùng đó vào file /etc/cron.deny. Nếu file này chưa tồn tại, bạn có thể tạo ra file này. Trong ví dụ này, chúng ta sẽ tạo file /etc/cron.deny để ngăn người dùng “minecraftuser” chạy tác vụ cron. Bạn thực hiện 6 bước như sau:

Bước 1: Mở Terminal Ubuntu.

Bước 2: Di chuyển đến thư mục /etc. Sau đó, bạn gõ lệnh sau và nhấn Enter:

sudo nano cron.deny

Bước 3: Nhập mật khẩu của người dùng root khi được yêu cầu.

Bước 4: Trong trình soạn thảo nano, bạn nhập tên người dùng bạn muốn chặn.

minecraftuser

Bước 5: Nhấn phím CTRL+S để lưu thay đổi.

Bước 6: Nhấn phím CTRL+X để thoát trình soạn thảo.

Kết quả: Hình ảnh đầu tiên cho thấy file “cron.deny” đã được tạo với quyền superuser (sudo).

File cron.deny được tạo với quyền superuser
File cron.deny được tạo với quyền superuser

Tiếp theo, hình ảnh thứ 2 cho thấy tên người dùng “minecraftuser” đã được thêm vào file, không quyền chạy cron job.

Người dùng đã được thêm vào file
Người dùng đã được thêm vào file

Kết quả là trong hình ảnh thứ 3, hiện dòng thông báo người dùng “minecraftuser” không thể chạy lệnh crontab.

Hiển thị thông báo người dùng không thể chạy lệnh crontab
Hiển thị thông báo người dùng không thể chạy lệnh crontab

Ví dụ 3: Lên lịch chạy tác vụ tự động trên Linux với lệnh cron

Trong ví dụ này, chúng ta sẽ ghi lại thời gian mỗi phút trôi qua vào một file nhật ký có tên “time.log”. Để làm điều này, chúng ta sẽ sử dụng lệnh echo để trả về ngày và giờ hiện tại, sau đó chuyển hướng kết quả vào file mong muốn. Dưới đây là 5 bước thực hiện:

Bước 1: Mở Terminal Ubuntu.

Bước 2: Gõ lệnh sau và nhấn Enter:

crontab -e

Bước 3: Thêm dòng lệnh sau vào cuối file crontab được mở trong trình soạn thảo:

* *   *   *   *   echo "1 Minute passed! Date & Time: $(date)" >> time.log

Bước 4: Nhấn phím CTRL+S để lưu thay đổi.

Bước 5: Nhấn phím CTRL+X để thoát trình soạn thảo.

Kết quả: Trong hình bên dưới, bạn có thể thấy chúng ta đã sử dụng lệnh crontab -e để thêm một tác vụ mới vào crontab. Lệnh này sẽ mở một trình soạn thảo văn bản, cho phép bạn nhập lệnh hoặc script cần thực thi cùng với định dạng thời gian thực hiện.

Mở trình soạn thảo và nhập lệnh
Mở trình soạn thảo và nhập lệnh

Hình ảnh thứ 2 cho thấy tất cả các trường thời gian đều được đặt là dấu sao *, đại diện cho mọi giá trị có thể có trong mỗi trường. Trường phút có phạm vi từ 0 đến 59, do đó, dấu sao * sẽ khiến tác vụ được thực thi mỗi phút một lần. Sau khi lưu file cấu hình và thoát khỏi trình soạn thảo, hệ thống sẽ hiển thị thông báo xác nhận như trong hình ảnh đầu tiên.

Thêm lệnh để lên lịch
Thêm lệnh để lên lịch

iconLưu ý

Bạn có thể xem kết quả của công việc gần đây nhất bằng cách chạy lệnh tail trên file time.log.

Kết quả chạy lệnh tail
Kết quả chạy lệnh tail

Vietnix – Đối tác công nghệ chiến lược, đồng hành cùng doanh nghiệp nâng tầm quốc tế

Với hơn một thập kỷ kinh nghiệm vững vàng trong ngành công nghệ, Vietnix tự hào là đơn vị tiên phong cung cấp các giải pháp công nghệ đột phá giúp doanh nghiệp phát triển mạnh mẽ. Vietnix vinh dự nhận giải thưởng Top 10 The Best of Vietnam 2023 – Thương hiệu hàng đầu Việt Nam 2023, khẳng định chất lượng và cam kết đối với khách hàng.

Vietnix cung cấp các giải pháp VPS với tốc độ cao, bảo mật mạnh mẽ và ổn định vượt trội. Đặc biệt, Vietnix hỗ trợ đa dạng hệ điều hành và cung cấp dịch vụ hỗ trợ 24/7, giúp bạn luôn an tâm và tối ưu hóa hiệu suất công việc mọi lúc, mọi nơi.

Thông tin liên hệ:

  • Hotline: 18001093
  • Email: sales@vietnix.com.vn 
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Website: https://vietnix.vn/

Bài viết trên đã cung cấp những thông tin liên quan đến lệnh cron trong Linux, cách sử dụng và các ví dụ để áp dụng trong thực tế. Hy vọng những thông tin này sẽ giúp bạn tận dụng tối đa khả năng tự động hóa các tác vụ bằng cron, nâng cao hiệu suất và tiết kiệm thời gian trong công việc của mình.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

PHẦN CỨNG MẠNH MẼ

HỖ TRỢ 24/7

ĐĂNG KÝ NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG