Hướng Dẫn Tạo Cron Job Trên Máy Chủ VPS Linux Chi Tiết

Tiện ích phần mềm cron (còn được gọi là cron job) là một bộ lập lịch công việc dựa trên thời gian trong hệ điều hành máy tính giống Unix. 

Người dùng thiết lập và duy trì môi trường phần mềm sử dụng cron để lập lịch công việc để chạy định kỳ vào những thời điểm, ngày tháng hoặc khoảng thời gian cố định. Nó thường tự động hóa việc bảo trì hoặc quản trị hệ thống — mặc dù bản chất mục đích chung của nó làm cho nó hữu ích cho những việc như tải tệp xuống từ Internet và tải xuống email định kỳ.

Dịch vụ hosting chuyên nghiệp, băng thông không giới hạn. Đăng ký tư vấn ngay

hotline công ty Tùng Phát
hotline công ty Tùng Phát

1. Cron phù hợp nhất để lập lịch cho các công việc lặp đi lặp lại

Có thể sử dụng cron job cho những việc như:

  • Tự động tạo và gửi hóa đơn cho khách hàng qua email cho các dịch vụ đăng ký. 
  • Hủy kích hoạt các tài khoản khách hàng không hoạt động trong một thời gian dài. 
  • Chạy một API email (Giao diện lập trình ứng dụng) để gửi bản tin cho người đăng ký. 
  • Áp dụng các hình phạt đối với những người không trả được nợ nếu ngày thanh toán khoản vay không được thực hiện.
Cron job phù hợp cho các công việc lặp đi lặp lai

Cron là một daemon, có nghĩa là nó chỉ cần được khởi động một lần và sẽ nằm im cho đến khi nó được yêu cầu. Máy chủ Web là một daemon, nó không hoạt động cho đến khi nó được yêu cầu cho một trang web. Daemon cron, hay còn gọi là cron , không hoạt động cho đến một thời điểm được chỉ định trong một trong các tệp cấu hình hoặc crontabs.

Xem thêm: Tìm hiểu các kiến thức về VPS.

2. Crontab là gì?

Crontab linux là một tệp chứa lịch trình của các mục cron sẽ được chạy và vào những thời điểm cụ thể. Vị trí tệp khác nhau tùy theo hệ điều hành.

Hạn chế của Crontab là bạn có thể thực thi crontab nếu tên của bạn xuất hiện trong tệp /usr/lib/cron/cron.allow. Nếu tệp đó không tồn tại, bạn có thể sử dụng crontab nếu tên của bạn không xuất hiện trong tệp /usr/lib/cron/cron.deny. Nếu chỉ có cron.deny tồn tại và trống, tất cả người dùng đều có thể sử dụng crontab. Nếu cả hai tệp đều không tồn tại, chỉ người dùng root mới có thể sử dụng crontab. Các tệp cho phép / từ chối bao gồm một tên người dùng trên mỗi dòng.

Crontab là gì?

3. Lệnh Crontab 

export EDITOR = vi; để chỉ định một trình soạn thảo để mở tệp crontab. 

crontab -e     Chỉnh sửa tệp crontab hoặc tạo một tệp nếu nó chưa tồn tại. 

crontab -l    crontab danh sách các cronjobs, hiển thị nội dung tệp crontab. 

crontab -r    Xóa tệp crontab của bạn. 

crontab -v    Hiển thị lần cuối cùng bạn chỉnh sửa tệp crontab của mình. (Tùy chọn này chỉ khả dụng trên một số hệ thống.)

Nếu bạn chưa biết cách tạo VPS hãy xem qua bài viết Cách cài đặt VPS bạn đã biết chưa?

4. Cách tạo cron job trên vps linux

Cách tạo cron jobs trên vps linux

Trên hầu hết các bản phân phối Linux, cron được tự động cài đặt và nhập vào các kịch bản khởi động. Để tìm hiểu xem nó có đang chạy hay không, hãy làm như sau: 

cog@pingu $ ps aux | grep crond

root       311  0.0  0.7  1284  112 ?        S    Dec24   0:00 crond

cog       8606  4.0  2.6  1148  388 tty2     S    12:47   0:00 grep crond

Dòng trên cho thấy rằng crond đang chạy, dòng dưới cùng là tìm kiếm chúng tôi chỉ chạy. 

Nếu nó không chạy thì bạn đã giết nó kể từ lần cuối cùng bạn khởi động lại, hoặc nó đã không được bắt đầu.

Để bắt đầu, chỉ cần thêm đường cắt vào một trong các tập lệnh khởi động của bạn. Các quy trình tự động đi vào nền tảng phía sau, vì vậy bạn không cần phải ép buộc nó với  Cron sẽ được khởi động vào lần sau khi bạn khởi động lại. Để chạy nó mà không cần khởi động lại, chỉ cần gõ crond as root:

root @ pingu # crond

Với rất nhiều daemon, (ví dụ: httpd và syslogd) chúng cần được khởi động lại sau khi các tệp cấu hình đã được thay đổi để chương trình có cơ hội tải lại chúng. Vixie Cron sẽ tự động tải lại các tệp sau khi chúng đã được chỉnh sửa bằng lệnh crontab . Một số phiên bản cron tải lại tệp mỗi phút và một số yêu cầu khởi động lại, nhưng Vixie Cron chỉ tải tệp nếu chúng đã thay đổi.

Xem thêm: VPS LINUX LÀ GÌ VÀ CÓ ĐẶC ĐIỂM GÌ RIÊNG BIỆT?

5. Sử dụng cron job

