完成 www-data 用户脚本后以 root 用户身份运行自定义脚本

完成 www-data 用户脚本后以 root 用户身份运行自定义脚本

我有以下脚本来更新价格、库存,然后刷新缓存。
文件:/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 中删除该条目。

相关内容