新建php腳本ctTest.php,代碼以下:php
<?php /*************************************************************************** * * Copyright (c) 2018 Baidu.com, Inc. All Rights Reserved * **************************************************************************/ /** * @file ctTest.php * @author sunlihua(com@baidu.com) * @date 2018/11/07 11:15:27 * @brief * **/ $file = fopen("abc.txt", "a+"); $txt = "test\n"; fwrite($file, $txt); fclose($file); /* vim: set expandtab ts=4 sw=4 sts=4 tw=100: */ ?>
cron中添加以下定時任務:(crontab -e)vim
* * * * * /home/users/***/odphb/php/bin/php /home/users/***/odphb/test/ctTest.phpide
可是,在/***/odphb/test/目錄下始終沒有看到abc.txt文件spa
1)懷疑是定時腳本沒有執行。日誌
經過sudo tailf /var/log/cron 查看運行日誌,有腳本運行日誌,以下:code
Nov 7 12:06:01 *** crond[41958]: (***) CMD (/home/users/sunlihua/odphb/php/bin/php /home/users/***/odphb/test/ctTest.php)blog
排除腳本未執行的可能crontab
2)懷疑是權限不對形成的,經過sudo crontab -e 添加root角色的定時任務,查看日誌,以下:it
Nov 7 12:06:01 *** crond[41957]: (root) CMD (/home/users/***/odphb/php/bin/php /home/users/***/odphb/test/ctTest.php)event
3)在網上看到須要在腳本前加./etc/profile; 查看日誌以下:
Nov 7 12:06:01 *** crond[41957]: (root) CMD (./etc/profile;/home/users/***/odphb/php/bin/php /home/users/***/odphb/test/ctTest.php)
上面問題都排查了,在/***/odphb/test/目錄下仍是沒有看到abc.txt文件
最終緣由:cron裏面命令用的是絕對路徑,腳本里面打開的文件用的也是絕對路徑,故文件分別被寫到了***和root的根目錄下。修改腳本里面abc.txt文件的路徑,即修復問題。