5.1. Có một số cách khác nhau để sử dụng cron

sử dụng cron jobs

Trong thư mục / etc, bạn có thể sẽ tìm thấy một số thư mục con được gọi là ‘ cron.hourly ‘, ‘ cron.daily ‘, ‘ cron.weekly ‘ và ‘ cron.monthly ‘. Nếu bạn đặt một tập lệnh vào một trong những thư mục đó, nó sẽ được chạy hàng giờ, hàng ngày, hàng tuần hoặc hàng tháng. 

Nếu bạn muốn linh hoạt hơn mức này, bạn có thể chỉnh sửa crontab (tên cho các tệp cấu hình của cron). Tệp cấu hình chính thường là / etc / crontab . Trên bản cài đặt RedHat mặc định, tạo crontab trên Linux sẽ trông giống như sau:

root@pingu # cat /etc/crontab 

SHELL=/bin/bash 

PATH=/sbin:/bin:/usr/sbin:/usr/bin 

MAILTO=root 

HOME=/ 

# run-parts 

01 * * * * root run-parts /etc/cron.hourly 

02 4 * * * root run-parts /etc/cron.daily 

22 4 * * 0 root run-parts /etc/cron.weekly 

42 4 1 * * root run-parts /etc/cron.monthly

5.2. Phần đầu tiên gần như tự giải thích nó đặt các biến cho cron job

  • SHELL là cron ‘shell’ chạy dưới. Nếu không được chỉ định, nó sẽ mặc định là mục nhập trong tệp / etc / passwd . 
  • PATH chứa các thư mục sẽ nằm trong đường dẫn tìm kiếm cron. 
  • MAILTO là người nhận kết quả đầu ra của mỗi lệnh qua đường bưu điện. Nếu một lệnh cron đang chạy có đầu ra (ví dụ: báo cáo trạng thái hoặc lỗi), cron sẽ gửi email đầu ra cho bất kỳ ai được chỉ định trong biến này. Nếu không có ai nếu được chỉ định, thì đầu ra sẽ được gửi qua thư cho chủ sở hữu của quá trình tạo ra đầu ra. 
  • HOME là thư mục chính được sử dụng cho cron. Nếu không được chỉ định, nó sẽ mặc định là mục nhập trong tệp / etc / passwd.

5.3. Bây giờ là phần thứ hai phức tạp hơn của tệp crontab.

nhập crontab

Một mục nhập trong cron được tạo thành từ một loạt các trường, giống như tệp / etc / passwd , nhưng trong crontab, chúng được phân tách bằng dấu cách.

Xem thêm: HƯỚNG DẪN DÙNG REMOTE DESKTOP ĐỂ SỬ DỤNG VPS WINDOWS

5.3.1. Có bảy trường trong một mục nhập

minute hour dom month dow user cmd

Các trường là:

  • minute : nằm trong khoảng từ ‘0’ đến ’59’ 
  • hour : điều này kiểm soát giờ lệnh sẽ chạy và được chỉ định trong đồng hồ 24 giờ, các giá trị phải nằm trong khoảng từ 0 đến 23 dom: đây là Ngày trong tháng, mà bạn muốn lệnh chạy vào, ví dụ: chạy một lệnh vào ngày 19 của mỗi tháng, các dom sẽ là 19. 
  • month: này là tháng một lệnh quy định sẽ chạy trên, nó có thể được xác định bằng số (0-12), hoặc như tên của tháng (ví dụ May) 
  • dow: đây là Ngày trong tuần mà bạn muốn một lệnh được chạy, nó cũng có thể là số (0-7) hoặc là tên của ngày (ví dụ: sun). 
  • user: đây là người dùng chạy lệnh. 
  • cmd: đây là lệnh mà bạn muốn chạy. Trường này có thể chứa nhiều từ hoặc khoảng trống.
các trường nhập

5.3.2. Nếu bạn không muốn chỉ định giá trị cho một trường, chỉ cần đặt dấu * vào trường.

Ví dụ: 

01 * * * * root echo “Lệnh này được chạy một phút sau mỗi giờ” 

17 8 * * * root echo “Lệnh này được chạy hàng ngày lúc 8:17 sáng” 

17 20 * * * root echo “Lệnh này là chạy hàng ngày lúc 8:17 tối ” 

00 4 * * 0 root echo” Lệnh này được chạy vào 4 giờ sáng Chủ nhật hàng tuần ” 

42 4 1 * * root echo” Lệnh này được chạy 4:42 sáng mỗi ngày 1 của tháng ” 

01 * 19 07 * root echo” Lệnh này được chạy hàng giờ vào ngày 19 tháng 7 “

Xem thêm Tim hiều về VPS Viettel và những dịch vụ tiện ích

Trên đây Tùng Phát đã hướng dẫn các bạn việc thiết lập cron job trên VPS Linux. Giúp bạn lên lịch tự động cho một công việc, tránh việc bạn có thể bỏ lỡ nhiệm vụ đúng thời hạn. Cron job là một giải pháp hữu hiệu để quản lý các công việc với tư cách là nhà phát triển web hay quản trị viên hệ thống. Sử dụng đúng thời điểm và đúng lệnh là tất cả những việc bạn cần phải làm.

5 1 vote
Article Rating
Đăng ký
Notify of
guest
0 Comments
Inline Feedbacks
Xem tất cả các bình luận
CSKH 24/7: 028.7776.8789
Email hỗ trợ:
0
Would love your thoughts, please comment.x
()
x
188Bet 1XBet 22bet 388Bet 3IN1BET 8live AE888 Bet88 aff68 bong88