2016-03-17 172 views
1

的crontab是在一個點上運行正常但有一天,它運行後刪除其文件中/var/spool/cron/crontabs的crontab沒有運行PHP腳本

# DO NOT EDIT THIS FILE - edit the master and reinstall. 
# (/tmp/crontab.DYqvRY/crontab installed on Thu Mar 17 14:50:32 2016) 
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 
# Edit this file to introduce tasks to be run by cron. 
# 
# Each task to run has to be defined through a single line 
# indicating with different fields when the task will be run 
# and what command to run for the task 
# 
# To define the time you can provide concrete values for 
# minute (m), hour (h), day of month (dom), month (mon), 
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system 
# daemon's notion of time and timezones. 
# 
# Output of the crontab jobs (including errors) is sent through 
# email to the user the crontab file belongs to (unless redirected). 
# 
# For example, you can run a backup of all your user accounts 
# at 5 a.m every week with: 
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ 
# 
# For more information see the manual pages of crontab(5) and cron(8) 
# 
# m h dom mon dow command 

0 0 1 * * /var/www/html/mail.php 

0 0 16 * * /var/www/html/mail.php 

0 13 2 * * /var/www/html/mailcheck.php 

0 13 17 * * /var/www/html/mailcheck.php 

0 13 2 * * /var/www/html/mailcheckadmin.php 

0 13 17 * * /var/www/html/mailcheckadmin.php 

0 0 1 * * /var/www/html/PaymentPeriod_Create.php 

0 0 16 * * /var/www/html/PaymentPeriod_Create.php 

* * * * * /var/www/html/testsession.php > /var/www/html/log 

我使用# crontab -e來然後編輯這個文件時,我做我按^ XY ENTER 是否有任何額外的步驟,我失蹤* * * * * /var/www/html/testsession.php > /var/www/html/log這應該每分鐘運行嗎?

+0

這運行每分鐘:'*/1 * * * * /var/www/html/testsession.php>/var/www/html/log' – Daan

+0

@Daan我改變了那一行,但腳本仍在運行 –

+0

@達安爲什麼'*/1 * * * *'而不是'* * * * *'?它們是否相同?我總是使用'* * * * *'每分鐘運行一次 – jDo

回答

3

語法* * * * * /var/www/html/testsession.php > /var/www/html/log有效。

最有可能的,因爲它是crontab中的最後一行,它缺少換行符。 Cron在每個條目結束時都需要換行符;換句話說,你的crontab必須以空行結束。

man crontab「診斷」部分:

cron的要求,在一個crontab端中的每個條目中一個換行符。如果crontab中的最後一項缺少換行符,cron會考慮crontab(至少部分)破壞並拒絕安裝它。

您可能需要更換>>>使新的內容附加到日誌文件而不是覆蓋它的每一分鐘,即* * * * * /var/www/html/testsession.php >> /var/www/html/log。如果它尚不存在,這仍然會創建日誌文件。

您的PHP文件還需要設置執行位,並且需要在第一行開始#!/usr/bin/php(或系統上的PHP路徑)。或者,您可以用* * * * * /usr/bin/php /var/www/html/testsession.php >> /var/www/html/log替換cron行以顯式使用PHP解釋器來執行腳本。