• About
  • Advertise
  • Privacy & Policy
  • Contact
NQ NEWS
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
NQ NEWS
No Result
View All Result
Home Kiến thức tổng hợp

Cron job là gì ? Thực hành cơ bản với các lệnh cron job

@admiz by @admiz
11/05/2021
in Kiến thức tổng hợp
0
Cron Job Là Gì ? Thực Hành Cơ Bản Với Các Lệnh Cron Job 609a061204f91.png

Cron Job là gì? Cron Job có thể khiến các bạn tiết kiệm được thời gian để xử lý những tác vụ tự động. Trong bài viết này, NQ News Cloud sẽ chia sẽ cho các bạn hiểu được khái niệm của Cron Job và cách sử dụng.  

Cron job là gì? 

Cron job là một lệnh Linux dùng để lên kế hoạch cho một nhiệm vụ sẽ được thực thi trong tương lai. Thông thường, lệnh sẽ được sử dụng để lên lịch định kỳ cho một tác vụ – ví dụ, thực hiện gửi thông báo mỗi sáng. Một số tập lệnh, chẳng hạn như Drupal, WHMCS có thể sẽ yêu cầu bạn thiết lập một cron job để thực hiện một số chức năng nhất định.

>> Tham khảo thêm:  Hệ điều hành Linux là gì? Ưu điểm và nhược điểm của HĐH Linux” data-rel=”follow”>Hệ điều hành Linux là gì? Ưu điểm và nhược điểm của HĐH Linux

Với phần lớn các cron job, có ba thành phần hiện hữu như sau:

1. Script (kịch bản lệnh) được gọi hoặc được thực hiện.

2. Command (Câu lệnh) thực thi script trên cơ sở reoccurring. Thao tác này thường được thiết lập trong cPanel.

3. Các hoạt động hoặc đầu ra/output của script, phụ thuộc vào những gì script được gọi ra và thực thi. Thông thường, các script được gọi là cron job sẽ sửa đổi các tệp hoặc các cơ sở dữ liệu; tuy nhiên chúng cũng có thể thực hiện các tác vụ khác không bao gồm sửa đổi dữ liệu trên máy chủ, như gửi thông báo qua email chẳng hạn.

Hầu hết các script yêu cầu sử dụng cron job sẽ cung cấp các hướng dẫn cụ thể để bạn biết cần phải thiết lập những gì với các ví dụ thường xuyên được đưa ra.

Cách thêm và xóa cron job trong cPanel

>> Dừng lại 1 chút nếu bạn chưa biết:  cPanel là gì? Hướng dẫn trình quản lý hosting cPanel cho người mới bắt đầu” data-rel=”follow”>cPanel là gì? Hướng dẫn trình quản lý hosting cPanel cho người mới bắt đầu

Thêm 1 cron job

Bạn có thể chọn để nhận email mỗi khi 1 cron job chạy 1 command bằng cách gán địa chỉ email của bạn vào trường Email trong page công cụ. Nếu bạn không muốn nhận email cho mỗi cron job, sử dụng lệnh sau để chuyển hướng đầu ra của cron job đến / dev / null:

your_command_here >/dev/null 2>&1

Cron job là gì ? Thực hành cơ bản với các lệnh cron job - Ảnh 1.

Tiếp theo, chọn tần suất chạy cho lệnh, bạn chọn một tùy chọn trong mỗi box hoặc chọn khoảng thời gian đẫ xác định trước từ menu Common Settings.

Sau đó, thêm lệnh mà bạn muốn thực thi trong trường Command và nhấn nút Add New Cron Job.

Cron job là gì ? Thực hành cơ bản với các lệnh cron job - Ảnh 2.

Xóa 1 cron job

Khi một cron job không còn cần thiết, bạn nên xóa cron job đó để lệnh không tiếp tục chạy nữa. Để thực hiện xóa, bạn nhấp vào nút Delete bên cạnh mục nhập lệnh mong muốn.

Cron job là gì ? Thực hành cơ bản với các lệnh cron job - Ảnh 3.

Thực hành cơ bản với các lệnh cron job

Sau đây là một số lệnh thực hành cơ bản nhất khi làm việc với cron job.

Lên lịch nhiệm vụ với cron job

