标签: cron-task

linux"sudo crontab -e"和"crontab -e"之间的区别

我注意到,当我键入时,sudo crontab -e我没有看到我的cron命令,但是当我这样做时,只有crontab -e我的命令.

2之间有区别吗?如果有,我应该把我的cron命令放在哪里,它应该在sudo中还是没有sudo?

谢谢!

linux ubuntu cron cron-task

15
推荐指数
1
解决办法
7613
查看次数

logrotate cron job不能旋转某些日志

我在"logrotate.d"目录中添加了两个脚本,以便我的应用程序日志被轮换.这是其中一个的配置:

<myLogFilePath> {
  compress
  copytruncate
  delaycompress
  dateext
  missingok
  notifempty
  daily
  rotate 30
}
Run Code Online (Sandbox Code Playgroud)

"cron.daily"目录中有一个"logrotate"脚本(似乎每天按照cron日志运行):

#!/bin/sh

echo "logrotate_test" >>/tmp/logrotate_test
#/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
/usr/sbin/logrotate -v /etc/logrotate.conf &>>/root/logrotate_error

EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
Run Code Online (Sandbox Code Playgroud)

第一个echo语句正在工作.
但是我发现我的应用程序日志没有被轮换,而其他日志如httpd正在被轮换**
**我也没有在提到的"logrotate_error"文件中看到任何输出
(对所有用户都有写入权限).

然而,系统日志说:"logrotate:ALERT异常退出[1]"

但是当我手动在"cron.daily"脚本中运行相同的"logrotate"时,一切似乎都正常.

为什么它不能在每日cron时间表中旋转?我在这里做错了吗?
如果我得到这个急需的帮助,那就太棒了.

更新: 看起来,这是因为selinux - 我的用户主目录中的日志文件受到selinux施加的限制以及运行时logrotate脚本:

SELinux is preventing /usr/sbin/logrotate from getattr access on the file /home/user/logs/application.log
Run Code Online (Sandbox Code Playgroud)

cron logging logrotate cron-task log-rotation

14
推荐指数
2
解决办法
2万
查看次数

Cron作业无法加载gem

我有一个ruby脚本连接到Amazon S3存储桶并下载最新的生产备份.我测试了脚本(这很简单),它工作正常.

但是,当我将此脚本安排为作为cron作业运行时,它似乎在加载Amazon(aws-s3)gem时失败.

我脚本的前几行看起来像这样:

#!/usr/bin/env ruby
require 'aws/s3'
Run Code Online (Sandbox Code Playgroud)

正如我所说,当我手动运行此脚本时,它工作正常.当我通过计划的cron作业运行它时,它在尝试加载gem时失败:

