diff --git a/bash/setup_sync.sh b/bash/setup_sync.sh new file mode 100644 index 0000000..eb3b821 --- /dev/null +++ b/bash/setup_sync.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# ============================================================================== +# Скрипт: setup_sync.sh +# Описание: Автоматически настраивает ежечасное скачивание репозитория server-tools +# ============================================================================== + +set -e +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +echo -e "${GREEN}=== Настройка автоматической синхронизации скриптов ===${NC}" + +# Проверяем, запущен ли скрипт с правами суперпользователя (root) +if [ "$EUID" -ne 0 ]; then + echo -e "${YELLOW}Пожалуйста, запустите эту команду через sudo или от имени root.${NC}" + exit 1 +fi + +# Ссылка на наш скрипт синхронизации +SYNC_SCRIPT_URL="https://gitlab.alex2py.ru/uristalex/server-tools/raw/branch/main/auto-update/sync_scripts.sh" + +# Команда, которая будет выполняться каждый час (0 минут каждого часа) +CRON_JOB="0 * * * * bash <(curl -sSL $SYNC_SCRIPT_URL) > /var/log/sync_scripts.log 2>&1" + +# Проверяем, нет ли уже такой задачи в cron, чтобы избежать дублей +if crontab -l 2>/dev/null | grep -q "$SYNC_SCRIPT_URL"; then + echo -e "${YELLOW}Задача уже настроена в планировщике (cron). Пропускаю...${NC}" +else + # Добавляем задачу в cron + (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab - + echo -e "${GREEN}[+] Задача успешно добавлена в cron. Обновление будет идти каждый час.${NC}" +fi + +echo -e "\n${GREEN}=== Выполняю первую синхронизацию прямо сейчас ===${NC}" +# Запускаем скрипт синхронизации по ссылке +bash <(curl -sSL "$SYNC_SCRIPT_URL") + +echo -e "\n${GREEN}Настройка полностью завершена! Скрипты лежат в /opt/server-tools${NC}" \ No newline at end of file