Perl 脚本中的 CRUD cron 条目
Posted
技术标签:
【中文标题】Perl 脚本中的 CRUD cron 条目【英文标题】:CRUD cron entries from Perl script 【发布时间】:2011-06-30 16:50:24 【问题描述】:是否可以从该用户运行的 perl 脚本控制用户 crontab 条目?假设我要读取、写入和删除条目。
我查看了 Schedule::Cron 并不太明白。我是否正确假设它与每个用户的实际 crontab 无关?
另外,关于 Schedule::Cron,它只是一个必须始终在系统上运行的程序是否正确?因此,如果系统被关闭并再次打开,那么它将不会运行(与 cron 不同 - 当然,除非程序是由不同的系统调度程序启动的,例如 Cron;在这种情况下,它的意义何在?)
理想情况下,我想在带有任务调度程序的 Windows 系统上做同样的事情。
关键是控制调度行为的脚本(无论是 crontab 本身还是类似 crontab 的行为)需要能够退出,并且 cron 条目应该保留。这是因为脚本将在控制 GUI 的事件循环中调用,因此如果用户退出 GUI,程序需要退出,但用户创建的 cron 作业需要保留。同样,如果 GUI 重新启动(并且事件循环重新启动),应该可以编辑和删除计划任务。
(编辑:Schedule::At for one off jobs 在 *Nix 系统上看起来业务。但是仍然在 Windows 上苦苦挣扎 - Win32::AdminMisc 和 Win32:TaskScheduler 模块看起来不再需要维护)
【问题讨论】:
Schedule::Cron 只是将 cron 的功能带入您的 perl 脚本。现在它与 cron 守护进程交互。因此,当您的脚本退出时,将不再调用任何操作。 【参考方案1】:我能找到的最有希望的选项是Config::Crontab。
Config::Crontab - 读/写 Vixie 兼容的 crontab(5) 文件
随时尝试在CPAN search site 上搜索自己。
【讨论】:
好吧,我花了一上午的时间在 CPAN 上问... 因此,关于 Schedule::Cron 的详细问题,似乎是最有希望的候选人。 Config::Crontab 没有为 Windows 提供解决方案,而 Schedule::Cron 似乎提供了。尽管如此,我也会更详细地查看 Config::Crontab。【参考方案2】:在 Win32 命名空间 (Win32::TaskScheduler) 中有 Windows 解决方案。在我的脑海中,我不知道任何可以跨平台工作的东西。
【讨论】:
我在此期间发现了这个 - 不幸的是,它无法与 Strawberry Perl 一起使用。以上是关于Perl 脚本中的 CRUD cron 条目的主要内容,如果未能解决你的问题,请参考以下文章