从java设置linux cron作业

时间:2013-11-13 07:33:27

标签: java cron crontab schedule

我希望能够从java程序中设置linux cron作业。

我知道要设置一个cron作业,我使用crontab工具:

crontab -e

然后指定cron表达式。

如何从java程序以编程方式执行此操作?

由于

2 个答案:

答案 0 :(得分:1)

您可以(假设您有权限)使用Java的许多文件I / O函数直接修改您的crontab文件。该文件可以(至少在我的系统上)在以下位置找到:

/var/spool/cron/crontabs/paxdiablo

(对于用户paxdiablo)。只需对此文件进行任何更改,然后将HUP信号发送到cron守护程序。

然而,直接编辑该文件是不受欢迎的,事实上它可能会受到保护。

要正确执行您可以使用crontab -l命令将当前内容捕获到文件(例如me.cron)。 crontab -l命令将您的crontab文件写入标准输出,而不像试图在编辑器中显示它的crontab -e

然后你可以使用你想要修改那个文件的任何方法(因为你创建了它而它是你的。)

然后,运行crontab me.cron将安装该文件(包含您所做的任何更改)并通知cron以便重新读取它。

答案 1 :(得分:0)

你可以这样做:

String cmd = "crontab -e";
ProcessBuilder builder = new ProcessBuilder("bash", "/c" , cmd);
builder.redirectErrorStream(true);
Process p = builder.start();