标签: cron

CRON 中什么也没有发生

我为 crontab 输入了一个命令,但似乎什么也没发生。

#vi /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# …
Run Code Online (Sandbox Code Playgroud)

fedora cron amazon-ec2

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

将 bash 脚本用于 cron 作业有什么好处?

根据我的理解,您可以通过编辑来编写您的 crons

crontab -e
Run Code Online (Sandbox Code Playgroud)

我发现有几个来源在 cron 作业中引用了 bash 脚本,而不是为行编写作业行。

您可以使用 bash 脚本将许多任务合并为一个 cron 作业的唯一好处是什么?


新手的附加问题:编辑 crontab -e 指的是一个文件正确吗?我注意到,如果我打开 crontab -e 并关闭而不进行编辑,当我再次打开文件时,会有不同的数字扩展名,例如:

"/tmp/crontab.XXXXk1DEaM" 0L, 0C
Run Code Online (Sandbox Code Playgroud)

我虽然 crontab 存储在 /var/spool/cron 或 /etc/crontab 中?

为什么它将 cron 存储在 tmp 文件夹中?

bash cron

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

在不同的时间生成自动化的 cron 作业

问候我是 cron 的新手。是否可以每小时随机运行一次自动 cron 作业?

语法应该每天都不同,例如:

34,57,44,30,37,31,38,30,44,35,36,56,46,55,54,40,45,44,42,35,50,59,48,34,52,* * * * *
Run Code Online (Sandbox Code Playgroud)

据我所知,上面的代码将在 0:34、01:57、02:44.... 到 23:52 发送 cron 作业。我目前正在用 PHP 生成语法,但我不确定如何将它发送到 cron 命令或者它是否安全。请告知如何实现这一点。

linux php cron

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

Linux 执行权限

-rw-r--r--. 1 myusername developers 169 May 17 09:01 build.sh
Run Code Online (Sandbox Code Playgroud)

为什么我可以从命令行执行 build.sh 脚本,如果它没有执行权限,但是当 crontab 尝试执行它时,它失败了?

linux permissions bash cron

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

根 crontab 不执行脚本

我的根 crontab 中列出了一个脚本

07 9 * * * /opt/HLRSDATA_2010_OCT/HLRS_Scheduler_sp.sh > /opt/HLRSDATA_2010_OCT/logs/HLRTKJob.log
Run Code Online (Sandbox Code Playgroud)

该脚本包含以下内容

#!/bin/bash
echo HLRSData Scheduler
cd /opt/HLRSDATA_2010_OCT
/usr/bin/java -Xms32m -Xmx1024m -cp ".:HLRSDATA_Premium.jar:lib/commons-net-1.4.1.jar:lib/jakarta-oro-2.0.8.jar:lib/mysql-connector-java-3.1.12-bin.jar:lib/x
ercesImpl.jar" mx.com.txm.hlrsdata.scheduler.HLRS_Scheduler

/opt/HLRSDATA_2010_OCT/HLRS_Scheduler_Reports_sp.sh

/opt/HLRSDATA_2010_OCT/HLRS_Scheduler_Reports_Redundant_sp.sh
/opt/HLRSDATA_2010_OCT/HLRS_Delete_Data_sp.sh
/opt/HLRSDATA_2010_OCT/HLRS_Delete_Data_Redundant_sp.sh
/opt/HLRSDATA_2010_OCT/HLRS_Delete_Files.sh
Run Code Online (Sandbox Code Playgroud)

脚本没有运行,我检查了 /var/log/cron ,甚至没有任何迹象表明它至少试图运行某些东西。

日志:

Oct 18 08:47:19 isvahlrtk01 crontab[46449]: (root) END EDIT (root)
Oct 18 08:47:22 isvahlrtk01 crontab[46455]: (root) BEGIN EDIT (root)
Oct 18 08:47:35 isvahlrtk01 crontab[46455]: (root) REPLACE (root)
Oct 18 08:47:35 isvahlrtk01 crontab[46455]: (root) END EDIT (root)
Oct 18 08:57:18 isvahlrtk01 crontab[46540]: (root) LIST (root)
Oct 18 09:00:18 …
Run Code Online (Sandbox Code Playgroud)

automation linux cron shell-scripting rhel6

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

有效管理 crontab

我的 crontab 看起来像这样;

1 * * * * /var/www/cron/site1.sh > /dev/null 2>&1

0 * * * * /var/www/cron/site2.sh > /dev/null 2>&1

