【发布时间】:2019-11-24 03:52:57
【问题描述】:
我创建了一个删除 var/cache 文件夹的子文件夹的 shell 脚本。请检查以下脚本。
#!/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 运行该文件。
【问题讨论】:
-
@NullDev 不,我没有在 crontab 中添加任何用户,但如果我想从不同的用户(如 abc)运行它,那么它的语法是什么
-
@KaranAdhikari 如果你想为 root 设置一个可以访问所有文件夹的 cron 作业,那么你可以使用命令
sudo crontab -e -u root -
我猜是因为权限问题,文件夹没有被删除,检查文件
ls -la的权限 -
直接运行时当前工作目录是什么,还有没有理由不把整个路径放在
var/前面 -
始终使用绝对路径