`require':没有要加载的文件 - aws/s3(LoadError)

此脚本的crontab如下所示:

0 3 * * * ~/Downloader/download.rb > ~/Downloader/output.log 2>&1
Run Code Online (Sandbox Code Playgroud)

我原本以为这可能是因为cron作为一个不同的用户运行,但是当我在我的ruby脚本开始时执行'whoami'时它告诉我它是以我一直使用的同一个用户运行的.

我还做了一个bundle init并将gem添加到我的gemfile中,但这似乎没有任何影响.

为什么cron无法加载gem?我正在运行Ubuntu.

ruby ubuntu cron rubygems cron-task

13
推荐指数
3
解决办法
6415
查看次数

每小时运行 cron 作业/任务

每小时运行一项作业的正确语法是哪一种?

0 0 * * * *

0 0 */1 * * *

还有他们有什么不同?

cron jobs schedule job-scheduling cron-task

12
推荐指数
1
解决办法
4万
查看次数

运行cron作业时会在查找匹配的``'时创建错误的意外EOF

我可以看到这是"常见的"错误,但在我的情况下无法找到解决方案......

运行Crontab作业:

expr `date +%W` % 2 > /dev/null && curl https://mysite.com/myscript
Run Code Online (Sandbox Code Playgroud)

它会导致错误:

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

你能帮我解决一下吗?非常感谢你提前!

cron crontab cron-task

10
推荐指数
1
解决办法
3993
查看次数

如何使用cron作业安排动态功能?

我想知道如何安排动态(自动填充数据)功能在保存的时间每天自动运行?

假设我有一个表单,一旦单击该按钮,它就会将数据发送到函数,该函数会发布数据.我只想自动化,这样我就不必按下按钮了.

<ul>
    <?php 
    foreach($Class->retrieveData as $data)
    {
        <form method="post" action="">
            <li>
                <input type="hidden" name="name">'.$data['name'].'<br/>
                <input type="hidden" name="description">'.$data['description'].'<br/>
                <input type="submit" name="post_data"  value="Post">
            </li>
        </form>
    }
    ?>
</ul>
Run Code Online (Sandbox Code Playgroud)

现在,表单将数据传递给函数.

if(isset($_POST['post_data'])) // if post_data button is clicked then it runs myFunction()
{
    myFunction();
}

myFunction()
{
    $name        = $_POST['name'];
    $description = $_POST['description'];
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下操作,但问题是Cron Job只能运行整个.php文件,而我正在检索从MySQL运行的已保存时间.

foreach($Class->getTime() as $timeData)
{
    $timeHour    = $timeData['timeHour'];
    $timeMinute = $timeData['timeMinute'];

    $hourMin    = date('H:i');
    $timeData   = ''.$timeHour.':'.$timeMinute.'';

    if($hourMin == $timeData)
    {
        run myFunction.
    }
}
Run Code Online (Sandbox Code Playgroud)

$hourMin是当前小时:分钟与从Mysql自动运行的保存时间相匹配.那么如果$hourMin …

php mysql cron cron-task

10
推荐指数
2
解决办法
1万
查看次数

cron,crontab和cronjob之间的区别?

从技术上讲,是什么之间的区别cron,crontab以及cronjob

从我可以收集到的,cron是服务器上的实用程序,crontab是包含时间间隔和命令的文件,并且cronjob是实际命令(或包含命令的文件/脚本).

它是否正确?

cron crontab cron-task

9
推荐指数
3
解决办法
6335
查看次数

Crontab 没有运行 local/bin/ 脚本。卡特琳娜,比格苏尔

我刚刚开始使用 crontab 并且遇到了一些问题。我已经阅读了一些关于如何在 macOS 上使用它的帖子,但它仍然无法正常工作。

所以,我写crontab -e,然后将其编辑为 */1 * * * * cliclick -w 1 m:3,3(例如) - 这意味着每 1 分钟重复点击 x=3;y=3 。一切都没有改变。但是,当我从终端仅使用此命令时,一切正常。

我已经尝试过创建一个script.sh文件,并且情况相同:手动命令有效,而 crontab 无效。

也许,我做错了什么? 更新:crontab 具有完整的磁盘访问权限。

UPDATE2: 我尝试在 BigSur 上再做一次。首先,我使用一个更简单的命令,如echo

* * * * * echo 'test' >> /*/Desktop/text.txt 它运作良好。之后,我自己写script.sh

echo '2test' >> /Users/***/Desktop/t.txt
/usr/local/bin/cliclick -w 1 m:1,3
cliclick -w 1 m:55,44
Run Code Online (Sandbox Code Playgroud)

并且 cliclick 不起作用,因为其他 bin 文件位于/usr/local/bin/(cliclick 位于此路径中)

请注意,如果我执行 ./script.sh 然后 cliclick 在这两种情况下都可以正常工作。

我彻底地用Google搜索,发现运行cliclick(等)是不是有可能,虽然crontab …

macos cron cron-task macos-big-sur

9
推荐指数
3
解决办法
1万
查看次数

使用Python不断监视程序/进程

我试图不断监视一个基本上是Python程序的进程.如果程序停止,那么我必须再次启动程序.我正在使用另一个Python程序来执行此操作.

例如,假设我必须不断运行一个名为的进程run_constantly.py.我最初手动运行该程序,将其进程ID写入文件"PID"(位置输出/ PROCESSID/PID).

现在我运行另一个程序,它具有以下代码来监视run_constantly.pyLinux环境中的程序:

def Monitor_Periodic_Process():

    TIMER_RUNIN = 1800
    foo = imp.load_source("Run_Module","run_constantly.py")
    PROGRAM_TO_MONITOR = ['run_constantly.py','out/PROCESSID/PID']
    while(1):
        # call the function checkPID to see if the program is running or not
        res = checkPID(PROGRAM_TO_MONITOR)
        # if res is 0 then program is not running so schedule it
        if (res == 0):
            date_time = datetime.now()
            scheduler.add_cron_job(foo.Run_Module, year=date_time.year, day=date_time.day, month=date_time.month, hour=date_time.hour, minute=date_time.minute+2)
            scheduler.start()
            scheduler.get_jobs()
            time.sleep(TIMER_NOT_RUNIN)
            continue
        else:
            #the process is running sleep and then monitor again
            time.sleep(TIMER_RUNIN) …
Run Code Online (Sandbox Code Playgroud)

python daemon scheduling cron-task

8
推荐指数
1
解决办法
2万
查看次数

CakePHP 2.3.8:在CronController.php中调用另一个Controller函数

对于CakePHP 2.3.8如何在CronController.php中调用Another Controller函数

有任何想法吗?

controller cron-task cakephp-2.0 cakephp-2.3

8
推荐指数
3
解决办法
3万
查看次数