Cú pháp lệnh:

Dưới đây là 1 cron job đơn giản:

/usr/bin/php /www/virtual/username/cron.php > /dev/null 2>&1

Có 2 phần chính trong lệnh trên:

1. Phần đầu tiên là “10 * * * *“. Đây là bước thiết lập thời gian.

2. Phần còn lại của câu lệnh là dòng lệnh sử dụng để chạy.

Có 3 phần trong dòng lệnh như sau:

1. “/usr/bin/php“. PHP script sẽ không không tự thực thi lệnh, bởi vậy ta cần chạy lệnh thông qua PHP parser (Trình phân tích cú pháp PHP).

2. “/www/virtual/username/cron.php“. Đường dẫn đến script.

3. “> /dev/null 2>&1“. Phần này sẽ xử lý đầu ra của script/

Cú pháp đặt thông số thời gian

Đây là phần đầu tiên trong chuỗi cron job trong lệnh cron job phía trên. Phần này xác định tần suất và thời điểm cron job sẽ chạy.

Trong phần lệnh này bao gồm 5 yếu tố:

1. Phút chạy

2. Giờ chạy

3. Ngày chạy trong tháng

4. Tháng chạy

5. Ngày trong tuần

Hình ảnh minh họa như sau:

Cron job là gì ? Thực hành cơ bản với các lệnh cron job - Ảnh 4.

Dấu sao

Các dấu hoa thị hay dấu sao (*) sẽ xuất hiện khá thường xuyên thay vì một chữ số cụ thể. Điều này tương ứng với tất cả các số có thể cho vị trí đó. Ví dụ, dấu sao ở vị trí phút có nghĩa là lệnh sẽ chạy mỗi phút.

Bạn xem một số ví dụ sau đây để hiểu về cách thức hoạt động của cú pháp này.

Ví dụ:

– Cron job này sẽ chạy mỗi phút toàn thời gian:

1

* * * * * [command]

– Cron job này sẽ chạy bắt đầu từ phút 0, mỗi giờ (tức là một công việc định kỳ hàng giờ):

1

0 * * * * [command]

– Lệnh sau cũng là một cron job định kỳ hàng giờ nhưng thay vào đó sẽ bắt đầu vào phút thứ 15 (00:15, 01:15, 02:15…)

1

15 * * * * [command]

– Lệnh sẽ chạy một lần một ngày, lúc 2:30 sáng:

1

30 2 * * * [command]

– Lệnh sẽ chạy mỗi tháng một lần, vào ngày thứ hai của tháng và bắt dầu vào nửa đêm (tức là ngày 2 tháng 1 lúc 12:00 sáng, ngày 2 tháng 2 12:00 sáng, …):

1

0 0 2 * * [command]

– Lệnh sẽ chạy vào các ngày Thứ Hai, mỗi giờ (tức là 24 lần trong một ngày, nhưng chỉ vào các ngày Thứ Hai):

1

0 * * * 1 [command]

– Bạn có thể sử dụng nhiều số được phân tách bằng dấu phẩy. Lệnh sau sẽ chạy ba lần mỗi giờ, ở phút 0, 10 và 20:

1

0,10,20 * * * * [command]

– Dấu gạch chéo cũng dowcj sử dụng trong lệnh. Lệnh sau sẽ chạy 12 lần mỗi giờ, tức là cứ 5 phút một lần:

1

*/5 * * * * [command]

– Dấu gạch ngang sẽ được sử dụng để chỉ định một phạm vi. Lệnh sau sẽ chạy một lần mỗi giờ từ 5:00 sáng đến 10:00 sáng:

1

0 5-10 * * * [command]

– Ngoài ra còn có một từ khóa đặc biệt sẽ cho phép bạn chạy một cron job mỗi khi máy chủ được khởi động lại:

1

@reboot [command]

Chỉnh sửa crontab

Khi chạy lệnh sau sẽ khởi động vi (trình soạn thảo văn bản) và cho phép chỉnh sửa nội dung của crontab:

1

crontab -e

Như vậy, bạn sẽ được làm quen với các lệnh vi cơ bản vì nó hoàn toàn khác so với bất kỳ trình soạn thảo văn bản nào khác mà bạn có thể đã từng làm việc.

