我在服务器计算机上安排了几个cron作业。我想让用户使用Web应用程序(jsp页面)修改这些cron作业。因此,让我们说(示例场景)某些作业计划在下午2点运行,我希望用户可以选择更改其时间。
从一开始看起来非常微不足道,但现在我被卡住了。我是Linux新手。目前如何创建cron作业:crontab - e;然后我根据需要手动添加新作业。但我想通过Web界面为远程用户提供此功能。
请帮忙!
答案 0 :(得分: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/'
最后,您可以通过将新文件传递给crontab命令再次将其提交给crontab。
结果将是上面讨论的三个命令的组合,并将通过管道连接:
crontab -l | sed 's/20 3 \* \* \* \/home\/somebody\/somescript.sh/30 4 \* \* \* \/home\/somebody\/somescript.sh/' | crontab
第一个命令会将当前的crontab列表到标准输出。然后sed将替换时间并将替换的文件传递给crontab命令,该命令将把它安装为新的crontab。
请注意,大多数servlet没有足够的系统权限来创建或修改crontab。