0

我在服务器机器上有一些 cron 作业,计划做一些事情。我想让用户使用 Web 应用程序(jsp 页面)修改这些 cron 作业。因此,假设(示例场景)某些作业计划在下午 2 点运行,我希望用户可以选择更改其时间。

一开始看起来很微不足道,但现在我被困住了。我是 Linux 新手。目前如何创建cron作业是:crontab -e;然后我根据需要手动添加新作业。但我想通过 Web 界面向远程用户提供此功能。

请帮忙 !

4

1 回答 1

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。

于 2012-11-17T20:41:42.757 回答