关于linux:脚本未通过crontab运行

script not running via crontab

我创建了一个shell脚本,该脚本删除了var / cache文件夹的子文件夹。请检查以下脚本。

1
2
3
4
5
6
7
#!/bin/sh
now=$(date +"%Y-%m-%d %T")
if rm -rf var/cache/* ; then
    echo"$now: Deleted"
else
  echo"$now: problem"
fi

当我直接通过命令sh hello.sh运行此shell文件时,它运行正常。

但是当我使用crontab运行此文件时,它将在日志文件中创建一个条目,但不会删除var/cache/..

的子文件夹

请同时检查我的crontab。

*/1 * * * * /bin/sh /www/html/wp/hello.sh >> /www/html/var/log/redis.flush.cron.log 2>&1

请建议我如何使用crontab运行该文件。


尝试使用绝对路径而不是var/cache。当您通过cron运行它时,它将以特定用户的身份运行a),并从该用户的主目录运行b)。这些之一或两者都可能给您造成问题。

代替此:

1
if rm -rf var/cache/* ; then

尝试类似这样的内容:

1
if rm -rf /full/path/to/var/cache/* ; then