2012-11-17 55 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。

相关问题