#!/bin/bash # Скрипт для настройки удаленного хранилища медиа и базы данных # Использует SSHFS для монтирования удаленных директорий # Цвета для вывода RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Конфигурация удаленного сервера REMOTE_SERVER="103.80.87.247" REMOTE_USER="root" # Измените на вашего пользователя REMOTE_MEDIA_PATH="/var/nakama/media" REMOTE_DB_PATH="/var/nakama/db" REMOTE_BACKUPS_PATH="/var/nakama/backups" # Локальные точки монтирования LOCAL_MEDIA_MOUNT="/mnt/nakama-media" LOCAL_DB_MOUNT="/mnt/nakama-db" LOCAL_BACKUPS_MOUNT="/mnt/nakama-backups" echo -e "${GREEN}=== Настройка удаленного хранилища ===${NC}" # Проверка наличия SSHFS if ! command -v sshfs &> /dev/null; then echo -e "${RED}✗ SSHFS не установлен${NC}" echo -e "${YELLOW}Установка SSHFS...${NC}" # Определить ОС и установить SSHFS if [[ "$OSTYPE" == "linux-gnu"* ]]; then sudo apt-get update && sudo apt-get install -y sshfs elif [[ "$OSTYPE" == "darwin"* ]]; then brew install macfuse sshfs else echo -e "${RED}Неподдерживаемая ОС. Установите SSHFS вручную.${NC}" exit 1 fi fi echo -e "${GREEN}✓ SSHFS установлен${NC}" # Создать локальные директории для монтирования echo -e "${YELLOW}Создание локальных директорий...${NC}" sudo mkdir -p "$LOCAL_MEDIA_MOUNT" "$LOCAL_DB_MOUNT" "$LOCAL_BACKUPS_MOUNT" # Создать директории на удаленном сервере echo -e "${YELLOW}Создание директорий на удаленном сервере...${NC}" ssh "${REMOTE_USER}@${REMOTE_SERVER}" "mkdir -p ${REMOTE_MEDIA_PATH} ${REMOTE_DB_PATH} ${REMOTE_BACKUPS_PATH}" # Монтировать директории echo -e "${YELLOW}Монтирование удаленных директорий...${NC}" # Медиа if mountpoint -q "$LOCAL_MEDIA_MOUNT"; then echo -e "${YELLOW}Медиа уже смонтированы${NC}" else sshfs "${REMOTE_USER}@${REMOTE_SERVER}:${REMOTE_MEDIA_PATH}" "$LOCAL_MEDIA_MOUNT" \ -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 echo -e "${GREEN}✓ Медиа смонтированы: ${LOCAL_MEDIA_MOUNT}${NC}" fi # База данных if mountpoint -q "$LOCAL_DB_MOUNT"; then echo -e "${YELLOW}БД уже смонтирована${NC}" else sshfs "${REMOTE_USER}@${REMOTE_SERVER}:${REMOTE_DB_PATH}" "$LOCAL_DB_MOUNT" \ -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 echo -e "${GREEN}✓ БД смонтирована: ${LOCAL_DB_MOUNT}${NC}" fi # Бекапы if mountpoint -q "$LOCAL_BACKUPS_MOUNT"; then echo -e "${YELLOW}Бекапы уже смонтированы${NC}" else sshfs "${REMOTE_USER}@${REMOTE_SERVER}:${REMOTE_BACKUPS_PATH}" "$LOCAL_BACKUPS_MOUNT" \ -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 echo -e "${GREEN}✓ Бекапы смонтированы: ${LOCAL_BACKUPS_MOUNT}${NC}" fi # Добавить в /etc/fstab для автоматического монтирования при загрузке (опционально) echo -e "${YELLOW}Хотите добавить автомонтирование при загрузке? (y/n)${NC}" read -r RESPONSE if [[ "$RESPONSE" =~ ^[Yy]$ ]]; then echo -e "${YELLOW}Добавление в /etc/fstab...${NC}" # Создать резервную копию fstab sudo cp /etc/fstab /etc/fstab.backup # Добавить записи в fstab cat <