Hướng dẫn how do i run a php script in crontab? - làm cách nào để chạy tập lệnh php trong crontab?
Nhiệm vụ tự động: CronCron là một dịch vụ lập lịch dựa trên thời gian trong các hệ điều hành máy tính giống như Linux / UNIX. Công việc Cron được sử dụng để lên lịch các lệnh được thực thi định kỳ. Bạn có thể thiết lập các lệnh hoặc tập lệnh, sẽ liên tục chạy tại một thời điểm đã đặt. Cron là một trong những công cụ hữu ích nhất trong Linux hoặc UNIX như hệ điều hành. Dịch vụ Cron (Daemon) chạy trong nền và liên tục kiểm tra tệp/etc/crontab, /etc/cron./* Các thư mục. Nó cũng kiểm tra thư mục/var/spool/cron/. Show
Cấu hình các nhiệm vụ CronTrong ví dụ sau, lệnh crontab được hiển thị bên dưới sẽ tự động kích hoạt các tác vụ cron cứ sau mười phút:
Trong mẫu trên, */10 * * * * * đại diện cho khi nhiệm vụ sẽ xảy ra. Hình đầu tiên đại diện cho vài phút - trong trường hợp này, trên mỗi "mười" phút. Các số liệu khác đại diện, tương ứng, giờ, ngày, tháng và ngày trong tuần. 7 là một ký tự đại diện, có nghĩa là "mọi lúc".Bắt đầu với việc tìm hiểu nhị phân PHP của bạn bằng cách nhập dòng lệnh:
Đầu ra phải là một cái gì đó như:
Chỉ định chính xác đường dẫn đầy đủ trong lệnh của bạn. Nhập lệnh sau để nhập Cronjob:
Để xem những gì bạn có ở Crontab. Chỉnh sửa 1:Để thoát khỏi trình chỉnh sửa VIM mà không cần lưu chỉ cần nhấp vào:
Và sau đó nhập 8 Cron là một dịch vụ lập lịch dựa trên thời gian trong các hệ điều hành giống như Linux / UNIX. Công việc Cron được sử dụng để lên lịch các lệnh được thực thi định kỳ. Bạn có thể thiết lập các lệnh hoặc tập lệnh, sẽ liên tục chạy tại một thời điểm đã đặt. Cron là một trong những công cụ hữu ích nhất trong Linux hoặc UNIX như hệ điều hành. Dịch vụ Cron (Daemon) chạy trong nền và liên tục kiểm tra tệp/etc/crontab, /etc/cron./* Các thư mục. Nó cũng kiểm tra thư mục/var/spool/cron/. Trong bài viết này, tôi sẽ chỉ cho bạn cách thực thi tập lệnh PHP trong công việc cron. Tạo tập lệnh PHPĐịnh cấu hình nhiệm vụ ngô # cd /var/www/web # vim test.php Tìm thư viện PHP Định cấu hình nhiệm vụ ngôTìm thư viện PHP */5 * * * * /usr/bin/php /opt/test.php Cronjob nhập cảnh Cron là một dịch vụ lập lịch dựa trên thời gian trong các hệ điều hành giống như Linux / UNIX. Công việc Cron được sử dụng để lên lịch các lệnh được thực thi định kỳ. Bạn có thể thiết lập các lệnh hoặc tập lệnh, sẽ liên tục chạy tại một thời điểm đã đặt. Cron là một trong những công cụ hữu ích nhất trong Linux hoặc UNIX như hệ điều hành. Dịch vụ Cron (Daemon) chạy trong nền và liên tục kiểm tra tệp/etc/crontab, /etc/cron./* Các thư mục. Nó cũng kiểm tra thư mục/var/spool/cron/. Tìm thư viện PHPCronjob nhập cảnh # whereis php Cron là một dịch vụ lập lịch dựa trên thời gian trong các hệ điều hành giống như Linux / UNIX. Công việc Cron được sử dụng để lên lịch các lệnh được thực thi định kỳ. Bạn có thể thiết lập các lệnh hoặc tập lệnh, sẽ liên tục chạy tại một thời điểm đã đặt. Cron là một trong những công cụ hữu ích nhất trong Linux hoặc UNIX như hệ điều hành. Dịch vụ Cron (Daemon) chạy trong nền và liên tục kiểm tra tệp/etc/crontab, /etc/cron./* Các thư mục. Nó cũng kiểm tra thư mục/var/spool/cron/. php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz Trong bài viết này, tôi sẽ chỉ cho bạn cách thực thi tập lệnh PHP trong công việc cron. Cronjob nhập cảnhCron là một dịch vụ lập lịch dựa trên thời gian trong các hệ điều hành giống như Linux / UNIX. Công việc Cron được sử dụng để lên lịch các lệnh được thực thi định kỳ. Bạn có thể thiết lập các lệnh hoặc tập lệnh, sẽ liên tục chạy tại một thời điểm đã đặt. Cron là một trong những công cụ hữu ích nhất trong Linux hoặc UNIX như hệ điều hành. Dịch vụ Cron (Daemon) chạy trong nền và liên tục kiểm tra tệp/etc/crontab, /etc/cron./* Các thư mục. Nó cũng kiểm tra thư mục/var/spool/cron/. # crontab -e */5 * * * * /usr/bin/php /opt/test.php Trong bài viết này, tôi sẽ chỉ cho bạn cách thực thi tập lệnh PHP trong công việc cron. Trước hết tạo ra một tập lệnh PHP như dưới đây. Lưu và đóng tệp.www.looklinux.com. To become an author at LookLinux Submit Article. Stay connected to Facebook. Trong ví dụ sau, lệnh crontab được hiển thị bên dưới sẽ tự động kích hoạt các tác vụ cron cứ sau năm phút:Trong mẫu trên, */5 * * * * * đại diện cho khi nhiệm vụ sẽ xảy ra. Con số đầu tiên đại diện cho vài phút - trong trường hợp này, trên mỗi phút năm phút. Các số liệu khác đại diện, tương ứng, giờ, ngày, tháng và ngày trong tuần.* là một ký tự đại diện, có nghĩa là mỗi lần. Tác giả đã chọn các cô gái viết mã để nhận quyên góp như một phần của chương trình Write for quyên góp. Giới thiệuTrong Linux, bạn có thể sử dụng công cụ Crontab đa năng để xử lý các nhiệm vụ chạy dài trong nền vào những thời điểm cụ thể. Mặc dù Daemon là tuyệt vời để chạy các tác vụ lặp đi lặp lại, nhưng nó có một giới hạn: bạn chỉ có thể thực hiện các tác vụ trong khoảng thời gian tối thiểu là 1 phút. Tuy nhiên, trong nhiều ứng dụng, để tránh trải nghiệm người dùng kém, nó tốt hơn cho các công việc thực hiện thường xuyên hơn. Chẳng hạn, nếu bạn sử dụng mô hình Queue công việc để lên lịch các tác vụ xử lý tệp trên trang web của bạn, thì sự chờ đợi đáng kể sẽ có tác động tiêu cực đến người dùng cuối. Một kịch bản khác là một ứng dụng sử dụng mô hình công việc-queue để gửi tin nhắn văn bản hoặc email cho khách hàng sau khi họ đã hoàn thành một nhiệm vụ nhất định trong một ứng dụng (ví dụ: gửi tiền cho người nhận). Nếu người dùng phải đợi một phút trước khi gửi tin nhắn xác nhận, họ có thể nghĩ rằng giao dịch không thành công và cố gắng lặp lại cùng một giao dịch. Để khắc phục những thách thức này, bạn có thể lập trình một tập lệnh PHP lặp lại và xử lý các nhiệm vụ lặp đi lặp lại trong 60 giây vì nó đang chờ trình nền Crontab gọi lại sau phút. Khi tập lệnh PHP được gọi lần đầu tiên bởi crontab, nó có thể thực hiện các tác vụ trong một khoảng thời gian phù hợp với logic của ứng dụng của bạn mà không giữ cho người dùng chờ đợi. Trong hướng dẫn này, bạn sẽ tạo cơ sở dữ liệu 9 mẫu trên máy chủ Ubuntu 20.04. Sau đó, bạn sẽ thiết lập một bảng # cd /var/www/web # vim test.php0 và tập lệnh thực hiện các công việc trong bảng của bạn trong khoảng 5 giây bằng cách sử dụng các hàm php # cd /var/www/web # vim test.php1 và các hàm # cd /var/www/web # vim test.php2. Điều kiện tiên quyếtĐể hoàn thành hướng dẫn này, bạn yêu cầu như sau:
Bước 1 - Thiết lập cơ sở dữ liệuTrong bước này, bạn sẽ tạo một cơ sở dữ liệu mẫu và bảng. Đầu tiên, # cd /var/www/web # vim test.php3 vào máy chủ của bạn và đăng nhập vào MySQL dưới dạng root:
Nhập mật khẩu gốc của bạn cho máy chủ MySQL và nhấn # cd /var/www/web # vim test.php4 để tiếp tục. Sau đó, chạy lệnh sau để tạo cơ sở dữ liệu 9. 0Tạo người dùng không root cho cơ sở dữ liệu. Bạn sẽ cần thông tin đăng nhập của người dùng này để kết nối với cơ sở dữ liệu 9 từ PHP. Hãy nhớ thay thế # cd /var/www/web # vim test.php7 bằng giá trị mạnh: 1Tiếp theo, chuyển sang cơ sở dữ liệu 9: 2 3Khi bạn đã chọn cơ sở dữ liệu, hãy tạo bảng # cd /var/www/web # vim test.php0. Trong bảng này, bạn sẽ chèn một số nhiệm vụ sẽ được tự động thực hiện bởi một công việc cron. Vì khoảng thời gian tối thiểu để chạy một công việc cron là */5 * * * * /usr/bin/php /opt/test.php0 phút, sau đó bạn sẽ mã một tập lệnh PHP ghi đè cài đặt này và thay vào đó, thực hiện các công việc trong khoảng thời gian 5 giây. Hiện tại, hãy tạo bảng # cd /var/www/web # vim test.php0 của bạn: 4Chèn ba hồ sơ vào bảng nhiệm vụ. Sử dụng hàm MySQL */5 * * * * /usr/bin/php /opt/test.php2 trong cột */5 * * * * /usr/bin/php /opt/test.php3 để ghi lại ngày và giờ hiện tại khi các tác vụ được xếp hàng. Ngoài ra, đối với cột */5 * * * * /usr/bin/php /opt/test.php4, sử dụng hàm MySQL */5 * * * * /usr/bin/php /opt/test.php5 để đặt thời gian mặc định là */5 * * * * /usr/bin/php /opt/test.php6. Sau đó, khi các tác vụ hoàn tất, tập lệnh của bạn sẽ cập nhật cột này: 5Xác nhận đầu ra sau khi chạy mỗi lệnh */5 * * * * /usr/bin/php /opt/test.php7: 6Đảm bảo dữ liệu được đặt đúng vị trí bằng cách chạy câu lệnh */5 * * * * /usr/bin/php /opt/test.php8 so với bảng # cd /var/www/web # vim test.php0: 7Bạn sẽ tìm thấy một danh sách tất cả các nhiệm vụ: 8Thời gian cho cột */5 * * * * /usr/bin/php /opt/test.php4 được đặt thành */5 * * * * /usr/bin/php /opt/test.php6, cột này sẽ cập nhật sau khi các tác vụ được xử lý bởi tập lệnh PHP mà bạn sẽ tạo tiếp theo. Thoát khỏi giao diện dòng lệnh MySQL: 9 0Cơ sở dữ liệu 9 của bạn và bảng # cd /var/www/web # vim test.php0 hiện đã được đặt đúng chỗ và giờ đây bạn có thể tạo tập lệnh PHP xử lý các công việc. Bước 2 - Tạo tập lệnh PHP chạy các tác vụ sau 5 giâyTrong bước này, bạn sẽ tạo một tập lệnh sử dụng kết hợp các chức năng của php # cd /var/www/web # vim test.php1 và # whereis php5 để chạy các tác vụ sau mỗi 5 giây. Mở tệp # whereis php6 mới trong thư mục gốc của máy chủ web của bạn bằng Nano: 1Tiếp theo, hãy tạo khối # whereis php7 mới sau thẻ # whereis php8 và khai báo các biến cơ sở dữ liệu mà bạn đã tạo ở bước 1. Hãy nhớ thay thế # cd /var/www/web # vim test.php7 bằng mật khẩu thực tế cho người dùng cơ sở dữ liệu của bạn: /var/www/html/tasks.php 2Tiếp theo, khai báo một lớp PDO (Php dữ liệu Php) mới và đặt thuộc tính php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz0 để bắt bất kỳ lỗi PDO nào. Ngoài ra, chuyển php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz1 sang php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz2 để cho phép động cơ cơ sở dữ liệu MySQL bản địa xử lý mô phỏng. Các câu lệnh được chuẩn bị cho phép bạn gửi các truy vấn và dữ liệu SQL một cách riêng biệt để tăng cường bảo mật và giảm cơ hội tấn công tiêm SQL: /var/www/html/tasks.php 3Sau đó, tạo một biến mới có tên php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz3 và đặt nó thành thời gian hiện tại cộng với 60 giây. Sau đó mở một câu lệnh PHP php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz4 mới. Ý tưởng ở đây là tạo một vòng lặp chạy cho đến thời điểm hiện tại ( php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz5) phù hợp với biến php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz3: 4Tiếp theo, khai báo một tuyên bố SQL đã chuẩn bị lấy lại các công việc chưa được xử lý từ bảng # cd /var/www/web # vim test.php0: 5Thực hiện lệnh SQL và tìm nạp tất cả các hàng từ bảng # cd /var/www/web # vim test.php0 có cột php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz9 được đặt thành # crontab -e */5 * * * * /usr/bin/php /opt/test.php0. Điều này có nghĩa là các hàng không được xử lý: 6Tiếp theo, lặp qua các hàng được truy xuất bằng cách sử dụng câu lệnh PHP # crontab -e */5 * * * * /usr/bin/php /opt/test.php1 và tạo một câu lệnh SQL khác. Lần này, lệnh SQL cập nhật các cột php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz9 và */5 * * * * /usr/bin/php /opt/test.php4 cho mỗi tác vụ được xử lý. Điều này đảm bảo rằng bạn không có nhiệm vụ xử lý nhiều hơn một lần: 7Lưu ý: Nếu bạn có một hàng đợi lớn sẽ được xử lý (ví dụ: 100.000 bản ghi mỗi giây), bạn có thể xem xét việc xếp hàng trong một máy chủ Redis vì nó nhanh hơn MySQL khi thực hiện mô hình công việc. Tuy nhiên, hướng dẫn này sẽ xử lý một bộ dữ liệu nhỏ hơn. If you have a large queue to be processed (for example, 100,000 records per second), you might consider queueing jobs in a Redis Server since it is faster than MySQL when it comes to implementing the job-queue model. Nevertheless, this guide will process a smaller dataset. Trước khi bạn đóng câu lệnh Php # crontab -e */5 * * * * /usr/bin/php /opt/test.php4 đầu tiên, hãy bao gồm câu lệnh # crontab -e */5 * * * * /usr/bin/php /opt/test.php5 để tạm dừng việc thực hiện công việc trong 5 giây và giải phóng tài nguyên máy chủ của bạn. Bạn có thể thay đổi khoảng thời gian 5 giây tùy thuộc vào logic kinh doanh của bạn và tốc độ bạn muốn các nhiệm vụ thực hiện. Chẳng hạn, nếu bạn muốn các nhiệm vụ được xử lý 3 lần trong một phút, hãy đặt giá trị này thành 20 giây. Hãy nhớ # crontab -e */5 * * * * /usr/bin/php /opt/test.php6 bất kỳ thông báo lỗi PDO nào bên trong khối # crontab -e */5 * * * * /usr/bin/php /opt/test.php7: 8Tệp # crontab -e */5 * * * * /usr/bin/php /opt/test.php8 hoàn chỉnh của bạn sẽ như sau: /var/www/html/tasks.php 9Lưu tệp bằng cách nhấn # crontab -e */5 * * * * /usr/bin/php /opt/test.php9 + 0, 1 sau đó # cd /var/www/web # vim test.php4. Khi bạn đã hoàn thành mã hóa logic trong tệp # whereis php6, bạn sẽ lên lịch trình nền crontab để thực thi tệp sau mỗi 1 phút trong bước tiếp theo. Bước 3 - Lên lịch tập lệnh PHP để chạy sau 1 phútTrong Linux, bạn có thể lên lịch các công việc để chạy tự động sau thời gian quy định bằng cách nhập lệnh vào tệp crontab. Trong bước này, bạn sẽ hướng dẫn Daemon Crontab chạy tập lệnh # whereis php6 của bạn sau mỗi phút. Vì vậy, hãy mở tệp 5 bằng Nano: 0Sau đó thêm phần sau vào cuối tệp để thực hiện 6 sau mỗi */5 * * * * /usr/bin/php /opt/test.php0 phút: /etc/crontab 1Lưu và đóng tập tin. Hướng dẫn này giả định rằng bạn có kiến thức cơ bản về cách làm việc của cron. Cân nhắc đọc hướng dẫn của chúng tôi về cách sử dụng Cron để tự động hóa các tác vụ trên Ubuntu. Như đã chỉ ra trước đó, mặc dù trình nền cron chạy tệp # crontab -e */5 * * * * /usr/bin/php /opt/test.php8 sau mỗi 1 phút, một khi tệp được thực thi lần đầu tiên, nó sẽ lặp qua các tác vụ mở trong 60 giây nữa. Vào thời điểm thời gian vòng lặp hết hạn, Cron Daemon sẽ thực thi lại tệp và quá trình sẽ tiếp tục. Sau khi cập nhật và đóng tệp 5, trình nền crontab sẽ bắt đầu thực thi các tác vụ MYSQL mà bạn đã chèn vào bảng # cd /var/www/web # vim test.php0 ngay lập tức. Để xác nhận xem mọi thứ có hoạt động như mong đợi hay không, bạn sẽ truy vấn cơ sở dữ liệu 9 của mình tiếp theo.Bước 4 - Xác nhận thực thi công việcTrong bước này, bạn sẽ mở cơ sở dữ liệu của mình thêm một lần nữa để kiểm tra xem tệp # crontab -e */5 * * * * /usr/bin/php /opt/test.php8 có xử lý các công việc được xếp hàng khi được thực hiện tự động bởi crontab hay không. Đăng nhập lại vào máy chủ MySQL của bạn dưới dạng Root:
Sau đó, nhập mật khẩu gốc MySQL Server của bạn và nhấn # cd /var/www/web # vim test.php4 để tiếp tục. Sau đó, chuyển sang cơ sở dữ liệu: 2 3Chạy câu lệnh */5 * * * * /usr/bin/php /opt/test.php8 đối với bảng 05: 5Bạn sẽ nhận được đầu ra tương tự như sau. Trong cột */5 * * * * /usr/bin/php /opt/test.php4, các tác vụ đã được xử lý trong khoảng thời gian 07 giây. Ngoài ra, các nhiệm vụ đã được đánh dấu là hoàn thành kể từ cột php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz9 hiện được đặt thành 1, có nghĩa là 10. 6Điều này xác nhận rằng tập lệnh PHP của bạn đang hoạt động như mong đợi; Bạn đã chạy các tác vụ trong một khoảng thời gian ngắn hơn bằng cách ghi đè lên giới hạn của khoảng thời gian 1 phút do crontab daemon đặt ra. Sự kết luậnTrong hướng dẫn này, bạn đã thiết lập một cơ sở dữ liệu mẫu trên máy chủ Ubuntu 20.04. Sau đó, bạn đã tạo các công việc trong một bảng và chạy chúng trong khoảng 5 giây bằng cách sử dụng các hàm php # cd /var/www/web # vim test.php1 và các hàm # cd /var/www/web # vim test.php2. Sử dụng logic trong hướng dẫn này khi bạn tiếp theo triển khai ứng dụng dựa trên công việc trong đó các tác vụ cần được chạy nhiều lần trong khoảng thời gian 1 phút. Để biết thêm hướng dẫn PHP, hãy xem trang chủ đề PHP của chúng tôi. Làm cách nào để lên lịch cho một tập lệnh PHP?Answer.. Đăng nhập vào plesk .. Chuyển đến Công cụ & Cài đặt> Nhiệm vụ theo lịch trình> Thêm nhiệm vụ ;. Tại đường dẫn tập lệnh, chỉ định đường dẫn đầy đủ đến tập lệnh PHP trên máy chủ. .... Tại trường chạy, chỉ định tần số mong muốn Nhiệm vụ sẽ được chạy ;. Chọn Run tập lệnh PHP và đặt phiên bản bắt buộc:. Bấm OK để lưu nhiệm vụ .. Làm cách nào để chạy tập lệnh PHP trong Linux?Bạn chỉ cần làm theo các bước để chạy chương trình PHP bằng dòng lệnh ... Mở cửa sổ thiết bị đầu cuối hoặc dòng lệnh .. Goto thư mục hoặc thư mục được chỉ định có các tệp PHP có mặt .. Sau đó, chúng ta có thể chạy mã PHP bằng lệnh sau: php file_name.php .. Làm cách nào để tự động hóa một tập lệnh bằng crontab?Tạo phiên bản tác vụ Cron chạy tập lệnh tự động hóa ... Trong phần phiên bản tác vụ Cron, thêm một hàng .. Chỉ định tên thể hiện nhiệm vụ Cron .. Đặt lịch trình cho khi nhiệm vụ cron được chạy .. Chọn chạy làm người dùng .. Việc sử dụng công việc cron trong PHP là gì?Dịch vụ Ứng dụng CRON cho phép bạn định cấu hình các tác vụ được lên lịch thường xuyên hoạt động theo thời gian xác định hoặc khoảng thời gian thường xuyên.Những nhiệm vụ này thường được gọi là công việc cron.configure regularly scheduled tasks that operate at defined times or regular intervals. These tasks are commonly known as cron jobs. |