标签: cron

如何设置无限期地每三个小时运行一次的 Cron 作业;与日志记录?

我想运行 Cronjob;自上次运行时间起每三个小时无限期运行一次,并可以检查它是否运行

任何人都可以帮助我获取以这种格式给出的值:

crontab -e
Run Code Online (Sandbox Code Playgroud)

尝试以下:

0 0/3 * * * /home/wlogic/SHScripts/DiskCheck/DiskSpaceCheck.sh
Run Code Online (Sandbox Code Playgroud)

当我使用 :wq 保存文件时

我收到消息:

crontab: installing new crontab
"/tmp/crontab.vErqAL":1: bad hour
errors in crontab file, can't install.
Do you want to retry the same edit?
Run Code Online (Sandbox Code Playgroud)

cron

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

Cron 作业未写入日志文件

我有一个 shell 脚本,在执行时将日期写入日志文件。当我手动运行脚本时,正确的输出将写入文件。但是,这需要自动化,当我作为 cron 作业运行时,没有任何内容写入文件,我很困惑为什么。

定时任务:

0 * * * * tomcat /usr/bin/sh /apps/rdsreplication/snap_replication.sh
Run Code Online (Sandbox Code Playgroud)

示例代码:

#/bin/bash/

echo ---------------------------------------- >> create_snap.txt
echo Start time:  >> create_snap.txt
date >> create_snap.txt
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

shell scripting bash cron io-redirection

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

Cronjob 无法正常运行

我有这个 sh 脚本:

ufw allow 27017 && iptables -F
Run Code Online (Sandbox Code Playgroud)

在文件 test.sh 中

我想每天在 07:00 像这样使用 root 的 cronjob 运行它:

0 7 * * * /root/cron/test.sh
Run Code Online (Sandbox Code Playgroud)

我还检查了这个脚本是否真的使用 grep CRON /var/log/syslog 运行,我可以看到它确实运行了:

8 月 24 日 07:00:01 vps118774 CRON[1672]: (root) CMD (/root/cron/test.sh)

现在我的问题是 test.sh 中的实际脚本没有正确运行以解除我使用该 cronjob 运行的端口的阻塞,关键是如果我从服务器上的终端手动运行该脚本:

sh script.sh
Run Code Online (Sandbox Code Playgroud)

一切正常,脚本将采取所需的操作,因此脚本按预期运行,但是我的 cron 执行有什么问题?

我把执行的日志得到了这些:

root/cron/test.sh: 2: /root/cron/test.sh: ufw: 未找到

cron shell-script

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

cron 不执行带有变量的命令

我有一些执行java项目的逻辑;当我输入它时,它都在终端控制台中工作,但不在 cron 调度程序中:

运行第一个微服务并从 POST 请求中获取变量:

