39 lines
2.1 KiB
Bash
39 lines
2.1 KiB
Bash
#!/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}" |