crontab执行失败的原因及一些解决办法

2024-04-18 0 976
目录
  • crontab介绍
  • 在ubuntu执行时遇到的一些问题
    • 1. 日志在哪[1]
    • 2. source: not found[2]
    • 3. XXX: command not found[3]

crontab介绍

crontab 是Linux和Unix-like系统中用于设置周期性被执行的任务的工具。cron 是一个守护进程,可以定期检查 crontab 文件,并执行其中定义的命令。crontab 文件包含了指令,这些指令告诉 cron 何时运行哪些命令。crontab 的基本组成如下:

  • • 分钟(0 – 59)
  • • 小时(0 – 23)
  • • 日期(1 – 31)
  • • 月份(1 – 12)
  • • 星期几(0 – 7,其中0和7都代表星期天)一个典型的 crontab 任务看起来像这样:

*/5 * * * * /bin/echo \’Hello, World!\’ >> /tmp/cron_output.txt

这个例子中的任务每5分钟执行一次,运行 echo 命令输出 "Hello, World!",并将其追加到 /tmp/cron_output.txt 文件中。用户可以通过 crontab -e 命令编辑自己的 crontab 文件。初次使用时会提示选择编辑器,如 vi、nano 等。保存并退出编辑器后,cron 会自动加载更改。crontab 还支持使用特定的时间表来执行任务,例如:

  • • 0 0 * * * 每天午夜执行
  • • 0 9 * * 1 每周一的早上9点执行
  • • 0 22 * * Fri 每周五晚上10点执行此外,crontab 还允许使用特殊字符来表示时间间隔,如:
  • • * 表示任意值
  • • , 表示列出枚举值
  • • – 表示范围
  • • / 表示时间间隔例如,*/2 * * * * 表示每两分钟执行一次任务。使用 crontab 需要注意权限和安全性问题,确保仅运行必要的任务,并避免运行有潜在风险的命令。同时,crontab 的输出默认会通过邮件发送给用户,因此建议将输出重定向到文件中,以免邮箱被大量日志信息填满。

在ubuntu执行时遇到的一些问题

1. 日志在哪[1]

linux/mac 下默认日志会在syslog里面。路径:

路径:/var/log/syslog
备份在/var/log/syslog.*

可以通过查看

grep CRON /var/log/syslog

2. source: not found[2]

crontab没有执行成功。一般我们会使用source ~/.bashrc来引入环境变量。但发现执行错误:

source: not found

这是由于在ubuntu下,默认的sh不是bash而是dash。

可以使用下面的命令验证:

$ ls -l /bin/sh

如果输出是:

/bin/sh -> dash

说明使用的sh是dash。

接下来就是将默认的shell换成bash

$ sudo dpkg-reconfigure dash

选择no就可以了。

crontab执行失败的原因及一些解决办法

可以再次使用验证

$ ls -l /bin/sh
/bin/sh -> bash

3. XXX: command not found[3]

python: command not foundscrapy: command not found…

我们已经成功source ~/.bashrc,但还是发现明明在.bashrc中配置了PATH的命令却还是提示找不到。

这时候可以通过输入完整命令路径解决,如:

/home/cifangyiquan/miniconda3/bin/python main.py

但这不是问题的根本原因

这个是由于默认的~/.bashrc里,如果不是交互式,则不进行后面的操作,导致一般后面的配置没有生效。需要修改一下.bashrc文件:

1 # ~/.bashrc: executed by bash(1) for non-login shells.
2 # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
3 # for examples
4
5 # If not running interactively, don\’t do anything
6 case $- in
7 *i*) ;;
8 *) return;;
9 esac
10

修改方法也很简单,注释调第8行的return即可。

8 # *) return;;

到此这篇关于crontab执行失败的原因及一些解决办法的文章就介绍到这了,更多相关crontab执行失败内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

您可能感兴趣的文章:

  • Linux使用crontab定时执行脚本任务的流程详解
  • 使用crontab每隔1分钟执行一个命令行脚本
  • crontab设置每分钟、每小时、每天、每周、每月、每年定时执行的脚本
  • 踩坑记录之crontab每10秒执行一次问题
  • Linux之crontab定时执行脚本方式

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 linux shell crontab执行失败的原因及一些解决办法 https://www.u-9.cn/jiaoben/linuxshell/186770.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务