java -jar /root/parser-0.0.1-SNAPSHOT.jar
value=$(curl -d '{"query":"java-middle", "turnOff":true}' -H "Content-Type: application/json" -X POST http://localhost:8080/explorer)
v2=$(echo ${value} | jq '.id')
Run Code Online (Sandbox Code Playgroud)

测试:

echo $v2
18
Run Code Online (Sandbox Code Playgroud)

18 - 来自数据库的 id,我在下一个请求中使用它:(首先运行新的微服务)

java -jar parsdescription-0.0.1-SNAPSHOT.jar 
value=$(curl -d '{"explorerId":'$v2', "turnOff":true}' -H "Content-Type: application/json" -X POST http://localhost:8080/descriptions) >> /var/log/description3.log 2>&1
Run Code Online (Sandbox Code Playgroud)

因此,curl执行正常,数据库确实填充了一些数据,并且在值中我得到了正确的值。

但是,当我创建 crontab 计划时:

50 09 * * * java -jar /root/parser-0.0.1-SNAPSHOT.jar
51 09 * * * value=$(curl -d '{"query":"java-middle", "turnOff":true}' -H "Content-Type: application/json" -X POST http://localhost:8080/explorer)
52 …
Run Code Online (Sandbox Code Playgroud)

command-line cron variable

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

`/etc/cron.d/` 文件中的 cron 任务是否应该不包含 `sudo`?

在 中/etc/cron.d/myjob,我创建了一个运行 bash 脚本的 cron 任务,并将其 stdout 和 stderr 重定向到日志文件。该脚本包含一行sudo运行命令。

在日志文件中:

sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)

这是否会导致一些需要我注意的问题?

我想知道/etc/cron.d/文件中的cron 任务是否应该不包含sudo?

谢谢。

cron sudo

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

Crontab 任务未运行

我尝试创建一个非常简单的 cron 任务,将“Hello World”回显到名为/tmp/example.txt.

你可以从截图中看到,我试过:

28 23 * * * echo "Hello World" >> /tmp/example.txt

28 23 * * * root /bin/bash echo "Hello World" >> /tmp/example.txt
Run Code Online (Sandbox Code Playgroud)

同样在屏幕截图中,您可以看到日期。我还尝试在 cron 任务中获取确切日期(例如:28 23 29 11 4),但这也不起作用。

我也尝试使用实际文件

28 23 * * * ./pingstuff
Run Code Online (Sandbox Code Playgroud)

pingstuff文件只是谷歌坪。我可以运行这个文件并且它正确执行。但是,当我尝试在 crontab -e 中使用它时,在预定时间没有任何反应。(每次尝试后时间已相应更改。)

我以超级用户身份登录。我有权读/写/执行所有这些文件。我不确定我做错了什么。

在此处输入图片说明

linux bash cron

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

什么是登录?

来自https://unix.stackexchange.com/a/489913/674

登录是一个用户空间结构;内核不关心这个。

有很多这样的例子;例如,cron 作业可以作为任何用户运行,无需该用户登录。 ...使用 SSH 连接计为登录。

既然有登录和不登录的例子,请问什么是登录?哪些活动算作登录,哪些不算?

让我猜猜。是否有任何涉及询问用户名和密码,并检查该信息/etc/passwd/etc/shadow算作登录的活动?否则,不登录?

正在运行su登录吗?

正在运行sudo登录吗?或者不,因为它不要求目标用户的密码?

还有哪些其他教育示例?

谢谢。

login ssh cron su sudo

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

如何在 Linux 中安排 cron 作业?

我有脚本文件。.file 我只需要在每个月的第一天运行。

我怎样才能用我的 cron 作业做到这一点?

52 07 * * * bash '/home/linux/tanu/cat.sh'
Run Code Online (Sandbox Code Playgroud)

linux cron date

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

为什么我的每分钟 crontab 不起作用,但@reboot 上的相同进程工作正常?

我一直在仔细关注并阅读了很多关于使用 crontab 设置 crontab -e 对此的任何帮助表示赞赏......

我有一个在启动(重新启动)时运行的进程,该进程运行良好,我希望它每分钟继续运行一次,但这并没有发生。我在第二行的末尾确实有一个换行符(换行符)。谢谢!!我有程序 /dir/xxx 在重新启动时运行良好,但设置为每分钟运行的相同进程永远不会触发。我的 crontab -e 如下:

@reboot /dir/xxx
/1 * * * * /dir/xxx
Run Code Online (Sandbox Code Playgroud)

在第二行之后我确实有一个换行符。

cron ubuntu

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

为什么我不能使用 `\` 在 crontab 中继续一行?

极致的客户端(1)手册页提出以下建议cron项:

~   *   *   *   *   acme-client example.com && \
    rcctl reload httpd
Run Code Online (Sandbox Code Playgroud)

当我crontab使用该语法添加到编辑时不会保存:

crontab: installing new crontab
"/tmp/crontab.nOryzjBTlv":22: bad minute
crontab: errors in crontab file, unable to install
Do you want to retry the same edit? 
Run Code Online (Sandbox Code Playgroud)

但是,如果我只是将其设为一行,则可以很好地保存:

~   *   *   *   *   acme-client example.com && \ rcctl reload httpd
Run Code Online (Sandbox Code Playgroud)

为什么\不允许继续一行到下一行?

cron openbsd

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

标签 统计

cron ×10

bash ×2

linux ×2

sudo ×2

command-line ×1

date ×1

io-redirection ×1

login ×1

openbsd ×1

scripting ×1

shell ×1

shell-script ×1

ssh ×1

su ×1

ubuntu ×1

variable ×1