代码之家  ›  专栏  ›  技术社区  ›  mr_pool_404

crontab无法识别命令

  •  0
  • mr_pool_404  · 技术社区  · 6 年前

    我有一个bash脚本,我想作为cron作业运行。 除了一个命令,它工作得很好。 我重定向了它的stderr来获取错误,发现它显示的错误是无法识别的命令。 它是根crontab。 当我在终端中键入命令时,当前用户和根用户都成功地执行了该命令。 甚至在我通过终端运行命令时,脚本也会执行该命令。

    启动脚本:

    #!/bin/bash
    sudo macchanger -r enp2s0 > /dev/null
    sudo /home/deadpool/.logkeys/logger.sh > /dev/null
    

    记录器.sh:

    #!/bin/bash
    dat="$(date)"
    echo " " >> /home/deadpool/.logkeys/globallog.log 
    echo $dat >> /home/deadpool/.logkeys/globallog.log
    echo " " >> /home/deadpool/.logkeys/globallog.log
    cat /home/deadpool/.logkeys/logfile.log >> /home/deadpool/.logkeys/globallog.log
    cat /dev/null > /home/deadpool/.logkeys/logfile.log
    cat /dev/null > /home/deadpool/.logkeys/error.log
    logkeys --start --output /home/deadpool/.logkeys/logfile.log 2> /home/deadpool/.logkeys/error.log
    

    错误.log

    /home/deadpool/.logkeys/logger.sh: line 10: logkeys: command not found
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Brandon Miller    6 年前

    记得 cron 使用不同的环境运行,然后使用您的用户帐户或 root 不包括路径 logkeys 在ITS中 PATH .你应该尝试绝对路径 日志键 (找到它 which logkeys 在脚本中。另外,我建议你看看 this answer on serverfault 关于像运行脚本一样运行脚本 克罗恩 当你需要知道为什么它对你有效而不是在工作中。