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).
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]
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ọn | Cách thức hoạt động |
---|---|
-f | Chạ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. |
-l | Cho 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. |
-n | Thê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. |
-L | Thiế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. |
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.
3 ví dụ thực tế về cách sử dụng lệnh cron trong Linux
Để 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.
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
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.
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).
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.
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.
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.
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.
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.
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.