2012-11-17 96 views
0

我在服務器計算機上執行幾項cron作業,計劃執行幾件事情。我想讓用戶使用Web應用程序(jsp頁面)修改這些cron作業。因此,讓我們說(示例場景)某些工作計劃在下午2點運行,我希望用戶選擇更改其時間。使用web應用程序遠程重新計劃cron作業

它看起來很微不足道,但現在我卡住了。我是Linux新手。如何創建cron作業目前是:crontab - e;然後根據需要手動添加新作業。但我想通過Web界面向遠程用戶提供此功能。

請幫忙!

+0

所以我間接的意思是如何使用我可以使用我的servlet調用的腳本來修改現有的cron作業。類似的問題已經發布http://stackoverflow.com/questions/4880290/linux-how-do-i-create-a-crontab-thru-a-script。但沒有令人滿意的工作方案:( – Andy897

回答

1

比方說,你的crontab有如下一行:

20 3 * * * /home/somebody/somescript.sh 

您可以使用以下命令列出crontab:

crontab -l 

然後你可以使用sed的命令更改計劃的時間:

sed 's/20 3 \* \* \* \/home\/somebody\/somescript.sh/30 4 \* \* \* \/home\/somebody\/somescript.sh/' 

最後,您將通過將新文件傳遞給c來再次將其提交給crontab rontab命令。

其結果將是上面討論的三個命令的組合,將通過配管被連接:

crontab -l | sed 's/20 3 \* \* \* \/home\/somebody\/somescript.sh/30 4 \* \* \* \/home\/somebody\/somescript.sh/' | crontab 

第一個命令將列出當前的crontab標準輸出。然後,sed將替換時間並將替換的文件傳遞給crontab命令,該命令會將其安裝爲新的crontab。

請注意,儘管大多數servlet沒有足夠的系統權限來創建或修改crontab。

相關問題