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

  目录

  crontab介绍

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

  的基本组成如下:

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

  这个例子中的任务每5分钟执行一次,运行 命令输出 "Hello, World!",并将其追加到 文件中。

  用户可以通过 命令编辑自己的 文件。初次使用时会提示选择编辑器,如 、 等。保存并退出编辑器后, 会自动加载更改。

  还支持使用特定的时间表来执行任务,例如:

  在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就可以了。

  可以再次使用验证

  $ ls -l /bin/sh

  /bin/sh -> bash

  3. XXX: command not found[3]

  python: command not found

  scrapy: 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执行失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  您可能感兴趣的文章: