initial commit

This commit is contained in:
unknown
2026-02-19 20:05:04 +03:00
parent 1ee67d8159
commit 05097d5dda
32 changed files with 4413 additions and 3 deletions

View File

@@ -0,0 +1,104 @@
#!/bin/bash
#===============================================================================
# ШАГ 9: НАСТРОЙКА SWAP
#===============================================================================
# Запуск: sudo bash 01-k-server-initial-setup.09.sh
#===============================================================================
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
source "$SCRIPT_DIR/01-k-server-initial-setup.00.sh"
init_log
check_root
print_header "ШАГ 9: НАСТРОЙКА SWAP"
#-------------------------------------------------------------------------------
# 9.1 Проверка существующего swap
#-------------------------------------------------------------------------------
print_subheader "Проверка swap"
if has_swap; then
print_success "Swap уже настроен:"
swapon --show
free -h
print_success "Шаг 9 завершён (пропуск)"
exit 0
else
print_info "Swap не найден"
fi
#-------------------------------------------------------------------------------
# 9.2 Запрос размера
#-------------------------------------------------------------------------------
print_subheader "Создание swap"
echo ""
echo "Рекомендуемый размер swap: 1-2GB"
echo ""
read -p "Размер swap в GB [2]: " SWAP_SIZE
SWAP_SIZE=${SWAP_SIZE:-2}
SWAP_FILE="/swapfile"
#-------------------------------------------------------------------------------
# 9.3 Создание swap-файла
#-------------------------------------------------------------------------------
print_info "Создание swap-файла ${SWAP_SIZE}GB..."
# Проверка свободного места
FREE_SPACE=$(df -BG / | tail -1 | awk '{print $4}' | tr -d 'G')
if [[ "$FREE_SPACE" -lt "$SWAP_SIZE" ]]; then
print_error "Недостаточно свободного места: ${FREE_SPACE}GB < ${SWAP_SIZE}GB"
exit 1
fi
# Создание
fallocate -l "${SWAP_SIZE}G" "$SWAP_FILE"
chmod 600 "$SWAP_FILE"
mkswap "$SWAP_FILE"
swapon "$SWAP_FILE"
print_success "Swap создан"
#-------------------------------------------------------------------------------
# 9.4 Добавление в fstab
#-------------------------------------------------------------------------------
print_subheader "Настройка fstab"
if ! grep -q "$SWAP_FILE" /etc/fstab; then
echo "$SWAP_FILE none swap sw 0 0" >> /etc/fstab
print_success "Swap добавлен в fstab"
else
print_info "Swap уже в fstab"
fi
#-------------------------------------------------------------------------------
# 9.5 Оптимизация swappiness
#-------------------------------------------------------------------------------
print_subheader "Оптимизация swappiness"
# Установить swappiness = 10 (меньше использовать swap)
SWAPPINESS=10
sysctl vm.swappiness=$SWAPPINESS
if ! grep -q "vm.swappiness" /etc/sysctl.conf; then
echo "vm.swappiness = $SWAPPINESS" >> /etc/sysctl.conf
print_success "swappiness настроен"
else
sed -i "s/vm.swappiness.*/vm.swappiness = $SWAPPINESS/" /etc/sysctl.conf
print_success "swappiness обновлён"
fi
#-------------------------------------------------------------------------------
# 9.6 Проверка
#-------------------------------------------------------------------------------
print_subheader "Проверка"
echo ""
free -h
echo ""
swapon --show
print_success "Шаг 9 завершён: Swap настроен"