recherche

Maison  >  Questions et réponses  >  le corps du texte

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

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

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

过去多啦不再A梦过去多啦不再A梦2805 Il y a quelques jours859

répondre à tous(5)je répondrai

  • 过去多啦不再A梦

    过去多啦不再A梦2017-04-24 16:01:00

    L'exécution manuelle du script prend effet et crontab ne prend pas effet. Les raisons les plus courantes sont : Les commandes de votre script n'utilisent pas de chemins absolus.

    répondre
    0
  • 習慣沉默

    習慣沉默2017-04-24 16:01:00

    Essayez d'utiliser des chemins absolus. Parce que ~ sera interprété différemment par différents utilisateurs $HOME.
    Habituellement, ajoutez script.sh au début de

    cd /home/username
    . .profile
    

    répondre
    0
  • PHPz

    PHPz2017-04-24 16:01:00

    Si vous créez la commande crontab avec sudo crontab -e, alors l'utilisateur exécutant est root, et le ~ ici sera également analysé comme /root Si vous n'utilisez pas sudo, ça devrait aller.

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-24 16:01:00

    * * * * /bin/bash -l -c ' ~/.script.sh'
    
    这个时间设置错了呀。
    

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-24 16:01:00

    Pourrait-il s'agir d'un problème d'autorisation de fichier ?

    répondre
    0
  • Annulerrépondre