Запускать пользовательский сценарий от имени пользователя 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 (сразу после обновления цен и акций).
Сообщите мне, есть ли способ решения этой проблемы.

0
задан 1 July 2019 в 11:34
1 ответ

Вместо этого запустите сценарий www из корневого сценария

#!/bin/sh
su www-data -c /var/scripts/update-web.sh
/var/scripts/clear-cache.sh

Создайте такой сценарий и запустите это из корневого crontab, и удалите запись из crontab www-data.

1
ответ дан 4 December 2019 в 15:40

Теги

Похожие вопросы