Nếu bạn chỉ muốn xem crontab hiện tại mà không cần chỉnh sửa, bạn có thể chạy lệnh sau:

1

crontab -l

Để xóa nội dung trong crontab:

1

crontab -r

Tải file

Bạn có thể viết tất cả các cron job vào một file và sau đó đẩy nó vào crontab:

1

crontab cron.txt

Tuy nhiên bạn nên cẩn thận với thao tác này, bởi có thể lệnh sẽ ghi đè lên tất cả các cron job hiện có với nội dung của file này mà không có bất kỳ cảnh báo nào.

Comments/Nhận xét

Bạn có thể thêm nhận xét sau ký tự #.

1

2

# This cron job does something very important

10 * * * * /usr/bin/php /www/virtual/username/cron.php > /dev/null 2>&1

Thiết lập Email

Như đã nói, theo mặc định đầu ra từ các crons sẽ được gửi qua e-mail, trừ khi bạn loại bỏ chúng hoặc chuyển hướng chúng đến một file. Cài đặt MAILTO cho phép bạn đặt hoặc thay đổi địa chỉ email gửi tới:

1

2

3

MAILTO=”username@example.com”

# This cron job does something very important

10 * * * * /usr/bin/php /www/virtual/username/cron.php > /dev/null 2>&1

Sử dụng PHP parser

CGI script sẽ được thực thi theo mặc định, nhưng PHP script thì không. Chúng cần chạy thông qua trình phân tích cú pháp PHP. Đó là lý do tại sao cần phải đặt đường dẫn đến trình phân tích cú pháp trước đường dẫn của tập lệnh.

1

* * * * * /usr/bin/php [path to php script]

Đôi khi đó có thể là một địa chỉ khác như: “/ usr / local / bin / php“. Để tìm hiểu, bạn có thể thử chạy dòng lệnh:

1

which php

Xử lý output

Nếu bạn không xử lý output của tập lệnh cron, chúng sẽ được gửi đi dưới dạng e-mail đến tài khoản người dùng của bạn trên máy chủ.

Loại bỏ output

Nếu bạn thêm “> /dev/null 2>&1” vào phần cuối câu lệnh cron job (hoặc bất cứ câu lệnh nào), output sẽ được loại bỏ.

Dấu đóng (>) được sử dụng để chuyển hướng output. “/ dev / null” được xem như một “hố đen”. Bất cứ thành phần nào ở trong đó đều được hệ thống bỏ qua.

Phần “2> & 1” gây ra chuyển hướng (lỗi) STDERR output đến STDOUT (bình thường) output. Vậy nên nó cũng nằm trong “/ dev / null“.

Xuất ra 1 file

Để lưu trữ cron job trên 1 file, tiếp tục sử dụng dấu đóng (>).

1

10 * * * * /usr/bin/php /www/virtual/username/cron.php > /var/log/cron.log

Như vậy  file output sẽ được viết lại mỗi lần. Nếu bạn muốn nối output ở cuối tệp thay vì viết lại hoàn toàn, sử dụng dấu ngoặc kép (>>) thay vào đó:

1

10 * * * * /usr/bin/php /www/virtual/username/cron.php >> /var/log/cron.log

Script có thể thực thi

Thông thường, bạn sẽ cần xác định trình phân tích cú pháp khi bất đầu câu lệnh nhưng trên thực tế bẫn có cách để PHP script có thể thực thi từ dòng lệnh như 1 CGI script.

Bạn cần thêm đường dẫn vào trình phân tích cú pháp làm dòng đầu tiên của script:

Ngoài ra hãy chắc chắn để thiết lập chmod thích hợp (như 755) để tập tin có thể thực thi được.

Cron job là gì ? Thực hành cơ bản với các lệnh cron job - Ảnh 5.

Khi bạn đã có script có thể thực thi được, cron job có thể chỉ gắn gọn như sau

1

10 * * * * /www/virtual/username/hello.php

Ngăn chặn các xung đột cron job

Trong một số trường hợp, bạn có thể chạy một vài cron job thường xuyên và bạn sẽ không muốn những cron job này xung đột với nhau nếu chúng mất nhiều thời gian để chạy hơn dự kiến.

