การใช้ crontab เพื่อรันสคริปต์ทุกนาทีและอีก 24 ชั่วโมง [ปิด]


316

ฉันต้องการไวยากรณ์ crontab ซึ่งควรรันสคริปต์ PHP เฉพาะ /var/www/html/a.phpทุกนาที การดำเนินการทุกนาทีจะต้องเริ่มต้นที่ 00:00 ภารกิจอื่นที่ต้องเรียกใช้งานสคริปต์เวลา 00:00 /var/www/html/reset.php(ทุก ๆ 24 ชั่วโมง)

คำตอบ:


586

ทุกๆนาที:

* * * * * /path/to/php /var/www/html/a.php

ทุก 24 ชั่วโมง (ทุกเที่ยงคืน):

0 0 * * * /path/to/php /var/www/html/reset.php

ดูการอ้างอิงนี้สำหรับวิธีการทำงานของ crontab: http://adminschoice.com/crontab-quick-referenceและเครื่องมือที่มีประโยชน์นี้เพื่อสร้าง cron jobx: http://www.htmlbasix.com/crontab.shtml


3
เรียน ม.ค. คำตอบที่ดี วิธีการทำงานกับ cron ทุก ๆ 30 วินาที? เป็นเช่นนี้หรือไม่ * * * * * / 30 / เส้นทาง / ถึง / php /var/www/html/a.php?
flaab

26
น่าเสียดายที่คุณไม่สามารถเรียกใช้งาน cron ได้บ่อยกว่าทุกนาที คุณจะต้องใช้อย่างอื่นเพื่อสิ่งนั้น
Jan Hančič

9
Jan Hančičคุณสามารถทำได้ คุณต้องใช้เคล็ดลับง่ายๆที่อธิบายไว้ที่นี่: stackoverflow.com/a/1034304/1580615
Ruben

เป็นเรื่องปกติหรือไม่ที่จะเรียกใช้สคริปต์. php ในแต่ละนาทีด้วย cron? สามารถลดประสิทธิภาพของเซิร์ฟเวอร์ได้หรือไม่ มีผลข้างเคียงที่ไม่ดีอื่น ๆ อีกหรือไม่?
แอนดรู

@flaab ทุก ๆ 30 วินาทีคุณสามารถลองดังนี้: - * * * * * curl - URL ที่เงียบ> / dev / null 2> & 1 * * * * * sleep 30; curl --silent URL> / dev / null 2> & 1
Shashank Shah

375

นี่คือรูปแบบของ / etc / crontab:

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

ฉันขอแนะนำให้คัดลอกและวางลงในส่วนบนของไฟล์ crontab ของคุณเพื่อให้คุณมีข้อมูลอ้างอิงอยู่เสมอ ระบบ RedHat กำลังติดตั้งตามค่าเริ่มต้น

ในการรันบางสิ่งทุกนาที:

* * * * * username /var/www/html/a.php

ในการทำงานบางอย่างในเวลาเที่ยงคืนของทุกวัน:

0 0 * * * username /var/www/html/reset.php

คุณสามารถรวม / usr / bin / php ในคำสั่งเพื่อเรียกใช้หรือคุณสามารถทำให้สคริปต์ php ปฏิบัติการโดยตรง:

chmod +x file.php

เริ่มไฟล์ php ของคุณด้วย shebang เพื่อให้เชลล์ของคุณรู้ว่าจะใช้ล่ามคนใด:

#!/usr/bin/php
<?php
// your code here

42
นั่นคือรูปแบบของ/etc/crontabซึ่งเป็นไฟล์ระบบ crontab ใช้ crontab มีรูปแบบที่แตกต่างกันซึ่งไม่รวมถึงฟิลด์ชื่อผู้ใช้เพราะมันทำงานเป็นผู้ใช้ที่ส่ง หากคุณต้องการรันงาน cron ในฐานะผู้ใช้ที่ไม่ใช่รูทคุณควรใช้crontabคำสั่งเพื่อส่งมัน (และไม่ต้องกังวลว่าจะเก็บ crontab ไว้ที่ใด) อย่ายุ่งกับ/etc/crontabถ้าคุณไม่ต้องการ
Keith Thompson

อืม ... ไม่ยังไม่ทำงาน
Madeo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.