9
A
回答
11
NO,在PHP中沒有這樣的直接特權。
但(在專用服務器)你可以寫一個PHP腳本來讀取/etc/crontab
文件並解析信息來檢查服務器上存在一個特定的cron。
2
您可以嘗試運行crontab -l
命令,該命令應該可以從PHP工作。您可能必須限定完整路徑,例如/usr/bin/crontab -l
,這取決於主機。
這將返回運行命令的用戶的crontab條目,如果PHP頁面和cron作業以相同用戶身份運行(許多共享主機最近使用setuid php腳本),那麼這就是您想要的。要獲得其他用戶的crontab條目,您需要在大多數系統上擁有超級用戶權限,並且需要crontab -l -u otheruser
。
1
使用shell_exec()
或system()
或類似的東西可能解決問題。 但它不會與safe_mode
打開。
我想共享主機不會啓用這些功能。
@Nathan:會不會/usr/bin/crontab -l
返回運行腳本的用戶的crontab?例如www-data,wwwrun,apache什麼的?
1
除了Nathan的回答:
如果你可以運行exec()
和crontab
命令
function cronjob_exists($command){
$cronjob_exists=false;
exec('crontab -l', $crontab);
if(isset($crontab)&&is_array($crontab)){
$crontab = array_flip($crontab);
if(isset($crontab[$command])){
$cronjob_exists=true;
}
}
return $cronjob_exists;
}
$command = '30 9 * * * '.__DIR__.'/cronjobs/job1.php';
if(cronjob_exists($command)===FALSE){
//add job to crontab
exec('echo -e "`crontab -l`\n'.$command.'" | crontab -');
}
相關問題
- 1. 檢查是否執行cronjob
- 2. 檢查magento是否已經運行cronjob
- 3. 檢查cronjob是否已經運行
- 4. 在PHP中檢查URL是否存在
- 5. PHP檢查用戶是否存在PDO
- 6. PDO/PHP - 檢查行是否存在
- 7. MySql php:檢查行是否存在
- 8. 檢查孩子是否存在? - SimpleXML(PHP)
- 9. 檢查名稱是否存在php
- 10. php檢查文件是否存在
- 11. PHP檢查是否存在值
- 12. php:檢查路徑是否存在?
- 13. 檢查圖像是否存在php
- 14. ADOdb檢查表是否存在PHP
- 15. PHP - 檢查表是否存在條目
- 16. PHP檢查數組鍵是否存在
- 17. 使用PHP檢查URL是否存在
- 18. php oop檢查用戶是否存在?
- 19. 如何檢查Linux shell腳本是否由cronjob執行?
- 20. 如何檢查window.location是否存在
- 21. 如何檢查會話是否存在?
- 22. 如何檢查命令是否存在?
- 23. 如何檢查appSettings鍵是否存在?
- 24. 如何檢查AlbumArt是否存在?
- 25. 如何檢查putExtra是否存在?
- 26. 如何檢查域是否存在
- 27. 如何檢查文件是否存在?
- 28. 如何檢查域名是否存在?
- 29. 如何檢查表是否存在
- 30. 如何檢查xElement值是否存在?
是的......我想我假設大多數的共享主機有用戶PHP腳本運行setuid爲用戶,與他們的cron作業相同。我會編輯以澄清我的答案。 – Nathan 2011-02-07 20:55:47