问题标签 [cron]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
10424 浏览

ruby-on-rails - 如何调试 cron 未执行给定脚本或其他脚本的问题?

我有一个希望每天运行的 Rails 脚本。我知道有很多方法,并且某些人不赞成使用 cron 的script/runner方法,但它似乎满足了我的需求。

但是,我的脚本没有按计划执行。

我的应用程序位于/data/myapp/current,脚本位于script/myscript.rb. 我可以手动运行它而不会出现问题root

当我这样做时,特殊日志文件 ( log/myscript.log) 会按预期记录到:

我将它设置为cron每天早上 4 点运行。 root的 crontab:

事实上,它看起来就像在今天早上之前尝试运行的一样!

但是,我的日志文件中没有条目,并且它应该更新的数据也没有得到更新。日志文件权限(作为测试)甚至设置为全局可写:

我在 CentOS 5 上运行。

所以我的问题是...

  1. 我还能在哪里寻找信息来调试它?
  2. 这可能是 SELinux 问题吗?是否有我可以设置或更改的安全上下文来解决此错误?

谢谢!

更新

感谢保罗和卢克。事实证明这是一个环境问题,将其捕获stderr到日志文件使我能够找到错误。

将特定的 Ruby 可执行文件添加到命令中就可以了:

0 投票
19 回答
78926 浏览

linux - 如何以编程方式创建新的 cron 作业?

我希望能够以编程方式添加新的 cron 作业,最好的方法是什么?

根据我的研究,似乎我可以转储当前的 crontab,然后附加一个新的,将其管道返回到 crontab:

有没有更好的办法?

0 投票
8 回答
5861 浏览

java - Java 库类来处理“回调”的预定执行?

我的程序有一个组件——称为调度程序——它允许其他组件注册它们想要被回调的时间点。这应该像 Unix cron 服务一样工作,即您告诉调度程序“在每整整一小时后十分钟通知我”。

我意识到Java中没有真正的回调。

这是我的方法,是否有一个图书馆已经做了这些事情?也可以随意提出改进建议。

注册对调度程序的调用传递:

  • 包含小时、分钟、秒、年月、dom、dow 的时间规范,其中每个项目可能未指定,意思是“每小时/分钟等执行一次”。(就像 crontabs 一样)
  • 一个包含数据的对象,当调度程序通知调用对象时,它将告诉调用对象做什么。调度程序不处理这些数据,只是将其存储并在收到通知时将其传回。
  • 对调用对象的引用

在启动时,或在新的注册请求之后,调度程序从当前系统时间的日历对象开始,并检查数据库中是否有任何条目与该时间点匹配。如果有,则执行它们并重新开始该过程。如果没有,Calendar 对象中的时间将增加一秒并重新检查 entreis。如此重复,直到有一个或多个匹配项。(离散事件模拟)

然后调度程序将记住该时间戳,每秒睡眠和唤醒以检查它是否已经存在。如果它碰巧醒来并且时间已经过去,它会重新开始,同样如果时间到了并且作业已经执行。


编辑:感谢您将我指向 Quartz。然而,我正在寻找更小的东西。

0 投票
5 回答
78001 浏览

windows - 在没有用户登录的情况下在 Windows 启动时运行脚本

这是一台 Windows 2003(或更高版本)的机器,每天早上都会开机,但直到几个小时后才有人登录。

我想利用中间的时间运行备份脚本 c:\script\backup.cmd

机器启动后如何在无人看管的情况下启动?

我尝试了 2 个注册表项,但这导致脚本在用户登录后运行(为时已晚):

最后我使用了Windows TaskScheduler,谁有这样的选择,但我想知道是否还有另一种可能?

0 投票
1 回答
8983 浏览

linux - XDG_SESSION_COOKIE 环境变量有什么用?

我最近一直在使用 crontab,因为在 Intrepid 中,gconftool 使用 dbus 后端,这意味着从 crontab 中使用时它不起作用。

