Autoinstall/install.sh

1070 lines
58 KiB
Bash
Raw Normal View History

2023-08-05 18:57:50 +03:00
#!/bin/bash
2024-03-10 11:55:31 +03:00
##
2024-04-12 02:22:19 +03:00
# EngineGP (https://enginegp.ru or https://enginegp.com)
2024-03-10 11:55:31 +03:00
#
2024-04-12 02:22:19 +03:00
# @copyright Copyright (c) 2023-present Solovev Sergei <inbox@seansolovev.ru>
2024-03-10 11:55:31 +03:00
#
2024-04-12 02:22:19 +03:00
# @link https://github.com/EngineGPDev/Autoinstall for the canonical source repository
#
# @license https://github.com/EngineGPDev/Autoinstall/blob/main/LICENSE MIT License
2024-03-10 11:55:31 +03:00
##
2024-03-09 21:51:32 +03:00
# Обновление таблиц и системы
sysUpdate (){
echo "===================================" >> $logsINST 2>&1
echo "Обновление системы..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
apt-get -y update >> $logsINST 2>&1
apt-get -y upgrade >> $logsINST 2>&1
}
# Очистка экрана перед установкой
clear
# Создаём переменную для логов
logsINST="$(dirname "$0")/enginegp_install.log"
# Директория сохранения данных
saveDIR="/root/enginegp.cfg"
# Обновление системы
sysUpdate
2023-10-12 22:47:04 +03:00
# Установка начальных пакетов.
pkgsREQ=(sudo curl lsb-release wget gnupg pwgen zip unzip bc tar software-properties-common git)
# Цикл установки пакетов
for package in "${pkgsREQ[@]}"; do
if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "$package не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
apt-get install -y "$package" >> $logsINST 2>&1
fi
done
# Массив с поддерживаемыми версиями операционной системы
2024-05-21 13:55:52 +03:00
suppOS=("Debian 11" "Debian 12" "Ubuntu 22.04" "Ubuntu 24.04")
2023-10-12 22:47:04 +03:00
# Получаем текущую версию операционной системы
disOS=`lsb_release -si`
relOS=`lsb_release -sr`
currOS="$disOS $relOS"
# Файловый репозиторий
resURL="https://resources.enginegp.com"
# Проверка аргументов командной строки
if [ $# -gt 0 ]; then
# Переменные для хранения
verPHP=""
sysIP=""
gitEGP=""
# Перебор всех аргументов
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
--php)
# Если передан аргумент --php, сохранить указанную версию PHP
verPHP="$2"
shift # Пропустить значение версии
shift # Пропустить аргумент --php
;;
--ip)
# Если передан аргумент --ip, сохранить указанный IP-адрес
sysIP="$2"
shift # Пропустить значение IP-адреса
shift # Пропустить аргумент --ip
;;
--branch)
# Если передан аргумент --ip, сохранить указанный IP-адрес
gitEGP="$2"
shift # Пропустить значение ветки
shift # Пропустить аргумент --branch
;;
*)
# Неизвестный аргумент, вывести справку и выйти
clear
echo "Использование: ./install.sh --php 7.4 --ip 192.168.1.1 --branch main"
echo " --php версия: установить указанную версию PHP. Формат должен быть: 7.4"
2023-10-12 22:47:04 +03:00
echo " --ip IP-адрес: использовать указанный IP-адрес. Формат должен быть: 192.168.1.1"
echo " --branch ветка: использовать указаную ветку GIT. Формат должен быть: main"
exit 1
;;
esac
done
# Если версия PHP не выбрана, использовать PHP 7.4 по умолчанию
if [ -z "$verPHP" ]; then
2023-12-02 20:59:32 +03:00
verPHP="7.4"
fi
# Если IP-адрес не указан, получить внешний IP-адрес с помощью сервиса ipinfo.io
if [ -z "$sysIP" ]; then
sysIP=$(curl -s ipinfo.io/ip)
fi
# Если ветка не указана, использовать main
if [ -z "$gitEGP" ]; then
gitEGP="main"
fi
else
# Если нет аргументов, задаём по умолчанию
2023-12-02 20:59:32 +03:00
verPHP="7.4"
sysIP=$(curl -s ipinfo.io/ip)
gitEGP="main"
fi
2023-08-05 18:57:50 +03:00
# Проверяем, является ли полученный IP-адрес действительным IPv4 адресом
if [[ $sysIP =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
sysIP=$sysIP
2023-08-05 18:57:50 +03:00
else
clear
2023-08-05 18:57:50 +03:00
echo "Не удалось получить внешний IP-адрес"
echo "Используй: ./install.sh [--ip IP-адрес]"
exit
2023-08-05 18:57:50 +03:00
fi
while true; do
clear
echo "Меню установки EngineGP:"
echo "1. Установка панели управления"
echo "2. Настройка сервера под игры"
echo "3. Установка игровых сборок"
echo "4. Системная информация"
echo "0. Выход"
2023-08-05 18:57:50 +03:00
read -p "Выберите пункт меню: " choice
2023-08-05 18:57:50 +03:00
case $choice in
1)
clear
2023-10-12 22:47:04 +03:00
# Проверяем, содержится ли текущая версия в массиве поддерживаемых версий
if [[ " ${suppOS[@]} " =~ " ${currOS} " ]]; then
# Проверяем наличие репозитория php
if [[ " ${disOS} " =~ " Debian " ]]; then
if [ ! -f "/etc/apt/sources.list.d/php.list" ]; then
echo "===================================" >> $logsINST 2>&1
echo "Репозиторий php не обнаружен. Добавляем..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Установка используемых пакетов
sudo apt-get -y install lsb-release ca-certificates curl >> $logsINST 2>&1
# Скачиваем ключа зеркала репозитория Sury
sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://mirror.enginegp.com/sury/debsuryorg-archive-keyring.deb >> $logsINST 2>&1
# Устанавливаем ключа зеркала репозитория Sury
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb >> $logsINST 2>&1
# Добавляем репозиторий php
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://mirror.enginegp.com/sury/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' >> $logsINST 2>&1
# Обновление таблиц и пакетов
apt-get -y update >> $logsINST 2>&1
apt-get -y upgrade >> $logsINST 2>&1
# Определяем версию php по умолчанию
defPHP=$(apt-cache policy php | awk -F ': ' '/Candidate:/ {split($2, a, "[:+~]"); print a[2]}')
fi
else
if [ ! -f "/etc/apt/sources.list.d/ondrej-ubuntu-php-*.list" ]; then
echo "===================================" >> $logsINST 2>&1
echo "Репозиторий php не обнаружен. Добавляем..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Добавляем репозиторий php
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php -y >> $logsINST 2>&1
# Обновление таблиц и пакетов
apt-get -y update >> $logsINST 2>&1
apt-get -y upgrade >> $logsINST 2>&1
# Определяем версию php по умолчанию
defPHP=$(apt-cache policy php | awk -F ': ' '/Candidate:/ {split($2, a, "[:+~]"); print a[2]}')
fi
fi
# Проверяем наличие репозитория nginx
if [[ " ${disOS} " =~ " Debian " ]]; then
if [ ! -f "/etc/apt/sources.list.d/nginx.list" ]; then
echo "===================================" >> $logsINST 2>&1
echo "Репозиторий nginx не обнаружен. Добавляем..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Установка используемых пакетов
sudo apt-get -y install lsb-release ca-certificates curl >> $logsINST 2>&1
# Скачиваем ключа зеркала репозитория Sury
sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://mirror.enginegp.com/sury/debsuryorg-archive-keyring.deb >> $logsINST 2>&1
# Устанавливаем ключа зеркала репозитория Sury
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb >> $logsINST 2>&1
# Добавляем репозиторий nginx
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-nginx.gpg] https://mirror.enginegp.com/sury/nginx/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/nginx.list' >> $logsINST 2>&1
# Обновление таблиц и пакетов
apt-get -y update >> $logsINST 2>&1
apt-get -y upgrade >> $logsINST 2>&1
fi
else
if [ ! -f "/etc/apt/sources.list.d/ondrej-ubuntu-nginx-*.list" ]; then
echo "===================================" >> $logsINST 2>&1
echo "Репозиторий nginx не обнаружен. Добавляем..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Добавляем репозиторий nginx
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/nginx -y >> $logsINST 2>&1
# Обновление таблиц и пакетов
apt-get -y update >> $logsINST 2>&1
apt-get -y upgrade >> $logsINST 2>&1
fi
fi
2024-05-13 00:54:58 +03:00
# Список пакетов для установки
pkgsLIST=(php$verPHP-fpm php$verPHP-common php$verPHP-cli php$verPHP-memcache php$verPHP-mysql php$verPHP-xml php$verPHP-mbstring php$verPHP-gd php$verPHP-imagick php$verPHP-zip php$verPHP-curl php$verPHP-ssh2 nginx ufw memcached screen cron)
2024-05-13 00:54:58 +03:00
pkgsPMA=(php$defPHP-fpm php$defPHP-mbstring php$defPHP-zip php$defPHP-gd php$defPHP-json php$defPHP-curl)
# Генерирование паролей и имён
2023-12-02 11:08:59 +03:00
passSQL=$(pwgen -cns -1 16)
passPMA=$(pwgen -cns -1 16)
usrEgpSQL="enginegp_$(pwgen -cns -1 8)"
dbEgpSQL="enginegp_$(pwgen -1 8)"
2023-12-02 11:08:59 +03:00
passEgpSQL=$(pwgen -cns -1 16)
usrEgpPASS=$(pwgen -cns -1 16)
2023-10-12 22:47:04 +03:00
# Конфигурация nginx для EngineGP
nginx_enginegp="server {
listen 80;
server_name $sysIP;
root /var/www/enginegp;
index index.php;
charset utf-8;
location / {
try_files \$uri \$uri/ /index.php?\$args;
}
location /acp/ {
try_files \$uri \$uri/ /acp/index.php?\$args;
}
2023-11-25 00:46:06 +03:00
location ~* /\.(gif|jpeg|jpg|txt|png|tif|tiff|ico|jng|bmp|doc|pdf|rtf|xls|ppt|rar|rpm|swf|zip|bin|exe|dll|deb|cur)$ {
access_log off;
expires 3d;
}
2023-11-25 00:46:06 +03:00
location ~* /\.(css|js)$ {
access_log off;
expires 180m;
}
location ~ /\.ht {
deny all;
}
2024-03-18 00:00:30 +03:00
location ~ /\.en {
deny all;
}
error_page 403 /403.html;
location = /403.html {
internal;
}
error_page 404 /404.html;
location = /404.html {
internal;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php$verPHP-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
2023-12-02 20:59:32 +03:00
}"
2023-12-02 20:59:32 +03:00
# Конфигурация nginx для phpMyAdmin
nginx_phpmyadmin="server {
listen 9090;
server_name $sysIP;
root /usr/share/phpmyadmin;
index index.php;
2023-10-12 22:47:04 +03:00
location / {
try_files \$uri \$uri/ /index.php;
}
2023-12-02 20:59:32 +03:00
location ~* ^/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/phpmyadmin;
2023-12-02 20:59:32 +03:00
}
location ~ /\.ht {
deny all;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php$defPHP-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
}"
2023-10-19 22:04:04 +03:00
# Устанавливаем базу данных
if ! dpkg-query -W -f='${Status}' "mysql-server" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "mysql-server не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
sudo debconf-set-selections <<EOF
2023-10-19 22:04:04 +03:00
mysql-apt-config mysql-apt-config/select-server select mysql-8.0
mysql-apt-config mysql-apt-config/select-tools select Enabled
mysql-apt-config mysql-apt-config/select-preview select Disabled
EOF
2024-05-21 14:52:05 +03:00
sudo curl -SLO https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb >> $logsINST 2>&1
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config_0.8.30-1_all.deb >> $logsINST 2>&1
sudo apt-get update >> $logsINST 2>&1
2024-05-21 14:52:05 +03:00
sudo rm mysql-apt-config_0.8.30-1_all.deb >> $logsINST 2>&1
sudo debconf-set-selections <<EOF
2023-12-02 11:08:59 +03:00
mysql-community-server mysql-community-server/root-pass password $passSQL
mysql-community-server mysql-community-server/re-root-pass password $passSQL
2023-10-19 22:04:04 +03:00
mysql-community-server mysql-server/default-auth-override select Use Strong Password Encryption (RECOMMENDED)
EOF
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server >> $logsINST 2>&1
# Создание пользователя
2023-12-02 11:08:59 +03:00
mysql -u root -p$passSQL -e "CREATE USER '$usrEgpSQL'@'localhost' IDENTIFIED BY '$passEgpSQL';" >> $logsINST 2>&1
# Создание базы данных
2023-12-02 11:08:59 +03:00
mysql -u root -p$passSQL -e "CREATE DATABASE $dbEgpSQL;" >> $logsINST 2>&1
# Предоставление привилегий пользователю на базу данных
2023-12-02 11:08:59 +03:00
mysql -u root -p$passSQL -e "GRANT ALL PRIVILEGES ON $dbEgpSQL.* TO '$usrEgpSQL'@'localhost';" >> $logsINST 2>&1
# Применение изменений привилегий
2023-12-02 11:08:59 +03:00
mysql -u root -p$passSQL -e "FLUSH PRIVILEGES;" >> $logsINST 2>&1
else
echo "===================================" >> $logsINST 2>&1
echo "mysql-server уже установлен в системе. Продолжение установки невозможно." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
continue
fi
# Цикл установки пакетов
for package in "${pkgsLIST[@]}"; do
2023-10-12 22:47:04 +03:00
# Проверка на наличие и установка пакетов
if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "$package не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
2024-05-13 00:54:58 +03:00
sudo apt-get install -y "$package" >> $logsINST 2>&1
fi
done
# Цикл установки пакетов
for package in "${pkgsPMA[@]}"; do
# Проверка на наличие и установка пакетов
if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "$package не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
sudo apt-get install -y "$package" >> $logsINST 2>&1
2023-10-12 22:47:04 +03:00
fi
done
# Установка phpMyAdmin
if ! dpkg-query -W -f='${Status}' "phpmyadmin" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "phpmyadmin не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
sudo debconf-set-selections <<EOF
2023-10-19 22:04:04 +03:00
phpmyadmin phpmyadmin/dbconfig-install boolean true
2023-12-02 11:08:59 +03:00
phpmyadmin phpmyadmin/mysql/app-pass password $passPMA
phpmyadmin phpmyadmin/password-confirm password $passPMA
phpmyadmin phpmyadmin/mysql/admin-pass password $passSQL
phpmyadmin phpmyadmin/app-password-confirm password $passSQL
2023-10-19 22:04:04 +03:00
phpmyadmin phpmyadmin/reconfigure-webserver multiselect
EOF
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y phpmyadmin >> $logsINST 2>&1
echo -e "$nginx_phpmyadmin" | sudo tee /etc/nginx/sites-available/00-phpmyadmin.conf >> $logsINST 2>&1
sudo ln -s /etc/nginx/sites-available/00-phpmyadmin.conf /etc/nginx/sites-enabled/ >> $logsINST 2>&1
2023-12-02 20:59:32 +03:00
# Проводим тестирование и запускаем конфиг NGINX
sudo nginx -t >> $logsINST 2>&1
sudo systemctl restart nginx >> $logsINST 2>&1
else
echo "===================================" >> $logsINST 2>&1
echo "phpmyadmin уже установлен в системе. Продолжение установки невозможно." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
continue
fi
# Установка версии php по умолчанию
if [[ "$(php -v | grep -oP '(?<=PHP )(\d+\.\d+)')" != "$verPHP" ]]; then
sudo update-alternatives --set php /usr/bin/php$verPHP >> $logsINST 2>&1
sudo update-alternatives --set php-config /usr/bin/php-config$verPHP >> $logsINST 2>&1
sudo update-alternatives --set phpdbg /usr/bin/phpdbg$verPHP >> $logsINST 2>&1
sudo update-alternatives --set phpize /usr/bin/phpize$verPHP >> $logsINST 2>&1
fi
# Проверяем установку php-fpm по умолчанию
if dpkg-query -W -f='${Status}' "php$defPHP-fpm" 2>/dev/null | grep -q "install ok installed"; then
if ! systemctl is-active --quiet php$defPHP-fpm; then
echo "===================================" >> $logsINST 2>&1
echo "php$defPHP-fpm не запущен. Выполняется запуск..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
sudo systemctl start php$defPHP-fpm >> $logsINST 2>&1
fi
fi
# Проверяем установку php-fpm для EngineGP
if dpkg-query -W -f='${Status}' "php$verPHP-fpm" 2>/dev/null | grep -q "install ok installed"; then
if ! systemctl is-active --quiet php$verPHP-fpm; then
echo "===================================" >> $logsINST 2>&1
echo "php$verPHP-fpm не запущен. Выполняется запуск..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
sudo systemctl start php$verPHP-fpm >> $logsINST 2>&1
2023-10-19 22:04:04 +03:00
fi
fi
# Установка и настрока composer
if [ ! -f "/usr/local/bin/composer" ]; then
echo "===================================" >> $logsINST 2>&1
echo "composer не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
curl -sSL https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer >> $logsINST 2>&1
fi
# Установка EngineGP
if [ ! -d "/var/www/enginegp" ]; then
echo "===================================" >> $logsINST 2>&1
echo "enginegp не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Клонирование репозитория
sudo git clone --branch $gitEGP https://github.com/EngineGPDev/EngineGP.git /var/www/enginegp >> $logsINST 2>&1
# Установка зависимостей composer
sudo COMPOSER_ALLOW_SUPERUSER=1 composer install --working-dir=/var/www/enginegp >> $logsINST 2>&1
# Хэширование пароля пользователя перед записью в базу данных
usrEgpHASH=$(php$verPHP -r "echo password_hash('$usrEgpPASS', PASSWORD_DEFAULT);") >> $logsINST 2>&1
# Настраиваем конфигурацию панели и экспортируем базу данных
2024-03-18 00:00:30 +03:00
sudo mv /var/www/enginegp/.env.example /var/www/enginegp/.env >> $logsINST 2>&1
sed -i "s/example.com/$sysIP/g" /var/www/enginegp/.env >> $logsINST 2>&1
sed -i "s/enginegp_db/$dbEgpSQL/g" /var/www/enginegp/.env >> $logsINST 2>&1
sed -i "s/enginegp_usr/$usrEgpSQL/g" /var/www/enginegp/.env >> $logsINST 2>&1
sed -i "s/enginegp_pwd/$passEgpSQL/g" /var/www/enginegp/.env >> $logsINST 2>&1
sed -i "s/ENGINEGPHASH/$(echo "$usrEgpHASH" | sed 's/[\/&]/\\&/g')/g" /var/www/enginegp/enginegp.sql >> $logsINST 2>&1
mysql -u $usrEgpSQL -p$passEgpSQL $dbEgpSQL < /var/www/enginegp/enginegp.sql >> $logsINST 2>&1
2024-04-13 03:37:18 +03:00
rm /var/www/enginegp/enginegp.sql >> $logsINST 2>&1
else
echo "===================================" >> $logsINST 2>&1
echo "enginegp уже установлен в системе. Продолжение установки невозможно." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
continue
fi
# Выставляем права на каталог и файлы
sudo chown -R www-data:www-data /var/www/enginegp >> $logsINST 2>&1
sudo find /var/www/enginegp -type f -exec chmod 644 {} \; >> $logsINST 2>&1
sudo find /var/www/enginegp -type d -exec chmod 755 {} \; >> $logsINST 2>&1
# Настраиваем nginx
if dpkg-query -W -f='${Status}' "nginx" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "nginx не настроен. Выполняется настройка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Удаляем дефолтный и создаём конфиг EngineGP
sudo rm /etc/nginx/sites-enabled/default >> $logsINST 2>&1
echo -e "$nginx_enginegp" | sudo tee /etc/nginx/sites-available/01-enginegp.conf >> $logsINST 2>&1
sudo ln -s /etc/nginx/sites-available/01-enginegp.conf /etc/nginx/sites-enabled/ >> $logsINST 2>&1
# Проводим тестирование и запускаем конфиг NGINX
sudo nginx -t >> $logsINST 2>&1
sudo systemctl restart nginx >> $logsINST 2>&1
else
echo "===================================" >> $logsINST 2>&1
echo "NGINX не установлен. Продолжение установки невозможно." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
continue
fi
2023-10-19 22:04:04 +03:00
# Сообщение о завершении установки
echo "===================================" | tee -a $saveDIR
2024-04-12 21:15:17 +03:00
echo "Установка завершена!" | tee -a $saveDIR
2023-12-02 20:59:32 +03:00
echo "Ссылка на EngineGP: http://$sysIP/" | tee -a $saveDIR
echo "Пользователь: root" | tee -a $saveDIR
echo "Пароль: $usrEgpPASS" | tee -a $saveDIR
echo "===================================" | tee -a $saveDIR
2024-04-12 21:15:17 +03:00
echo "MySQL данные для EngineGP" | tee -a $saveDIR
echo "Ссылка на phpMyAdmin: http://$sysIP:9090/" | tee -a $saveDIR
echo "База данных: $dbEgpSQL" | tee -a $saveDIR
echo "Пользователь: $usrEgpSQL" | tee -a $saveDIR
echo "Пароль: $passEgpSQL" | tee -a $saveDIR
echo "===================================" | tee -a $saveDIR
2024-04-12 21:15:17 +03:00
echo "Системные данные MySQL" | tee -a $saveDIR
echo "MySQL пароль от root: $passSQL" | tee -a $saveDIR
echo "MySQL пароль от phpMyAdmin: $passPMA" | tee -a $saveDIR
echo "===================================" | tee -a $saveDIR
read -p "Нажмите Enter для завершения..."
continue
2023-10-12 22:47:04 +03:00
else
echo "===================================" >> $logsINST 2>&1
echo "Вы используете неподдерживаемую версию Linux" | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
2023-10-12 22:47:04 +03:00
fi
;;
2)
clear
useEngineGP=""
while true; do
echo -n "Хотите настроить локацию на сервере с EngineGP? (y/n)"
read useEngineGP
case $useEngineGP in
[Yy]*)
echo -n "Введите пароль root от MySQL:"
read -s userPassword
echo
passMySQL=$userPassword
break
;;
[Nn]*)
passMySQL=$(pwgen -cns -1 16)
break
;;
*)
echo "Пожалуйста, введите 'y' или 'n'."
;;
esac
done
clear
passProFTPD=$(pwgen -cns -1 16)
# Проверяем, содержится ли текущая версия в массиве поддерживаемых версий
if [[ " ${suppOS[@]} " =~ " ${currOS} " ]]; then
# Проверяем наличие репозитория nginx
if [[ " ${disOS} " =~ " Debian " ]]; then
if [ ! -f "/etc/apt/sources.list.d/nginx.list" ]; then
echo "===================================" >> $logsINST 2>&1
echo "Репозиторий nginx не обнаружен. Добавляем..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Установка используемых пакетов
sudo apt-get -y install lsb-release ca-certificates curl >> $logsINST 2>&1
# Скачиваем ключа зеркала репозитория Sury
sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://mirror.enginegp.com/sury/debsuryorg-archive-keyring.deb >> $logsINST 2>&1
# Устанавливаем ключа зеркала репозитория Sury
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb >> $logsINST 2>&1
# Добавляем репозиторий nginx
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-nginx.gpg] https://mirror.enginegp.com/sury/nginx/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/nginx.list' >> $logsINST 2>&1
2024-03-10 19:23:42 +03:00
# Обновление таблиц и пакетов
apt-get -y update >> $logsINST 2>&1
2024-03-10 19:23:42 +03:00
apt-get -y upgrade >> $logsINST 2>&1
fi
else
if [ ! -f "/etc/apt/sources.list.d/ondrej-ubuntu-nginx-*.list" ]; then
echo "===================================" >> $logsINST 2>&1
echo "Репозиторий nginx не обнаружен. Добавляем..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Добавляем репозиторий nginx
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/nginx -y >> $logsINST 2>&1
# Обновление таблиц и пакетов
apt-get -y update >> $logsINST 2>&1
apt-get -y upgrade >> $logsINST 2>&1
fi
fi
# Конфигурация nginx для FastDL
nginx_fastdl="server {
listen 8080;
location / {
root /var/nginx/;
index index.html index.htm;
set \$limit_rate 20m;
}
location ~ /(.*)/.*\.cfg {
deny all;
}
location ~ /(.*)/.*\.vpk {
deny all;
}
location ~ /(.*)/cfg/ {
deny all;
}
location ~ /(.*)/addons/ {
deny all;
}
location ~ /(.*)/logs/ {
deny all;
}
}"
2023-12-03 22:31:35 +03:00
pkgsLOC=(glibc-source lib32z1 libbabeltrace1 libc6-dbg libdw1 lib32stdc++6 libreadline8 lib32gcc-s1 screen tcpdump lsof qstat gdb-minimal ntpdate gcc-multilib iptables default-jdk nginx)
if ! dpkg --print-foreign-architectures | grep -q "i386"; then
echo "===================================" >> $logsINST 2>&1
echo "Архитектура i386 не добавлена. Выполняется добавление..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
sudo dpkg --add-architecture i386 >> $logsINST 2>&1
# Обновление таблиц
apt-get -y update >> $logsINST 2>&1
fi
# Устанавливаем базу данных
if [[ "${useEngineGP,,}" == "n" ]]; then
if ! dpkg-query -W -f='${Status}' "mysql-server" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "mysql-server не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
sudo debconf-set-selections <<EOF
mysql-apt-config mysql-apt-config/select-server select mysql-8.0
mysql-apt-config mysql-apt-config/select-tools select Enabled
mysql-apt-config mysql-apt-config/select-preview select Disabled
EOF
2024-05-21 14:52:05 +03:00
sudo curl -SLO https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb >> $logsINST 2>&1
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config_0.8.30-1_all.deb >> $logsINST 2>&1
sudo apt-get update >> $logsINST 2>&1
2024-05-21 14:52:05 +03:00
sudo rm mysql-apt-config_0.8.30-1_all.deb >> $logsINST 2>&1
sudo debconf-set-selections <<EOF
2023-12-02 11:08:59 +03:00
mysql-community-server mysql-community-server/root-pass password $passMySQL
mysql-community-server mysql-community-server/re-root-pass password $passMySQL
mysql-community-server mysql-server/default-auth-override select Use Strong Password Encryption (RECOMMENDED)
EOF
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server >> $logsINST 2>&1
else
echo "===================================" >> $logsINST 2>&1
echo "mysql-server уже установлен в системе. Продолжение установки невозможно." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
continue
fi
fi
# Цикл установки пакетов
for package in "${pkgsLOC[@]}"; do
# Проверка на наличие и установка пакетов
if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "$package не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
apt-get install -y "$package" >> $logsINST 2>&1
fi
done
# Настраиваем FastDL
if [ ! -f /etc/nginx/sites-available/02-fastdl.conf ]; then
# Создаём каталог и выдаём ему права
sudo mkdir -p /var/nginx >> $logsINST 2>&1
sudo chmod -R 755 /var/nginx >> $logsINST 2>&1
echo "===================================" >> $logsINST 2>&1
echo "fastdl не настроен. Выполняется настройка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Удаляем дефолтный конфиг и создаём для FastDL
sudo rm /etc/nginx/sites-enabled/default >> $logsINST 2>&1
echo -e "$nginx_fastdl" | sudo tee /etc/nginx/sites-available/02-fastdl.conf >> $logsINST 2>&1
sudo ln -s /etc/nginx/sites-available/02-fastdl.conf /etc/nginx/sites-enabled/ >> $logsINST 2>&1
# Проводим тестирование и запускаем конфиг NGINX
sudo nginx -t >> $logsINST 2>&1
sudo systemctl restart nginx >> $logsINST 2>&1
else
echo "===================================" >> $logsINST 2>&1
echo "fastdl не установлен. Продолжение установки невозможно." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
continue
fi
# Устанавливаем ProFTPD
if ! dpkg-query -W -f='${Status}' "proftpd" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "proftpd не установлен. Выполняется установка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
echo "proftpd shared/proftpd/inetd_or_standalone select standalone" | debconf-set-selections
2023-12-09 20:11:26 +03:00
sudo apt-get install -y proftpd-basic proftpd-mod-mysql >> $logsINST 2>&1
curl -o /etc/proftpd/proftpd.conf $resURL/Components/ProFTPD/proftpd >> $logsINST 2>&1
2023-12-09 20:11:26 +03:00
curl -o /etc/proftpd/modules.conf $resURL/Components/ProFTPD/proftpd_modules >> $logsINST 2>&1
curl -o /etc/proftpd/sql.conf $resURL/Components/ProFTPD/proftpd_sql >> $logsINST 2>&1
2023-12-09 20:11:26 +03:00
mysql -u root -p$passMySQL -e "CREATE DATABASE ftp;" >> $logsINST 2>&1
mysql -u root -p$passMySQL -e "CREATE USER 'ftp'@'localhost' IDENTIFIED BY '$passProFTPD';" >> $logsINST 2>&1
mysql -u root -p$passMySQL -e "GRANT ALL PRIVILEGES ON ftp . * TO 'ftp'@'localhost';" >> $logsINST 2>&1
curl -sSL $resURL/Components/ProFTPD/sqldump.sql | mysql -u root -p$passMySQL ftp >> $logsINST 2>&1
sed -i 's/passwdfor/'$passMySQL'/g' /etc/proftpd/sql.conf >> $logsINST 2>&1
chmod -R 750 /etc/proftpd >> $logsINST 2>&1
systemctl restart proftpd >> $logsINST 2>&1
else
echo "===================================" >> $logsINST 2>&1
echo "proftpd уже установлен. Продолжение установки невозможно." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
continue
fi
# Настраиваем rclocal
if [ ! -f /etc/rc.local ]; then
echo "===================================" >> $logsINST 2>&1
echo "rc.local не настроен. Выполняется настройка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
sudo touch /etc/rc.local >> $logsINST 2>&1
echo '#!/bin/bash' | sudo tee -a /etc/rc.local >> $logsINST 2>&1
echo "/root/iptables_block" | sudo tee -a /etc/rc.local >> $logsINST 2>&1
echo "exit 0" | sudo tee -a /etc/rc.local >> $logsINST 2>&1
sudo chmod +x /etc/rc.local >> $logsINST 2>&1
fi
# Настраиваем iptables
if dpkg-query -W -f='${Status}' "iptables" 2>/dev/null | grep -q "install ok installed"; then
echo "===================================" >> $logsINST 2>&1
echo "iptables не настроен. Выполняется настройка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
# Проверка на наличие файла
if [ ! -f /root/iptables_block ]; then
sudo touch /root/iptables_block >> $logsINST 2>&1
sudo chmod 500 /root/iptables_block >> $logsINST 2>&1
else
sudo chmod 500 /root/iptables_block >> $logsINST 2>&1
fi
else
echo "===================================" >> $logsINST 2>&1
echo "iptables уже установлен. Продолжение установки невозможно." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
continue
fi
# Установка SteamCMD
if [ ! -d "/path/cmd" ]; then
echo "===================================" >> $logsINST 2>&1
echo "steamcmd не настроен. Выполняется настройка..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
groupmod -g 998 `cat /etc/group | grep :1000 | awk -F":" '{print $1}'` >> $logsINST 2>&1
groupadd -g 1000 servers >> $logsINST 2>&1
mkdir -p /path /path/cmd /path/update /path/maps >> $logsINST 2>&1
chmod -R 755 /path >> $logsINST 2>&1
chown root:servers /path >> $logsINST 2>&1
mkdir -p /servers >> $logsINST 2>&1
chmod -R 711 /servers >> $logsINST 2>&1
chown root:servers /servers >> $logsINST 2>&1
mkdir -p /copy >> $logsINST 2>&1
chmod -R 750 /copy >> $logsINST 2>&1
chown root:root /copy >> $logsINST 2>&1
sudo curl -SL -o steamcmd_linux.tar.gz http://media.steampowered.com/client/steamcmd_linux.tar.gz >> $logsINST 2>&1
tar -xzf steamcmd_linux.tar.gz -C /path/cmd >> $logsINST 2>&1
rm steamcmd_linux.tar.gz >> $logsINST 2>&1
else
echo "===================================" >> $logsINST 2>&1
echo "steamcmd уже установлен. Продолжение установки невозможно...." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
continue
fi
echo "===================================" | tee -a $saveDIR
echo "Данные локации" | tee -a $saveDIR
echo "SQL_Username: root" | tee -a $saveDIR
echo "SQL_Password: $passMySQL" | tee -a $saveDIR
echo "SQL_FileTP: ftp" | tee -a $saveDIR
echo "SQL_Port: 3306" | tee -a $saveDIR
echo "Password for FTP database: $passProFTPD" | tee -a $saveDIR
echo "===================================" | tee -a $saveDIR
read -p "Нажмите Enter для завершения..."
continue
else
echo "===================================" >> $logsINST 2>&1
echo "Вы используете неподдерживаемую версию Linux" | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для завершения..."
fi
;;
3)
clear
# Игровой репозиторий
gamesURL="http://gs.enginegp.ru"
echo "Меню установки игровых сборок:"
echo "1. Counter-Strike: 1.6"
echo "2. Counter-Strike: Source v34 (old)"
echo "3. Counter-Strike: Source (new)"
echo "4. Counter-Strike: Global Offensive"
echo "5. Counter-Strike: 2"
echo "6. Grand Theft Auto: San Andreas MultiPlayer"
echo "7. Grand Theft Auto: Criminal Russia MultiPlayer"
echo "8. Grand Theft Auto: Multi Theft Auto"
echo "9. Minecraft Java Edition"
echo "10. RUST"
echo "0. Вернуться в предыдущее меню"
read -p "Выберите пункт меню: " game_choice
case $game_choice in
1)
clear
mkdir -p /path/cs /path/update/cs /path/maps/cs /servers/cs >> $logsINST 2>&1
echo "Меню установки Counter-Strike: 1.6"
echo "1. Steam [Clean server]"
echo "2. Build ReHLDS"
echo "3. Build 8308"
echo "4. Build 8196"
echo "5. Build 7882"
echo "6. Build 7559"
echo "7. Build 6153"
echo "8. Build 5787"
echo "0. Вернуться в предыдущее меню"
read -p "Выберите пункт меню: " cs16_choice
case $cs16_choice in
1)
mkdir -p /path/cs/steam 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/cs/steam/steam.zip $gamesURL/cs/steam.zip 2>&1 | tee -a ${logsINST}
sudo unzip /path/cs/steam/steam.zip -d /path/cs/steam/ 2>&1 | tee -a ${logsINST}
sudo rm /path/cs/steam/steam.zip | tee -a $logsINST 2>&1 | tee -a ${logsINST}
cs16_choice
;;
2)
mkdir -p /path/cs/rehlds 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/cs/rehlds/rehlds.zip $gamesURL/cs/rehlds.zip 2>&1 | tee -a ${logsINST}
sudo unzip /path/cs/rehlds/rehlds.zip -d /path/cs/rehlds/ 2>&1 | tee -a ${logsINST}
sudo rm /path/cs/rehlds/rehlds.zip 2>&1 | tee -a ${logsINST}
cs16_choice
;;
3)
mkdir -p /path/cs/8308 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/cs/8308/8308.zip $gamesURL/cs/8308.zip 2>&1 | tee -a ${logsINST}
sudo unzip /path/cs/8308/8308.zip -d /path/cs/8308/ 2>&1 | tee -a ${logsINST}
sudo rm /path/cs/8308/8308.zip 2>&1 | tee -a ${logsINST}
cs16_choice
;;
4)
mkdir -p /path/cs/8196 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/cs/8196/8196.zip $gamesURL/cs/8196.zip 2>&1 | tee -a ${logsINST}
unzip /path/cs/8196/8196.zip -d /path/cs/8196/ 2>&1 | tee -a ${logsINST}
rm /path/cs/8308/8308.zip 2>&1 | tee -a ${logsINST}
cs16_choice
;;
5)
mkdir -p /path/cs/7882 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/cs/7882/7882.zip $gamesURL/cs/7882.zip 2>&1 | tee -a ${logsINST}
unzip /path/cs/7882/7882.zip -d /path/cs/7882/ 2>&1 | tee -a ${logsINST}
rm /path/cs/7882/7882.zip 2>&1 | tee -a ${logsINST}
cs16_choice
;;
6)
mkdir -p /path/cs/7559 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/cs/7559/7559.zip $gamesURL/cs/7559.zip 2>&1 | tee -a ${logsINST}
unzip /path/cs/7559/7559.zip -d /path/cs/7559/ 2>&1 | tee -a ${logsINST}
rm /path/cs/7559/7559.zip 2>&1 | tee -a ${logsINST}
cs16_choice
;;
7)
mkdir -p /path/cs/6153 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/cs/6153/6153.zip $gamesURL/cs/6153.zip 2>&1 | tee -a ${logsINST}
unzip /path/cs/6153/6153.zip -d /path/cs/6153/ 2>&1 | tee -a ${logsINST}
rm /path/cs/6153/6153.zip 2>&1 | tee -a ${logsINST}
cs16_choice
;;
8)
mkdir -p /path/cs/5787 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/cs/5787/5787.zip $gamesURL/cs/5787.zip 2>&1 | tee -a ${logsINST}
unzip /path/cs/5787/5787.zip -d /path/cs/5787/ 2>&1 | tee -a ${logsINST}
rm /path/cs/5787/5787.zip 2>&1 | tee -a ${logsINST}
cs16_choice
;;
0)
game_choice
;;
*)
clear
echo "===================================" >> $logsINST 2>&1
echo "Неверный выбор. Попробуйте еще раз." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
;;
esac
;;
2)
clear
mkdir -p /path/cssold /path/update/cssold /path/maps/cssold /servers/cssold >> $logsINST 2>&1
echo "Меню установки Counter-Strike: Source v34"
echo "1. Steam [Clean server]"
echo "0. Вернуться в предыдущее меню"
read -p "Выберите пункт меню: " css34_choice
case $css34_choice in
1)
mkdir -p /path/cssold/steam 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/cssold/steam/steam.zip $gamesURL/cssold/steam.zip 2>&1 | tee -a ${logsINST}
sudo unzip /path/cssold/steam/steam.zip -d /path/cssold/steam/ 2>&1 | tee -a ${logsINST}
sudo rm /path/cssold/steam/steam.zip | tee -a $logsINST 2>&1 | tee -a ${logsINST}
css34_choice
;;
0)
game_choice
;;
*)
clear
echo "===================================" >> $logsINST 2>&1
echo "Неверный выбор. Попробуйте еще раз." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
;;
esac
;;
3)
clear
mkdir -p /path/css /path/update/css /path/maps/css /servers/css >> $logsINST 2>&1
echo "Меню установки Counter-Strike: Source"
echo "1. Steam [Clean server]"
echo "0. Вернуться в предыдущее меню"
read -p "Выберите пункт меню: " css_choice
case $css_choice in
1)
mkdir -p /path/css/steam 2>&1 | tee -a ${logsINST}
sudo curl -SL -o /path/css/steam/steam.zip $gamesURL/css/steam.zip 2>&1 | tee -a ${logsINST}
sudo unzip /path/css/steam/steam.zip -d /path/css/steam/ 2>&1 | tee -a ${logsINST}
sudo rm /path/css/steam/steam.zip | tee -a $logsINST 2>&1 | tee -a ${logsINST}
css_choice
;;
0)
game_choice
;;
*)
clear
echo "===================================" >> $logsINST 2>&1
echo "Неверный выбор. Попробуйте еще раз." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
;;
esac
;;
4)
clear
mkdir -p /path/csgo /path/update/csgo /path/maps/csgo /servers/csgo >> $logsINST 2>&1
echo "Меню установки Counter-Strike: GO"
echo "1. Steam [Clean server]"
echo "0. Вернуться в предыдущее меню"
read -p "Выберите пункт меню: " csgo_choice
case $csgo_choice in
1)
mkdir -p /path/csgo/steam 2>&1 | tee -a ${logsINST}
/path/cmd/steamcmd.sh +login anonymous +force_install_dir /path/csgo/steam +app_update 740 validate +quit 2>&1 | tee -a ${logsINST}
csgo_choice
;;
0)
game_choice
;;
*)
clear
echo "===================================" >> $logsINST 2>&1
echo "Неверный выбор. Попробуйте еще раз." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
;;
esac
;;
5)
clear
mkdir -p /path/cs2 /path/update/cs2 /path/maps/cs2 /servers/cs2 >> $logsINST 2>&1
echo "Меню установки Counter-Strike: 2"
echo "1. Steam [Clean server]"
echo "0. Вернуться в предыдущее меню"
read -p "Выберите пункт меню: " cs2_choice
case $cs2_choice in
1)
mkdir -p /path/cs2/steam 2>&1 | tee -a ${logsINST}
/path/cmd/steamcmd.sh +login anonymous +force_install_dir /path/cs2/steam +app_update 730 validate +quit 2>&1 | tee -a ${logsINST}
cs2_choice
;;
0)
game_choice
;;
*)
clear
echo "===================================" >> $logsINST 2>&1
echo "Неверный выбор. Попробуйте еще раз." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
;;
esac
;;
6)
# Add code for installing MTA game here
;;
7)
# Add code for installing MTA game here
;;
8)
# Add code for installing MTA game here
;;
9)
# Add code for installing MTA game here
;;
10)
# Add code for installing MTA game here
;;
0)
choice
;;
*)
clear
echo "===================================" >> $logsINST 2>&1
echo "Неверный выбор. Попробуйте еще раз." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
;;
esac
;;
4)
clear
echo "===================================" >> $logsINST 2>&1
echo "Текущая версия Linux: $currOS" | tee -a $logsINST
echo "Внешний IP-адрес: $sysIP" | tee -a $logsINST
echo "Версия php: $verPHP" | tee -a $logsINST
echo "Ветка GIT: $gitEGP" | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
read -p "Нажмите Enter для выхода в главное меню..."
continue
;;
0)
clear
echo "===================================" >> $logsINST 2>&1
echo "До свидания!" | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
exit 0
;;
*)
clear
echo "===================================" >> $logsINST 2>&1
echo "Неверный выбор. Попробуйте еще раз." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
;;
esac
2023-08-05 18:57:50 +03:00
echo "===================================" >> $logsINST 2>&1
echo "Нажмите Enter, чтобы продолжить..." | tee -a $logsINST
echo "===================================" >> $logsINST 2>&1
done