У меня есть следующий скрипт для обновления цены, запасов и последующего обновления кеша.
Файл: /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
Моя основная проблема здесь - запустить /var/scripts/clear-cache.sh
скрипт от имени пользователя root (сразу после обновления цен и акций).
Сообщите мне, есть ли способ решения этой проблемы.
Вместо этого запустите сценарий www из корневого сценария
#!/bin/sh
su www-data -c /var/scripts/update-web.sh
/var/scripts/clear-cache.sh
Создайте такой сценарий, запустите его из crontab root и удалите запись из crontab www-data.