怎麼離開 at 工作排程 - Linux

Quintina avatar
By Quintina
at 2016-07-24T16:31

Table of Contents

※ 引述《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]";
$handle = popen("at 16:21 07242016", "w");
fwrite($handle, $command);
fclose($handle);
?>


2. 採用文字檔:
<?php
shell_exec("at 18:05 07242016 < /var/html/www/test.txt");

?>

附註: 假若其他朋友在試上面的code,發現在php cli執行可以收到信,
在網站上卻不能收到信,那有可能是web app被設在at拒絕名單了。
可以到/etc/at.deny 把代表你的web app的使用者刪掉。
例如: server是裝LAMP的話,使用者就是www-data

再次感謝k大>///<

--
Tags: Linux

All Comments

Caroline avatar
By Caroline
at 2016-07-27T01:07
內建php不早就有mail函數,這樣多此一舉
Sandy avatar
By Sandy
at 2016-07-31T02:14
誤會意思。你 io 重導例子內確認 test.txt 在正確目錄
內嗎
另外不是提供 popen 範例有測試過嗎
Hazel avatar
By Hazel
at 2016-08-05T01:24
另外你應該有裝命令列版本的php, php xxx.php 可以執行
Edith avatar
By Edith
at 2016-08-09T07:38
php cli 試了date > test.txt 不含at就可以 含at就不行
Robert avatar
By Robert
at 2016-08-14T07:06
IO重導例子 test.txt寫成絕對路徑 php cli可以執行 但是
Harry avatar
By Harry
at 2016-08-18T22:01
在網頁上點這個連結就不行
William avatar
By William
at 2016-08-22T04:40
確認檔案權限與selinux設定
Christine avatar
By Christine
at 2016-08-26T21:39
檔案權限send_mail.php和test.txt都是777了 然後不知道
Margaret avatar
By Margaret
at 2016-08-30T05:46
要搞懂selinux的哪一部分呢? (第一次聽到這個)
Agnes avatar
By Agnes
at 2016-09-04T00:21
setenforce 0 暫時關閉後測試
Joseph avatar
By Joseph
at 2016-09-04T04:59
先問你用哪個linux系統,rh based 才有selinux
Todd Johnson avatar
By Todd Johnson
at 2016-09-06T13:37
ubuntu
Carol avatar
By Carol
at 2016-09-10T05:24
我知道問題在哪裡了>< 要去/etc/at.deny把 www-data刪掉

怎麼離開 at 工作排程

Charlie avatar
By Charlie
at 2016-07-24T00:08
※ 引述《abby8050 (LoRdOfCrEaTuRe)》之銘言: : 在命令列執行 : at now + 1 minute andamp;andamp; echo and#39;Helloand#39; : 就會進入at prompt : 接著打Ctrl d : 就會送出工作 : 請問要如何用命令表達 ...

怎麼離開 at 工作排程

William avatar
By William
at 2016-07-23T23:25
在命令列執行 at now + 1 minute andamp;andamp; echo and#39;Helloand#39; 就會進入at prompt 接著打Ctrl d 就會送出工作 請問要如何用命令表達 Ctrl d 因為我是要把at的命令寫在PHP檔的shell_exec()裡面 例如說 and ...

Ubuntu + 兩個 Win10 多重開機

Olive avatar
By Olive
at 2016-07-23T23:04
=========== 搞定紀錄 Start ====== 使用 Easy Recovery Essentials https://neosmart.net/wiki/easyre/ Automated Repair 兩個 Win10 partition 然後用依照下面link rebuild grub2 ...

VNC與RDP遠端 連接ubuntu的問題

Donna avatar
By Donna
at 2016-07-22T13:57
※ 引述《GGrunrunder (軟軟海參)》之銘言: : 小弟目前是14.4版的OS : 在各台ubuntu之間連線是沒問題的 : 不過使用win提供的VNC程式 像是 UltraVNC 要連到ubuntu : 完全沒有反應 : 請問是在哪邊需要設定嗎? Ubuntu 內建的 vnc s ...

evolution 突然無法收信

Bethany avatar
By Bethany
at 2016-07-19T22:48
最近發現我的 evolution 可以寄信但收不到信 不管是使用 evolution 寄信 還是用網頁登入信箱去寄信 都收不到信 而且出現以下錯誤訊息: 無法從 POP 伺服器 pop.gmail.com 讀取有效的問候語 請問這是什麼情況?問候語是什麼東西啊…QQ 謝謝… - ...