crontab 中的 Bash 脚本不起作用

crontab 中的 Bash 脚本不起作用

脚本内容:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

rm list0.txt list1.txt list2.txt list3.txt print0.txt print1.txt print2.txt print3.txt

sleep 5

./checkip-1.sh </dev/null &>/dev/null &
sleep 5

./checkip-2.sh </dev/null &>/dev/null &
sleep 5

./checkip-3.sh </dev/null &>/dev/null &
sleep 5

./checkip-4.sh </dev/null &>/dev/null &
sleep 5

当我单独运行主脚本中的脚本时,它们运行良好,但当我从主脚本调用它们时,它们就不行了。我尝试使用此 crontab 条目运行它

cd /var/www/html/dashboard/scan/ && autoscan.sh

答案1

该脚本驻留在 中/var/www/html/dashboard/scan/,而目录不在您的 中PATH,因此您无法通过简单地执行来执行该脚本autoscan.sh,即在您的PATH中搜索autoscan.sh

您需要提到该脚本位于当前目录中:

cd /var/www/html/dashboard/scan/ && ./autoscan.sh

或者简单来说:

/var/www/html/dashboard/scan/autoscan.sh

两者都假定脚本可由运行它的用户执行。

除非您修改autoscan.sh脚本,否则最后一个脚本将对您不起作用,因为您正在./checkip-{1..4}.sh使用相对路径运行其他脚本autoscan.sh,因此需要cd进入。/var/www/html/dashboard/scan/

相关内容