bash - Crontab 中自动执行后没有生效
Robert De Niro
Robert De Niro 2017-04-24 15:59:00
0
5
769

使用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'" 也不行.

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

Robert De Niro
Robert De Niro

모든 응답 (5)
过去多啦不再A梦

스크립트를 수동으로 실행하면 적용되지만 crontab은 적용되지 않습니다. 가장 일반적인 이유는 다음과 같습니다. 스크립트의 명령은 절대 경로를 사용하지 않습니다.

    習慣沉默

    ~$HOME에 따라 다르게 해석되므로 절대 경로를 사용해 보세요.
    일반적으로script.sh앞에

    을 추가합니다. 으아아아
      PHPzhong

      sudo crontab -e를 사용하여 crontab 명령을 생성하면 실행 사용자는 루트이고 여기의 ~도 /root로 구문 분석됩니다. sudo를 사용하지 않는다면 괜찮을 것입니다.

        左手右手慢动作

        으아악

          Ty80

          파일 권한 문제일까요?

            최신 다운로드
            더>
            웹 효과
            웹사이트 소스 코드
            웹사이트 자료
            프론트엔드 템플릿
            회사 소개 부인 성명 Sitemap
            PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!