linux - Cron 作业未在 Linux Mint 12 中运行

标签 linux cron

这是我的crontab -e文件的内容

#!/bin/bash
6 14 * * * /home/rishi/cront.sh

还有,cront.sh文件只有这个

mkdir foo

自过去 2 天以来,我一直在努力使这项工作正常进行。 cront.sh 命令在从终端运行时有效。但是,在 crontab 中不起作用。

编辑

事实证明,只需使用 root 编辑 crontab -e 完成了工作。无需再做任何事情。

最佳答案

cron 下,不能保证您的环境变量(最重要的是 PATH)会被正确设置。

尝试在您的 crontab 顶部添加如下行:

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin

此外,最好为 mkdir 使用完整路径:

mkdir /path/to/my/dir

此外,确保您的 cront.sh 可执行也无妨:

chmod +x /home/rishi/cront.sh

在那之后,它应该可以工作了。

编辑

调试 crontab 问题的通用方法:

  • 在要调试的脚本顶部,添加一行:

    set    # this should print all environment variables
    
  • 手动执行脚本,将输出重定向到某个日志文件1。

  • 现在,将 crontab 编辑成这样:

    * * * * * /path/to/my/script 2>&1 > /path/to/log/file2
    

确保日志文件对于您的脚本是可写的。 此外,请确保您的脚本设置了可执行位。

  • 比较日志文件 1 和日志文件 2,密切关注环境。变量。如果它们不同,请使用您想要将它们设置为相同的任何方法。它可以向 crontab 添加行,或者在您的脚本中使用 export var=value

  • 在那之后,没有理由不能正常工作。

关于linux - Cron 作业未在 Linux Mint 12 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14315272/

相关文章:

python - 在 Linux 中创建安装程序包

c - 什么是c中的强类型?

linux - 搜索并替换为反向引用变量

ruby-on-rails - Cron 作业在 Whenever gem 中不起作用

linux - 用于自动过程的 Cronjob

mysql - 基于 Linux 的 Azure PHP 应用程序服务缺少 MYSQL 驱动程序

c - 循环线程访问 pthread mutex

node.js - 仅在预定时间运行 PM2 cron

python - Apache Airflow 调度程序不会在调度时间触发 DAG

google-app-engine - 如何在 Google Cloud Platform 上安排 Cron 作业?