首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cronjob输出不工作

问Cronjob输出不工作
EN

Unix & Linux用户
提问于 2018-06-21 12:43:14
回答 2查看 226关注 0票数 1

我有这样的工作:

代码语言:javascript
复制
#!/bin/bash
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
mkdir -p $YEAR/$MONTH/$DAY
mysqldump -uroot -p1234 locatari > $YEAR/$MONTH/$DAY/backup.sql

我想每隔3分钟运行一次。我尝试了这些crontab命令中的每一条,但似乎没有一条有效:

代码语言:javascript
复制
3 * * * * /usr/bin /home/rome/cronjob/back.sh > /home/rome/cronjob
3 * * * * /home/rome/cronjob/back.sh/
3 * * * * exec `/bin/bash /home/rome/cronjob/back.sh`
3 * * * * /bin/bash /home/rome/cronjob/back.sh > /dev/null 2>&1

我只在我跑的时候才跑:

代码语言:javascript
复制
bash back.sh

所有这些都按预期的方式使用bash命令,我的cron调度程序有什么问题?问题是,使用crontab命令,我看不到输出,它只适用于bash命令。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2018-06-21 12:51:11

您的crontab作业条目中没有一个与您在命令行中输入的内容匹配。

  1. /usr/bin /home/rome/cronjob/back.sh试图运行一个程序/usr/bin,但这是一个目录
  2. /home/rome/cronjob/back.sh/试图将您的脚本视为一个目录
  3. exec `/bin/bash /home/rome/cronjob/back.sh`尝试将程序的输出用作要运行的程序名。
  4. /bin/bash /home/rome/cronjob/back.sh > /dev/null 2>&1这可能有效,只是您已经丢弃了脚本的所有输出,所以您不会看到任何错误

根据您的评论中的反馈,您可能需要这样的内容(我省略了/home/rome,因为这是您的主目录):

代码语言:javascript
复制
*/3 * * * * cd cronjob && bash back.sh >back.log 2>&1
票数 2
EN

Unix & Linux用户

发布于 2018-06-21 12:51:44

您的cron计划表达式意味着“每分钟3”=>每小时。每3分钟将:

代码语言:javascript
复制
*/3 * * * *

查看此好工具以检查表达式。

而且,只有您的最后一个cron命令才能工作。但是我不会将输出重定向到/dev/null。如果您的脚本有任何问题,就很难调试。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/451092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档