2014-01-31 40 views
1

運行的腳本,我越來越有問題「在」命令來運行一個腳本文件: 這一個正常工作:不能得到「在」 linux下

[[email protected] init.d]$ at now + 2 min 
at> echo "this is my test" | write myid >/dev/null 2>&1 
at> <EOT> 
job 20 at Thu Jan 30 17:26:00 2014 

但沒有任何反應,當我嘗試使用「在」運行我的腳本:

[[email protected] init.d]$ at now + 2 min 
at> ./users/myid/bashtest.sh 
at> <EOT> 
job 21 at Thu Jan 30 17:31:00 2014 

據我所看到的作業被添加到「在」隊列並刪除指定的時間後,卻什麼也沒有發生!它在別的地方執行了嗎?

非常感謝

+0

您是否嘗試過指定腳本的絕對路徑? – ruakh

+0

'at'應該記住工作目錄,所以相對路徑應該工作。 – Barmar

+0

'bashtest.sh'裏有什麼?嘗試在'at'腳本的頂部添加'exec> /tmp/at.log 2>&1'來記錄所有輸出'/ tmp/at.log'。 –

回答

0

at命令通常是由於可能的安全問題被禁用。在過去,可以設置at作業,然後進入隊列並在作業開始前更改包括環境的腳本。

您需要考慮的一件事是at.allowat.deny文件。這些有時保存在/etc目錄下,有時保存在/var下,有時保存在/usr/lib/cron下。您需要查看手冊頁以查找實際位置。如果有一個空的at.allow文件,則無法運行任何作業。

另一件事你應該看看你的atrun命令的聯機幫助頁。 atrun命令執行at作業。在某些系統上,必須在根的crontab文件中設置atrun命令。在Mac上,它由launchd守護進程運行,並且您必須運行launchctl命令來啓動atrun進程。

+0

@ David W.正如我所說的,第一份工作只是一個回聲命令,效果很好,所以我不認爲'at'沒有任何問題,或者是否存在? – user3255590

+0

@ David W.有一個at.deny文件,我沒有權限打開,並且沒有at.allow;我試圖做一個,但它不允許我。但是如果'at'不允許運行,我的第一個示例如何運行? – user3255590

+0

@ user3255590當您設置At作業時,通常會在At隊列中創建一個等待執行的shell腳本。您可能需要查看該shell腳本,並查看是否可以將其作爲shell腳本運行。這可能會讓你知道問題出在哪裏。 –