3 * * * * /var/www/cron/site3.sh > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

这很好用,让我将所有讨厌的小脚本调用放在一个地方,而不是让 crontab 比现在更难阅读。

但是,当 site2.sh需要一个脚本每天运行一次,另一个脚本每周运行一次,另一个脚本每 5 分钟运行一次。当然,随着新脚本的添加时间不同,情况会变得更糟。

有没有更好的办法?

编辑

更好我的意思是让它更易于管理,拥有一个大的 crontab 是不可管理的,但也不是到处都有脚本。

不一定是 GUI。

cron

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

cron 作业重复运行,为什么?

为什么这个 cron 作业会随着时间的推移重复执行,我该怎么做才能阻止它?

我有一个应该在每天早上 4 点运行的 cron 工作。它击中了一个 php 脚本,该脚本执行一些日常数据分析,并在正常情况下运行一次(大约需要 2-3 分钟才能完成)并退出。它一直在工作,但最近它在服务器崩溃的时候运行得很糟糕。我调查并发现了以下内容。crontab 条目如下所示:

* 4 * * * /usr/bin/wget -q -O /dev/null 'http://123.456.78.90/index/thing?param=1'
Run Code Online (Sandbox Code Playgroud)

在我的日志文件中,我看到:

123.456.78.90 - - [28/Nov/2012:04:00:01 -0800] "GET /index/thing?param=1 HTTP/1.0" 200 4181 "-" "Wget/1.12 (linux-gnu)"
123.456.78.90 - - [28/Nov/2012:04:01:01 -0800] "GET /index/thing?param=1 HTTP/1.0" 200 4181 "-" "Wget/1.12 (linux-gnu)"
123.456.78.90 - - [28/Nov/2012:04:02:01 -0800] "GET /index/thing?param=1 HTTP/1.0" 200 4181 "-" "Wget/1.12 (linux-gnu)"
// and then later it ends with (note that it isn't trying every minute now)
123.456.78.90 - …
Run Code Online (Sandbox Code Playgroud)

php wget cron apache-2.2

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

从 1:30 am - 6:00 am 每 5 分钟运行一次的 Cron 表达式

我希望在这些非常特定的时间开展工作。

这甚至可以用一种表达方式完成吗?

cron

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

Cronjobs 将存档放在错误的目录中

我正在运行默认 Debian linux 的 Amazon ec2 实例上运行一个网站。我设置了一个 cronjob 来复制站点文件,获取数据库印记,然后将它们压缩。我想将文件存档保存在与 bash 脚本本身相同的目录中,该目录位于 /var/www/[a new directory]/[a new directory]/[etc]/ 中的深处。我创建了一个只能读取和转储数据库,但不能写入的 mysql 用户。

脚本如下

#/bin/bash

CURRPATH=$(pwd)
SITEPATH="/var/www/html"

MYSQLUSER="user"
MYSQLPASS="password"
MYSQLDB="database"

CURRDATE=$(date +"%Y-%m-%d__%T_%p")
DATETAG="Backup_$CURRDATE"
TEMPDIR="$CURRPATH/$DATETAG"
ARCHIVENAME="$DATETAG.zip"

# I first copy the files so I can stick a database imprint in the same directory
cp -r  "$SITEPATH/" "$CURRPATH/"
mv "$CURRPATH/html" "$TEMPDIR"
mysqldump -u "$MYSQLUSER" -p"$MYSQLPASS" "$MYSQLDB" > "$TEMPDIR/BackupDB_$CURRDATE.sql"

cd $CURRPATH
zip -r "$ARCHIVENAME" "$DATETAG"
rm -rf "$TEMPDIR"
Run Code Online (Sandbox Code Playgroud)

我用 crontab 设置了这个,它完美地工作,除了一个问题 - 存档最终在 ~/root 文件夹中(我用 root 用户设置了 …

debian bash cron shell-scripting

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

为什么cron条目的PATH错误?

我在 cron.d 中有一个条目:

31 17 * * * root /home/some_user/.bash_profile; /home/some_user/bin/some_script
Run Code Online (Sandbox Code Playgroud)

配置文件设置了一个特定的路径,我在配置文件中回显当前路径以确保其正确。但是,当脚本执行时,其中的命令失败,因为它不在 PATH 中,并且当我在脚本中显示当前 PATH 时 - 它不是配置文件中设置的。

为什么配置文件中设置的 PATH 在脚本的执行中不存在?

bash cron

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