我想运行 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) 我有一个 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)
任何帮助,将不胜感激!
我有这个 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: 未找到
我有一些执行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) 在 中/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 任务,将“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 中使用它时,在预定时间没有任何反应。(每次尝试后时间已相应更改。)
我以超级用户身份登录。我有权读/写/执行所有这些文件。我不确定我做错了什么。
来自https://unix.stackexchange.com/a/489913/674
登录是一个用户空间结构;内核不关心这个。
有很多这样的例子;例如,cron 作业可以作为任何用户运行,无需该用户登录。 ...使用 SSH 连接计为登录。
既然有登录和不登录的例子,请问什么是登录?哪些活动算作登录,哪些不算?
让我猜猜。是否有任何涉及询问用户名和密码,并检查该信息/etc/passwd并/etc/shadow算作登录的活动?否则,不登录?
正在运行su登录吗?
正在运行sudo登录吗?或者不,因为它不要求目标用户的密码?
还有哪些其他教育示例?
谢谢。
我有脚本文件。.file 我只需要在每个月的第一天运行。
我怎样才能用我的 cron 作业做到这一点?
52 07 * * * bash '/home/linux/tanu/cat.sh'
Run Code Online (Sandbox Code Playgroud) 我一直在仔细关注并阅读了很多关于使用 crontab 设置 crontab -e 对此的任何帮助表示赞赏......
我有一个在启动(重新启动)时运行的进程,该进程运行良好,我希望它每分钟继续运行一次,但这并没有发生。我在第二行的末尾确实有一个换行符(换行符)。谢谢!!我有程序 /dir/xxx 在重新启动时运行良好,但设置为每分钟运行的相同进程永远不会触发。我的 crontab -e 如下:
@reboot /dir/xxx
/1 * * * * /dir/xxx
Run Code Online (Sandbox Code Playgroud)
在第二行之后我确实有一个换行符。
在极致的客户端(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)
为什么\不允许继续一行到下一行?