Назад | Перейти на главную страницу

Запустить настраиваемый сценарий от имени пользователя root после завершения пользовательского сценария www-data

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