【问题标题】:Rescheduling a cron job remotely using a web app使用 Web 应用程序远程重新安排 cron 作业
【发布时间】:2012-11-06 05:34:22
【问题描述】:
我在服务器机器上有一些 cron 作业,计划做一些事情。我想让用户使用 Web 应用程序(jsp 页面)修改这些 cron 作业。因此,假设(示例场景)某些作业计划在下午 2 点运行,我希望用户可以选择更改其时间。
一开始看起来很琐碎,但现在我被困住了。我是 Linux 新手。目前如何创建cron作业是:crontab -e;然后我根据需要手动添加新作业。但我想通过 Web 界面向远程用户提供此功能。
请帮忙!
【问题讨论】:
标签:
linux
jsp
web-applications
cron
【解决方案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。