大家好,
小弟的網頁檔名為 add_job.php
裡面的程式碼如下如下:
<?php
$output = shell_exec('sudo crontab -u pi -l');
$job = '*/1 * * * * /usr/bin/php5 /home/pi/Downloads/job.php'. PHP_EOL;
file_put_contents('/var/www/crontab.txt', $output. $job);
exec('sudo crontab -u pi /var/www/crontab.txt');
echo 'crontab_jobs: '. shell_exec('sudo crontab -u pi -l'). '<br />';
?>
程式碼中出現的 pi 是小弟的作業系統 Raspbian 的預設帳號,
sudo 則是用來在 Raspbian 中,暫時化身 root 的權限執行 command
小弟的想法是:
先利用 sudo crontab -u pi -l 取得帳號 pi 現有的排程任務放到 $output,
然後 把我要新增的排程 $job 接在 $output 後面,寫入 /var/www/crontab.txt 中,
再執行 sudo crontab -u pi /var/www/crontab.txt
讓 crontab 為帳號 pi 新增 /var/www/crontab.txt 中的排程,
最後用 echo 'crontab_jobs: '. shell_exec('sudo crontab -u pi -l'). '<br />';
在網頁上輸出 目前的 排程 來確認 。
(其中/var/www 是我用來放置網頁的目錄,crontab.txt 和 add_job.php 都在這個目錄底下)
目前小弟遇到的問題是:
用瀏覽器觸發 add_job.php 後,
$job 有寫入 /var/www/crontab.txt,
但是,$output 是 ""(空的,
exec('sudo crontab -u pi /var/www/crontab.txt');
上面這句也沒有正常執行 (因為我在 cmd 中輸入 sudo crontab -u pi -l之後,
系統回應 no crontab for pi )
而
echo 'crontab_jobs: '. shell_exec('sudo crontab -u pi -l'). '<br />';
只有顯示 crontab_jobs:
表示 shell_exec('sudo crontab -u pi -l') 也沒有正常執行
但是當我直接在 cmd 中,輸入
sudo crontab -u pi -l
sudo crontab -u pi /var/www/crontab.txt
卻能夠順利的為帳號 pi 排程以及列出 pi 目前的排程
麻煩各位版友為小弟指點迷津,
感激不盡!!!
小弟的網頁檔名為 add_job.php
裡面的程式碼如下如下:
<?php
$output = shell_exec('sudo crontab -u pi -l');
$job = '*/1 * * * * /usr/bin/php5 /home/pi/Downloads/job.php'. PHP_EOL;
file_put_contents('/var/www/crontab.txt', $output. $job);
exec('sudo crontab -u pi /var/www/crontab.txt');
echo 'crontab_jobs: '. shell_exec('sudo crontab -u pi -l'). '<br />';
?>
程式碼中出現的 pi 是小弟的作業系統 Raspbian 的預設帳號,
sudo 則是用來在 Raspbian 中,暫時化身 root 的權限執行 command
小弟的想法是:
先利用 sudo crontab -u pi -l 取得帳號 pi 現有的排程任務放到 $output,
然後 把我要新增的排程 $job 接在 $output 後面,寫入 /var/www/crontab.txt 中,
再執行 sudo crontab -u pi /var/www/crontab.txt
讓 crontab 為帳號 pi 新增 /var/www/crontab.txt 中的排程,
最後用 echo 'crontab_jobs: '. shell_exec('sudo crontab -u pi -l'). '<br />';
在網頁上輸出 目前的 排程 來確認 。
(其中/var/www 是我用來放置網頁的目錄,crontab.txt 和 add_job.php 都在這個目錄底下)
目前小弟遇到的問題是:
用瀏覽器觸發 add_job.php 後,
$job 有寫入 /var/www/crontab.txt,
但是,$output 是 ""(空的,
exec('sudo crontab -u pi /var/www/crontab.txt');
上面這句也沒有正常執行 (因為我在 cmd 中輸入 sudo crontab -u pi -l之後,
系統回應 no crontab for pi )
而
echo 'crontab_jobs: '. shell_exec('sudo crontab -u pi -l'). '<br />';
只有顯示 crontab_jobs:
表示 shell_exec('sudo crontab -u pi -l') 也沒有正常執行
但是當我直接在 cmd 中,輸入
sudo crontab -u pi -l
sudo crontab -u pi /var/www/crontab.txt
卻能夠順利的為帳號 pi 排程以及列出 pi 目前的排程
麻煩各位版友為小弟指點迷津,
感激不盡!!!