Re: [問題] 怎麼離開 at 工作排程

作者: abby8050 (LoRdOfCrEaTuRe)   2016-07-24 16:31:58
※ 引述《kenduest (小州)》之銘言::
: 若你寫 php 是希望達成執行 at 然後可以把資料餵给他,也就是直接程式與 at 互動的話
: 一般會用 popen 方式. 可以查一下 php 本身官方下面的 popen 例子很多程式碼參考
: http://php.net/manual/en/function.popen.php
: 比方:
: <?php
: $command= <<<EOF
: ls -l / > /tmp/ls-result.txt
: date > /tmp/date-result.txt
: EOF;
: $handle = popen("at 22:00","w");
: fwrite($handle,$command);
: fclose($handle);
: ?>
: 最後題外話 shell_exec("cd /"); 這樣一行敘述實際上執行之後,你後續的程式執行工作
: 目錄都還不會在 / 那邊,因為他是 spawn 一個 shell 去執行,執行之後結束該 shell
: 就消失了。除非你剛好一行內有 cd 到其他目錄然後又執行其他命令敘述搭配一起用。
其實是想在client指定的時間才寄出信。
以下方式都可以收到信,問題已解決。
1. 採用popen:
<?php
$command = "mail -s 'title' [email protected]/*
作者: kenduest (小州)   2016-07-24 19:12:00
內建php不早就有mail函數,這樣多此一舉誤會意思。你 io 重導例子內確認 test.txt 在正確目錄內嗎另外不是提供 popen 範例有測試過嗎另外你應該有裝命令列版本的php, php xxx.php 可以執行嗎
作者: abby8050 (LoRdOfCrEaTuRe)   2016-07-24 19:41:00
php cli 試了date > test.txt 不含at就可以 含at就不行IO重導例子 test.txt寫成絕對路徑 php cli可以執行 但是在網頁上點這個連結就不行
作者: kenduest (小州)   2016-07-24 20:30:00
確認檔案權限與selinux設定
作者: abby8050 (LoRdOfCrEaTuRe)   2016-07-24 20:46:00
檔案權限send_mail.php和test.txt都是777了 然後不知道要搞懂selinux的哪一部分呢? (第一次聽到這個)
作者: kenduest (小州)   2016-07-24 20:57:00
setenforce 0 暫時關閉後測試先問你用哪個linux系統,rh based 才有selinux
作者: abby8050 (LoRdOfCrEaTuRe)   2016-07-24 21:04:00
ubuntu我知道問題在哪裡了>< 要去/etc/at.deny把 www-data刪掉
繼續閱讀

Links booklink

Contact Us: admin [ a t ] ucptt.com