Cron Jobs 執行php程序,但卻無法執行?直接訪問卻可以?

請問一下 我用了一個php程序 然後是利用Cron Jobs去固定時間執行
裡面其中有個程序是INSERT INTO數據到mysql確認是否有執行上述php程序
所以只要是有執行,就會INSERT進去 (所以有沒有成功我會知道)

但是很怪異的是
為什麼用Cron Jobs執行這個php程序時
上述的php程序沒有做到
但是卻有 INSERT數據進mysql?
他完全跳過了某段程序?
我那個程序是備份mysql,然後再某目錄產生.sql檔案,類似這樣:

$filename="".date("Y-m-d-H:i",time())."_auto-backup.sql";
$fp = fopen('sql/auto/'.$filename.'','w');
fputs($fp,$mysql);
fclose($fp);

更怪異的是
我直接key url去直接訪問該php卻是成功的!的確有產生sql檔案.....
但是為什麼用Cron Jobs替我執行卻不行?完全跳過這個程序........


再請問一下....要如何調整Cron Jobs的時間?我現在設定每天執行兩次(每12小時執行一次),但我的理想是中午12點與凌晨12點,他現在執行時間是下午三點跟凌晨三點....

阅读 3.7k
3 个回答

cron里的路径用绝对路径试试,即从/开始

直接执行可以,是因为有很多环境变量的配置可以用,当你使用cron的时候,这些环境变量的配置都被屏蔽了,所以要从根目录开始写。当然,如果你的程序明确指明了当前执行的目录时,后面的代码也可以使用一些相对路径。不过总的来说,还是全部绝对路径比较靠谱

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题