我希望能够从 java 程序设置 linux cron 作业。
我知道要设置一个 cron 作业,我使用 crontab 工具:
crontab -e
然后指定 cron 表达式。
我如何从 Java 程序以编程方式执行此操作?
谢谢
您可以(假设您有权限)使用 Java 的许多文件 I/O 函数直接修改您的 crontab 文件。该文件(至少在我的系统上)可以在以下位置找到:
/var/spool/cron/crontabs/paxdiablo
(对于用户paxdiablo
)。只需对该文件进行任何更改,然后向cron
守护程序发送 HUP 信号。
但是,直接编辑该文件是不受欢迎的,实际上它可能会受到保护。
要正确执行此操作,您可以使用该crontab -l
命令将当前内容捕获到文件(例如,me.cron
)。该crontab -l
命令将您的 crontab 文件写入标准输出,crontab -e
这与尝试在编辑器中显示它不同。
然后,您可以使用任何您不想修改的方式来修改该文件(它是您的,因为您创建了它)。
然后,运行crontab me.cron
将安装该文件(以及您所做的任何更改)并通知cron
它以重新读取它。
你可以这样做:
String cmd = "crontab -e";
ProcessBuilder builder = new ProcessBuilder("bash", "/c" , cmd);
builder.redirectErrorStream(true);
Process p = builder.start();