Ví dụ, bạn có thể có 1 cron job chạy mỗi phút, và tất nhiên thỉnh thoảng sẽ mất nhiều hơn 1 phút để chạy cron job đó, Và như vậy sẽ xảy ra vấn đề khi 1 cron script tương tự bắt đầu khởi chạy trong khi cron job trước đó chưa hoàn thành. Nếu có quá nhiều quy trình như vậy được tạo ra sẽ có nguy cơ  hỏng server khi các cron job tiếp tục xung đột và trì trệ.

Vấn đề này có thể được giải quyết thông qua khóa tập tin, cụ thể hơn là sử dụng loại non-blocking (LOCK_NB). (Nếu bạn không quen với việc khóa tệp, hãy tìm hiểu trước khi sử dụng (http://php.net/manual/en/function.flock.php)).

Bạn có thể thêm phần code sau vào script cron job:

Cron job là gì ? Thực hành cơ bản với các lệnh cron job - Ảnh 6.

Với khóa file thông thường, hàm gọi flock() sẽ chặn tập lệnh nếu có khóa đang tồn tại, và sẽ được bỏ chặn khi khóa được gỡ. 

Tuy nhiên với khóa non-blocking như trong phần code phía trên, hàm gọi sẽ không dừng script mà lập tức chuyển sang FALSE nếu có khóa tồn tại. Vì vậy, trong trường hợp này chúng ta có thể thoát script ngay khi thấy có khóa bởi như vậy có nghĩa là 1 cron job khác cũng đang chạy.

Chặn truy cập cron job từ Web

Khi bạn viết một cron job theo một ngôn ngữ kịch bản web như PHP chẳng hạn, bạn sẽ muốn đảm bảo rằng người khác sẽ không thể thực hiện được các lệnh đó chỉ bằng cách download xuống từ trình duyệt.

Một phương án xử lý khá đơn giản cho tình huống này, bạn lưu trữ các script đó bên ngoài web folder của mình. Tuy nhiên, cách này có thể không thực tiễn hoặc không được các developer ủng hộ trong trường hợp dev muốn giữ các script cron job của họ bên trong các folder ứng dụng web của mình.

Nếu bạn muốn cho tất cả các script cron job vào một folder, bạn chặn truy cập bằng cách đưa dòng sau vào một .htaccess file:

1

deny from all

Hoặc bạn cũng có thể chặn truy cập vào script trên cơ sở cá nhân bằng cách đưa dòng sau vào phần mở đầu:

1

if (isset($_SERVER[‘REMOTE_ADDR’])) die(‘Permission denied.’);

Điều này sẽ đảm bảo rằng, khi tập lệnh được truy cập từ web, tập lệnh sẽ bị hủy ngay lập tức.

Mặc dù cron job được xem như một công cụ dành cho quản trị viên hệ thống, nhưng công cụ này thực sự có liên quan đến nhiều loại ứng dụng web. Vì vậy, tìm hiểu về công cụ này có thể sẽ hữu ích đối với nhiều công việc khác nhau.

>> Có thể bạn quan tâm:  Drupal là gì? Có gì mới trong phiên bản Drupal 8” data-rel=”follow”>Drupal là gì? Có gì mới trong phiên bản Drupal 8

Post Views: 158
Previous Post

VRAM là gì? Cách tăng VRAM trên Windows, Card màn hình và BIOS

Next Post

Giải ngố về công nghệ 5G – thứ mà các nhà mạng trên thế giới đang đua nhau phát triển

Related Posts

Sửa Nhanh Lỗi Laptop Windows 10 Sạc Pin Không Vào 60951215e059b.png
Phần cứng

Sửa nhanh lỗi laptop Windows 10 sạc pin không vào

11/05/2022
Làm Thế Nào để Xóa Một Phân Vùng Trên ổ đĩa Cứng Windows? 60951232be65c.png
Phần cứng

Làm thế nào để xóa một phân vùng trên ổ đĩa cứng Windows?

11/05/2022
Test Pin Laptop, Cách Kiểm Tra Pin Laptop đang ở Mức Nào Mà Không Cần Cài Phần Mềm 6095123831651.png
Phần cứng

Test pin laptop, cách kiểm tra pin laptop đang ở mức nào mà không cần cài phần mềm

11/05/2022
Hướng Dẫn Xử Lý Khi Key Bàn Phím Laptop Bị Hỏng 6095121ca32df.png
Phần cứng

Hướng dẫn xử lý khi key bàn phím laptop bị hỏng

11/05/2022
Nên Dùng Súng Loại Nào Trong Chiến Dịch Huyền Thoại? 6094aaf17f1da.png
Phần Mềm

Nên dùng súng loại nào trong Chiến Dịch Huyền Thoại?

07/05/2022
Hướng Dẫn Cài đặt Wtfast để Giảm Ping Khi Chơi Game Online, Khi đứt Cáp 6094aae16ee4b.png
Phần Mềm

Hướng dẫn cài đặt WTFast để giảm ping khi chơi game online, khi đứt cáp

07/05/2022
Next Post
Giải Ngố Về Công Nghệ 5g – Thứ Mà Các Nhà Mạng Trên Thế Giới đang đua Nhau Phát Triển 609a06410a71c.png

Giải ngố về công nghệ 5G - thứ mà các nhà mạng trên thế giới đang đua nhau phát triển

Bài mới nhất

Cpanel Là Gì Và Hướng Dẫn Sử Dụng Cpanel Hiệu Quả Cho Người Mới 612d235c02794.png

Cpanel là gì và hướng dẫn sử dụng Cpanel hiệu quả cho người mới

13/05/2025
Website Defacement Là Gì Và Cách Khắc Phục Hiệu Quả Cho Website 612d235622440.png

Website Defacement là gì và cách khắc phục hiệu quả cho website

12/05/2025
8 Cách Quản Lý Data Khách Hàng Hiệu Quả Cho Doanh Nghiệp 612d234c2b5ad.jpeg

8 cách quản lý data khách hàng hiệu quả cho doanh nghiệp

12/05/2025
Địa Chỉ Email Là Gì Và Cách để Tạo Lập địa Chỉ Mail Chuyên Nghiệp 612d23693d14c.jpeg

Địa chỉ email là gì và cách để tạo lập địa chỉ mail chuyên nghiệp

11/05/2025
Tự động Hóa Bán Hàng: Cách ứng Dụng Crm Vào Bán Hàng Và Marketing 612d0eb0e2b27.jpeg

Tự động hóa bán hàng: Cách ứng dụng CRM vào bán hàng và Marketing

11/05/2025

Danh mục

  • Android
  • Bảo mật máy tính
  • Bảo mật, Antivirus
  • Chuyện công nghệ
  • Deep Learning
  • Development
  • Dịch vụ công trực tuyến
  • Dịch vụ nhà mạng
  • Giải pháp bảo mật
  • Hệ thống
  • Hệ thống
  • iPhone
  • Kiến thức bảo mật
  • Kiến thức cơ bản phổ thông
  • Kiến thức Marketing căn bản
  • Kiến thức tổng hợp
  • Lập trình
  • Linux
  • Linux OS
  • macOS
  • Mail Server
  • Mạng LAN – WAN
  • Máy ảo
  • Máy chủ
  • ms excel
  • ms-powerpoint
  • Nền tảng điện toán đám mây
  • Phần cứng
  • Phần Mềm
  • Quản trị hệ thống
  • Raspberry Pi
  • Sửa lỗi máy tính
  • Tăng tốc máy tính
  • Thủ thuật
  • Thủ thuật SEO
  • Thủ thuật Wifi
  • Tiện ích hệ thống
  • Tin học văn phòng
  • Tin tức
  • Uncategorized
  • Ứng dụng
  • Website
  • Windows Server 2012

Thẻ

#app #chatbot #chatbot tự động #CRM #Kiến thức cơ bản #Techblog #Thiết kế website Android apple CPU Email Marketing Google Google Drive hacker HTML hàm python hàm python có sẵn hình nền hình nền máy tính học css học python học SQL ios iphone iphone 12 iPhone X macos Microsoft mssql MS SQL Server ngôn ngữ lập trình python Raspberry Pi Samsung smartphone SQL SQL Server tham số trong C thủ thuật windows 10 tài liệu python windows windows 10 YouTube điện thoại thông minh ứng dụng
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2022 Pha Le Solution

No Result
View All Result
  • Home

© 2022 Pha Le Solution