我正在尝试设置一个自动的svn提交,在mac os 10.6下半小时运行,但我添加到cron的crontabs似乎没有效果和/或似乎甚至没有看到cron的.为了测试我做了一个简单的crontab和脚本:
crontab的:
*/2 * * * * /Users/username/crontest
其中用户名替换为我的系统用户名,因此指向我的主目录(是的,那些确实是每个值之间的标签 - 它们没有忠实地再现在该code部分)
我正在运行crontab -r第一个,然后运行crontab .mycrontab包含上面的行. crontab -l吐出上面的行,然后运行ps -A | grep cronshow /usr/sbin/cron运行,我假设它是mac os x下的cron守护进程.该/Users/username/crontest脚本只是将一行文本附加到文本文件中,如下所示:
echo "hi" >> /Users/username/crontest.txt
是什么赋予了?我很难过.
想象一下,脚本在这两组"条件"中运行:
sudo crontab./my-script.py我想要实现的是自动检测"调试模式",而无需--debug为脚本指定参数(例如).
是否有关于如何做到这一点的约定?是否有一个变量可以告诉我脚本所有者是谁?脚本是否有控制台stdout?运行一个ps | grep确定?
感谢您的时间.
我创建了一个Email-Queue数据库表.我将插入我的PHP应用程序需要发送到此表的所有电子邮件.
然后,另一个PHP脚本将查找所有未发送的电子邮件并发送它们.
我使用cronjobs运行此脚本.不幸的是,cronjobs每分钟最多只能运行一次.因此,在最坏的情况下,用户必须等待一分钟,直到他的电子邮件真的要发送.
我目前的解决方法是使用addtional sleep参数调用脚本并复制cronjobs.
例:
* * * * * curl emails.php?sleep=0 >/dev/null 2>&1
* * * * * curl emails.php?sleep=10 >/dev/null 2>&1
* * * * * curl emails.php?sleep=20 >/dev/null 2>&1
* * * * * curl emails.php?sleep=30 >/dev/null 2>&1
* * * * * curl emails.php?sleep=40 >/dev/null 2>&1
* * * * * curl emails.php?sleep=50 >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,脚本将每10秒运行一次.emails.php脚本的第一行是:
sleep($_REQUEST['sleep']);
Run Code Online (Sandbox Code Playgroud) 我继承了一个庞大的crontab,我需要维护和更新.我没有太多的经验或bash脚本(我认为我对基础知识有一个很好的掌握),我想做得很好.简短请求:任何"重构"凌乱的crontab和一组bash脚本的指南
长期请求:我遇到了很多问题,但很多人使用cron文件等我觉得我必须缺少一些大型信息库,最佳实践和工具 - 或者这只是一个风格上的差异那种编程?(我的偏见:为什么我可以使用工具更快,更一致,更好地手动执行某些操作?).
迄今为止的问题示例:
由于外部事件,crontab没有运行几天.与其他人一起,我们手动浏览列表,试图找出未运行的内容,我们需要重新运行的内容,以及我们需要编辑和运行早期日期等的脚本.我找不到:
事实证明,一份特定的报告已经运行了两年.它只是再次被要求,而且,它在crontab中!bash脚本刚刚破坏了对相关文件的路径引用.我找不到:bash文件的某种路径检查器?像网站链接检查器.是的,我最终将手动完成这些操作,但它至少会显示一些问题区域.
听起来有些时候,依赖进程之间的间隔太长或太短,因此在第一次运行之后发生了更新,或者在第二次调用之前第一次没有完成运行.我已经看到了一些可能的选项(例如anacron按顺序运行),但你会推荐什么?
还有大量基本无意义的电子邮件从crontab生成(脚本抛出错误但运行'正确',大多数情况下无声地失败,或只是打印非必要脚本的永久性).我会手动浏览脚本并尝试让它们提供更多有用的数据,或者"安静地成功",但是你知道 - 任何指导方针?
如果我对这个问题的理解或布局感到困惑,那么我道歉,但是嘿 - 你看到了我的问题!我需要去从新手,知道怎样做才能得到这个正确的,并没有进一步搞砸了一个敏感的系统.谢谢!
我已经构建了一个php文件来检查一些结果,所以我需要设置一个cronjob.
我设置一个每30分钟运行一次,以便结果发送.但是,我不知道为什么我的crontab每隔30分钟就没有运行.
以下是我设置crontab的方法:
*/30 * * * * php /var/www/html/result.php
Run Code Online (Sandbox Code Playgroud)
我已经确认我的文件目录是正确的.我不确定的是时间部分:是不是可以使用*/30 * * * *或30 * * * *?我设定*/30 * * * *并没有奏效.
一小时后运行15分钟和45分钟的cron作业的语法是什么?(所以每30分钟.)
语法是这样的:
15,45,30 * * * * wget -O /dev/null http://somesite.com/4_leads.php
Run Code Online (Sandbox Code Playgroud)
所以例如它会运行
2:15
2:45
3:15
3:45
4:15
4:45
Run Code Online (Sandbox Code Playgroud)
等等
我正在尝试构建一个PHP脚本来手动处理数据,以便以后将其转换为cronjob.这个脚本也从mysql和第三方soap获取数据.当我尝试从命令行运行它时,我有一个错误,脚本不运行.
表明:
./test.php: line 1: ?php: No such file or directory
Enter a number:
./test.php: line 5: syntax error near unexpected token `('
./test.php: line 5: `$line = trim(fgets(STDIN));'
Run Code Online (Sandbox Code Playgroud)
这是我脚本中的内容:
echo 'Enter a number:';
$line = trim(fgets(STDIN));
var_dump($line);
Run Code Online (Sandbox Code Playgroud)
我知道这个剧本有效,有什么不对?
使用PHP验证crontab条目的最佳方法是什么?我应该使用正则表达式还是外部库?我有一个PHP脚本,用于添加/删除crontab文件中的条目,但希望能够通过某种方式验证时间间隔部分是否为有效格式.
有人知道将文件提供给crontab -e的方法吗?我不能使用常规形式的crontab给它一个路径,但仍然需要替换整个内容.
也许设置编辑器的东西?