我有以下脚本来更新价格、库存,然后刷新缓存。
文件:/var/scripts/update-web.sh
#!/bin/bash
echo "$(date)"
echo "\n"
echo ======================= Updating Prices ======================="
source /var/scripts/update-prices.sh
echo "$(date)"
echo "\n"
echo ======================= Updating Stocks ======================="
source /var/scripts/update-stocks.sh
echo "$(date)"
echo "\n"
echo "======================= Refreshing cache ======================="
# @todo - This script should be run as root user after updating prices & stocks
source /var/scripts/clear-cache.sh
echo "$(date)"
echo "\n"
echo "[COMPLETED]"
www-data
此脚本以用户身份运行crontab
sudo crontab -u www-data -e
使用以下 crontab 条目:
1 0 * * * /var/scripts/update-web.sh > /tmp/update-web.txt
我这里的主要问题是以 root 用户身份运行/var/scripts/clear-cache.sh
脚本(在更新价格和库存后立即运行)。
如果有解决方法,请告诉我。
答案1
而是从根脚本运行 www 脚本
#!/bin/sh
su www-data -c /var/scripts/update-web.sh
/var/scripts/clear-cache.sh
制作这样的脚本并从 root 的 crontab 运行它,然后从 www-data 的 crontab 中删除该条目。