Hướng dẫn toàn diện về Cron Job năm 2023 cho người mới bắt đầu (Phần 1)
Trong bài Hướng dẫn toàn diện về Cron Job cho người mới bắt đầu 2023 dưới đây của FUNiX, các bạn sẽ được tìm hiểu những kiến thức cơ bản về cron job bao gồm khái niệm, phân loại, cú pháp, các quyền (permissions) và các chuỗi (strings) đặc biệt của chúng.
Table of Contents
>> Khóa học Lập trình Web Front-End với React
Lịch trình cron job cho phép người dùng tự động hóa các tác vụ trên máy chủ lưu trữ VPS (Virtual Private Server) hoặc bất kỳ hệ điều hành nào giống với Unix. Việc này sẽ giúp người dùng tiết kiệm thời gian để tập trung vào các công việc thiết yếu khác.
1. Cron Job là gì?
Cron là một chương trình tiện ích cho phép người dùng nhập vào các lệnh với mục đích lên lịch trình cho các task lặp đi lặp lại tại một thời điểm cụ thể. Các job được lên lịch trình trong cron được gọi là cron job. Người dùng có thể xác định được các task họ muốn tự động hóa là gì và thời gian nó nên được thực thi là khi nào.
Cron là một daemon – một quy trình nền giúp thực thi các công việc không tương tác. Trong Windows, chúng ta có thể quen thuộc với một số quy trình nền hoạt động tương tự như daemon cron, ví dụ như Services.
Daemon luôn ở chế độ idle và chỉ thực hiện một task cụ thể khi có lệnh yêu cầu. Lệnh có thể được nhập trên bất kỳ máy tính nào trong hệ thống mạng.
File cron là một file văn bản đơn giản chứa các lệnh chạy định kỳ tại một thời điểm cụ thể. Bảng cron hệ thống hoặc file cấu hình crontab mặc định sẽ là /etc/crontab, đặt trong thư mục crontab là /etc/cron.*/ .
Chỉ có quản trị viên hệ thống mới có thể chỉnh sửa file crontab hệ thống. Tuy nhiên, hệ điều hành giống Unix có thể hỗ trợ được cho nhiều quản trị viên. Mỗi người đều có thể tạo một file crontab và viết các lệnh để thực hiện công việc bất cứ khi nào họ muốn.
Với cron job, người dùng có thể tự động bảo trì hệ thống, giám sát dung lượng ổ đĩa và lên lịch sao lưu. Bản chất của cron job sẽ rất phù hợp cho các máy tính hoạt động 24/7 chẳng hạn như server.
Mặc dù cron job được sử dụng chủ yếu bởi các quản trị viên hệ thống, nhưng chúng cũng có thể có lợi cho các nhà lập trình web.
Ví dụ: Với tư cách là quản trị viên trang web, bạn có thể thiết lập để một cron job tự động sao lưu trang web hàng ngày vào lúc nửa đêm, một job khác để kiểm tra các liên kết bị hỏng vào lúc nửa đêm của ngày thứ hai hàng tuần, và một job thứ ba để xóa bộ nhớ cache trang web của bạn vào mỗi trưa thứ Sáu.
Hạn chế của Cron
Cũng như bất kỳ một chương trình nào khác, cron cũng có những hạn chế mà bạn nên cân nhắc trước khi sử dụng:
- Khoảng thời gian ngắn nhất giữa các job là 60 giây, nên bạn sẽ không thể lặp lại một job trong vòng 59 giây trở lại.
- Cron job chỉ tập trung cho một máy tính chứ không thể được phân phối cho nhiều máy tính trên hệ thống mạng. Vì vậy, nếu máy tính đang chạy cron bị treo, các task đã lên lịch trình sẽ không được thực hiện và các job bị bỏ lỡ sẽ chỉ có thể được chạy bằng cách thủ công.
- Không có cơ chế tự động thử lại: Cron được thiết kế để chạy vào những thời điểm được chỉ định chặt chẽ. Nên nếu một task không thành công, nó sẽ không chạy lại cho đến thời điểm tiếp theo trong lịch trình. Điều này làm cho cron không thích hợp cho các task gia tăng.
Với những hạn chế trên, cron là một giải pháp tuyệt vời cho các task đơn giản, chạy tại một thời điểm cụ thể với khoảng thời gian đều đặn ít nhất là 60 giây.
Mẹo hay: Trước khi tạo Cron job, hãy đảm bảo rằng tập lệnh của bạn hoạt động bằng cách hãy mở file trong trình duyệt (bằng URL) hoặc thực thi nó qua SSH (Secure Socket Shell), tùy vào loại tập lệnh bạn có. Nếu tập lệnh không hoạt động, hãy liên hệ với lập trình viên để được trợ giúp.
>>> Xem thêm: Top 20 ngôn ngữ lập trình tốt nhất để học bạn nên biết – Phần 1
2. Những hoạt động cơ bản của Cron Job
Hướng dẫn dưới đây sẽ chỉ cho bạn cách lên lịch cron job bằng cách nhập các lệnh vào một chương trình shell như Bash trên Linux, hoặc một hệ điều hành giống Unix.
Trước khi tìm hiểu tiếp tục về các hoạt động cơ bản của cron, bạn cần nắm được các file cấu hình cron job khác nhau, bao gồm:
- Crontab hệ thống: Sử dụng nó để lên lịch trên toàn hệ thống, cho các job thiết yếu mà chỉ có thể được thay đổi với đặc quyền root.
- Crontab người dùng: File này cho phép người dùng tạo và chỉnh sửa các cron job, chỉ áp dụng ở cấp độ người dùng.
Nếu muốn chỉnh sửa crontab hệ thống thì người dùng phải có đặc quyền root.
Sau đây là một số hoạt động cơ bản mà cron có thể thực hiện:
Để tạo hoặc chỉnh sửa file crontab, hãy nhập thông tin sau vào dòng lệnh:
crontab -e
Nếu bạn không tìm thấy file crontab nào trong hệ thống, lệnh sẽ tự động tạo một file mới. Crontab -e cho phép chúng ta thêm, chỉnh sửa và xóa cron job.
Sử dụng một trình soạn thảo văn bản như vi hoặc nano để chỉnh sửa file crontab. Khi nhập crontab -e lần đầu tiên, bạn sẽ nhận được yêu cầu lựa chọn trình soạn thảo văn bản muốn sử dụng để chỉnh sửa file.
Nếu muốn xem danh sách các task đã lên lịch trong hệ thống, hãy nhập lệnh sau:
crontab -l
Nếu hệ thống có nhiều người dùng, bạn có thể xem danh sách file crontab của họ bằng cách nhập lệnh sau:
crontab -u username -l
Bạn cũng có thể dễ dàng chỉnh sửa job đã lên lịch của người dùng khác bằng cách nhập lệnh crontab sau:
sudo su crontab -u username -e
Để tự cấp cho mình đặc quyền root, bạn hãy thêm sudo su vào đầu lệnh. Một số lệnh chỉ có người dùng root có thể thực thi.
Để xóa tất cả các task đã lên lịch trong file crontab và bắt đầu làm mới, bạn hãy nhập lệnh sau:
crontab -r
Ngoài ra, dòng lệnh dưới đây cũng giống với crontab -r , tuy nhiên nó sẽ xuất hiện một nhắc nhở để người dùng lựa chọn yes/no trước khi xóa crontab:
crontab -i
Ngoài crontab, người dùng root cũng có thể thêm cron job đến thư mục etc/cron.d. Nó phù hợp nhất để chạy các tập lệnh được cài đặt và cập nhật tự động.
>>> Xem thêm: Review khóa học trực tuyến FUNiX FPT đang được nhiều bạn trẻ lựa chọn
Lưu ý rằng người dùng thêm cron job vào thư mục này phải có quyền truy cập root và tuân thủ các quy ước đặt tên của run-part.
Ngoài ra, người dùng root có thể di chuyển các tập lệnh của họ vào các thư mục sau để lên lịch thực thi:
- /etc/cron.hourly/ – Chạy tất cả các tập lệnh mỗi giờ một lần.
- /etc/cron.daily/ – Chạy mỗi ngày một lần.
- /etc/cron.weekly/ – Chạy mỗi tuần một lần.
- /etc/cron.monthly/ – Chạy mỗi tháng một lần.
Trong bài viết trên, FUNiX vừa giới thiệu cho các bạn về khái niệm và các hoạt động cơ bản của cron job. Tiếp tục tìm hiểu về cú pháp, các chuỗi đặc biệt và quyền của Cron trong bài viết tiếp theo nhé.
Bài tham khảo: https://www.hostinger.com/tutorials/cron-job
>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:
Đại học trực tuyến? Tại sao nên chọn học đại học trực tuyến thay vì đại học offline?
5 điều có thể bạn chưa biết về học lập trình trực tuyến FUNiX
Review khóa học trực tuyến FUNiX FPT đang được nhiều bạn trẻ lựa chọn
FUNiX đào tạo lập trình trực tuyến cung cấp nhân sự tập đoàn FPT
5 Điểm đáng chú ý tại khóa học lập trình trực tuyến FPT – FUNiX
Phạm Thị Thanh Ngọc (theo Hostinger )
Bình luận (0
)