У меня есть следующий сценарий для обновления цены, акций и последующего обновления кеша.
Файл: /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, и удалите запись из crontab www-data.