【问题标题】: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 界面向远程用户提供此功能。

请帮忙!

【问题讨论】:

  • 所以我间接的意思是如何使用我可以使用我的 servlet 调用的脚本来修改现有的 cron 作业。类似的问题已经发布 stackoverflow.com/questions/4880290/… 。但没有令人满意的工作解决方案。 :(

标签: 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。

【讨论】:

    猜你喜欢
    • 2017-05-26
    • 1970-01-01
    • 2011-07-25
    • 2017-03-14
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    相关资源
    最近更新 更多