为了使它工作,我必须在登录时导出相关的环境变量,以便在 cron 运行时找到 dbus 会话地址。

出于好奇,我想知道 cron可以看到什么环境,结果发现我只有HOME, LOGNAME, PATH, SHELL,CWD以及我身上的这个新环境, XDG_SESSION_COOKIE. 这看起来很奇怪,一些谷歌搜索已经提出了一些涉及它的错误或其他功能请求,但没有任何东西告诉我它做了什么。

我的直觉是,这个变量可用于查找在 cron 作业运行之前我必须导出到源文件的所有内容。

因此,我的问题是 a) 我可以吗?b) 如果是,怎么做?c) 它有什么(其他)作用?

谢谢大家

0 投票
8 回答
12616 浏览

windows - 类似 Cron 的 Windows 系统?

我正在寻找相当于 Windows 的 Cron 系统。这个想法是能够安排一个触发器并监控它是否成功运行。

系统需要做的事情如下:

  • 它应该能够触发 Win32 COM 对象和/或可执行文件。
  • 它应该能够触发 .NET COM 对象和/或 .NET 可执行文件。
  • 它应该能够触发以任何语言编写的脚本,无论是基于本机框架(Python、Perl、Ruby)还是基于 DLR(IronPython、Ruby.NET 等)
  • 脚本应介于需要几秒钟的简单脚本和可能需要半小时的相当繁重的脚本之间。

监控方面至关重要。所以基本上我正在寻找以下内容:

  • 如果脚本或可执行文件失败,则应发送电子邮件或其他通知机制。
  • 应该记录每个触发器,以便我们可以回顾一下代码何时失败。
  • 故障应该很容易通过某种调试输出或堆栈跟踪来跟踪。

是否有任何 Windows 开发人员创建了这样的系统?我知道在 UNIX 世界中有 Cron,但在 Windows 世界中呢?

0 投票
5 回答
5046 浏览

bash - 我想做一个有条件的cronjob

我有一个每小时运行的 cron 作业。它访问一个 xml 提要。如果 xml 提要不可用(这似乎每天发生一次),它会创建一个“失败”文件。这个“失败”文件中包含一些元数据,并在下一小时脚本再次运行并且 XML 提要再次工作时被删除。

我想要的是在第一个任务后几分钟运行第二个 cron 作业,查看目录中的“失败”文件,如果存在,重试第一个 cron 作业。

我知道如何设置 cron 作业,只是不知道如何使脚本像那样有条件。我是否以完全错误的方式解决这个问题?

0 投票
4 回答
1263 浏览

ruby-on-rails - 每分钟运行的邮件程序的最佳 Rails 解决方案

我有一个应用程序,它每分钟检查一次数据库,以查找当时应该发送的任何电子邮件。我正在考虑将其设为每分钟由 cron 作业运行的 rake 任务。会有更好的解决方案吗?

根据我的阅读,这并不理想,因为 rake 必须每分钟加载整个 rails 环境,这变得很昂贵。

想法?

谢谢。

0 投票
5 回答
9450 浏览

cron - 如何在 cron 中运行 php 脚本

我发现了很多关于这个的问题和文章,但我仍然有一些困难。我正在使用以下命令 /usr/bin/php home/domain.com/public_html/cron/script.php 我收到以下错误状态:404 Not Found X-Powered-By: PHP/5.2.8 Content-type :文本/html

未指定输入文件。

我正在使用 Cpanel,该文件托管在 domain.com/cron/script.php Anyideas,谢谢:p

0 投票
10 回答
271889 浏览

linux - 如果进程死了,如何编写 bash 脚本来重新启动进程?

我有一个 python 脚本,它将检查队列并对每个项目执行操作:

如何编写一个 bash 脚本来检查它是否正在运行,如果没有,则启动它。大致如下伪代码(或者它应该做类似的事情ps | grep?):

我将从 crontab 中调用它: