克朗塔布不识别命令



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

启动脚本:

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

logger.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

请记住,cron运行的环境与您的用户帐户或root不同的环境,并且可能不包含PATHlogkeys路径。您应该在脚本中尝试logkeys的绝对路径(使用用户的which logkeys查找它(。此外,我建议在serverfault上查看此答案,例如当您需要找出为什么它对您有用而不是在工作中时,运行脚本就像它们从cron运行一样。

最新更新