bash - Crontab 中自动执行后没有生效

 edftgggh_131 发布于 2022-10-30 22:32

使用crontab 添加一个定时任务

* * * * /bin/bash -l -c ' ~/.script.sh'

这个脚本的作用是统计一些数据并生成报表文件.

这个脚本每分钟执行一次,但是实际操作中crontab并没有像预期的那样生成报表文件.

然而当我手动执行这个命令时 "~/.script.sh" 生成文件并退出.

有两个疑问:

1: 为什么crontab 没有执行我的脚本. 查看了crontab 日志(/var/log/crond)输出: May 5 20:36:01 localhost CROND[27260]: (ernest) CMD (/bin/bash -l -c '~/script.sh') 没有发现任何异常.

2: 会不会是我执行脚本的环境 不一样呢? 测试了一下 "* * * * * /bin/bash -l -c 'source ~/.bash_profile && ~/.script.sh'" 也不行.

各位大牛们有没有遇到和我一样的问题呢?

5 个回答
  • 有可能是文件权限问题?

    2022-10-31 22:11 回答
  • * * * * /bin/bash -l -c ' ~/.script.sh'
    
    这个时间设置错了呀。
    
    2022-10-31 22:11 回答
  • 如果你是 sudo crontab -e 创建的crontab命令,那么执行的用户是root, 这里的~也会被解析为/root 如果你没有用sudo,那应该没问题。

    2022-10-31 22:12 回答
  • 用绝对路径试试.因为~对不同的用户会解释成不同的$HOME.
    一般是在script.sh里面最开始的地方加上

    cd /home/username
    . .profile
    
    2022-10-31 22:12 回答
  • 手动运行脚本生效,crontab不生效最最最最最最最最最最最最最最最最常见的原因就是: 你在脚本里面的命令没有使用绝对路径。

    2022-10-31 22:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有