我希望能够从java程序中设置linux cron作业。
我知道要设置一个cron作业,我使用crontab工具:
crontab -e
然后指定cron表达式。
如何从java程序以编程方式执行此操作?
由于
答案 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();