Updates
This commit is contained in:
171
shell/0-CheckSystem.sh
Executable file
171
shell/0-CheckSystem.sh
Executable file
@@ -0,0 +1,171 @@
|
||||
#!/bin/bash
|
||||
cd ..
|
||||
#======================================================================
|
||||
#Pip 3
|
||||
#======================================================================
|
||||
UpdatePip3()
|
||||
{
|
||||
echo ""
|
||||
echo "============================================================="
|
||||
echo "Pip 3"
|
||||
echo "============================================================="
|
||||
echo "Обновляем Pip 3 на всякий случай"
|
||||
sudo pip3 install --upgrade pip
|
||||
}
|
||||
|
||||
#======================================================================
|
||||
#Проверка Python3
|
||||
#======================================================================
|
||||
CheckPython3()
|
||||
{
|
||||
echo ""
|
||||
echo "============================================================="
|
||||
echo "Python 3.7.7"
|
||||
echo "============================================================="
|
||||
echo "Проверяем наличие Python3 в системе "
|
||||
T=$(python3 -V | grep 3.7.7)
|
||||
if [ "$T" == "" ];
|
||||
then
|
||||
echo "Устанавливаем зависимости для Python 3.7 "
|
||||
sudo apt-get build-dep python3.7
|
||||
|
||||
echo "Скачиваем Python 3.7.7 "
|
||||
cd /tmp/
|
||||
wget -c https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
|
||||
|
||||
echo "Распаковываем архив... "
|
||||
tar -xvzf Python-3.7.7.tgz
|
||||
cd Python-3.7.7
|
||||
|
||||
echo "Настраиваем пакет... "
|
||||
./configure --enable-optimizations
|
||||
|
||||
echo "Компилируем пакет... "
|
||||
make
|
||||
make test
|
||||
|
||||
echo "Устанавливаем Python 3.7.7... "
|
||||
sudo make install
|
||||
else
|
||||
echo "Уже установлен Python 3.7.7"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Перепроверяем " $1
|
||||
T=$(python3 -V | grep 3.7.7)
|
||||
if $T= ""
|
||||
then
|
||||
echo "Не удалось установить " $1
|
||||
return 0 #Неудача
|
||||
fi
|
||||
echo "Успешно установлен " $1
|
||||
echo "Рекомендуется перезагрузить Linux командой: sudo reboot 0"
|
||||
return 1 #Успех
|
||||
}
|
||||
|
||||
#======================================================================
|
||||
#Проверка пакетов Linux
|
||||
#======================================================================
|
||||
Check()
|
||||
{
|
||||
echo ""
|
||||
echo "============================================================="
|
||||
echo "Linux:" $1
|
||||
echo "============================================================="
|
||||
|
||||
echo "Проверяем наличие пакета Python 3 в системе "
|
||||
T=$(dpkg --get-selections | grep $1 | grep install)
|
||||
if [ "$T" == "" ];
|
||||
then
|
||||
echo "Устанавливаем " $1
|
||||
sudo apt-get -y install $1
|
||||
else
|
||||
echo "Уже установлен " $1
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Перепроверяем " $1
|
||||
T=$(dpkg --get-selections | grep $1 | grep install)
|
||||
if [ "$T" == "" ];
|
||||
then
|
||||
echo "Не удалось установить " $1
|
||||
return 0 #Неудача
|
||||
fi
|
||||
echo "Успешно установлен " $1
|
||||
return 1 #Успех
|
||||
}
|
||||
|
||||
#======================================================================
|
||||
#Проверка пакетов Python 3
|
||||
#======================================================================
|
||||
CheckPip()
|
||||
{
|
||||
echo ""
|
||||
echo "============================================================="
|
||||
echo "Pip 3: " $1
|
||||
echo "============================================================="
|
||||
|
||||
echo "Проверяем наличие пакета в Python 3 "
|
||||
T=$(sudo pip3 freeze | grep $1)
|
||||
if [ "$T" == "" ];
|
||||
then
|
||||
echo "Устанавливаем " $1
|
||||
sudo pip3 install $1
|
||||
else
|
||||
echo "Уже установлен " $1
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Перепроверяем " $1
|
||||
T=$(sudo pip3 freeze | grep $1)
|
||||
if [ "$T" == "" ];
|
||||
then
|
||||
echo "Не удалось установить " $1
|
||||
return 0 #Неудача
|
||||
fi
|
||||
echo "Успешно установлен " $1
|
||||
return 1 #Успех
|
||||
}
|
||||
|
||||
|
||||
echo "Обновление существующих пакетов Linux..."
|
||||
sudo apt-get update
|
||||
sudo apt-get -y upgrade
|
||||
|
||||
Check "git" #Система управления репозиториями
|
||||
Check "rsync" #Копировальщик
|
||||
Check "build-essential" #информационный список пакетов необходимых для сборки
|
||||
Check "make" #утилита управления компиляцией
|
||||
Check "libssl-dev" #для работы с SSL
|
||||
Check "libcurl4-gnutls-dev" #development files and documentation for libcurl (GnuTLS flavour). libcurl is an easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
|
||||
Check "libgnutls28-dev" #GNU TLS library - development files GnuTLS is a portable library which implements the Transport Layer Security (TLS 1.0, 1.1, 1.2, 1.3) and Datagram Transport Layer Security (DTLS 1.0, 1.2) protocols.
|
||||
Check "zlib1g-dev" #для сжатия
|
||||
Check "libbz2-dev" #библиотека сжатия по алгоритму Барроуза—Уилера (версия для разработки) Статические библиотеки и заголовочные файлы, требуемые для сборки приложений, использующих библиотеку bzip2.
|
||||
Check "libreadline-dev" #GNU readline and history libraries, development files
|
||||
Check "libsqlite3-dev" #SQLite 3 development files
|
||||
Check "wget" #Для возможности скачивания с Инета, например Python3
|
||||
Check "curl" #передача данных с синтаксисом URL, инструмент командной строки. curl — инструмент командной строки для передачи данных с синтаксисом URL, поддерживающий DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET и TFTP.
|
||||
#Check "llvm" #Low-Level Virtual Machine (LLVM). The Low-Level Virtual Machine (LLVM) is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs.
|
||||
#Check "libncurses5-dev" # transitional package for libncurses-dev. This is a transitional package that can safely be removed.
|
||||
#Check "libncursesw5-dev" #transitional package for libncurses-dev. This is a transitional package that can safely be removed.
|
||||
#Check "xz-utils" #утилита для работы с архивами в формате XZ
|
||||
Check "tk-dev" #Toolkit for Tcl and X11 (default version) - development files Tk is a cross-platform graphical toolkit which provides the Motif look-and-feel and is implemented using the Tcl scripting language.
|
||||
Check "postfix" #высокопроизводительный агент пересылки почты
|
||||
Check "ssh" #для возможности работы по удаленке
|
||||
|
||||
CheckPython3 #Проверка и установка Python3
|
||||
UpdatePip3 # Обновление Pip3
|
||||
|
||||
CheckPip "Flask"
|
||||
CheckPip "Flask-Compress"
|
||||
CheckPip "grab"
|
||||
CheckPip "gunicorn"
|
||||
CheckPip "pymssql"
|
||||
CheckPip "XlsxWriter"
|
||||
CheckPip "wget"
|
||||
CheckPip "crypto"
|
||||
CheckPip "pycrypto"
|
||||
CheckPip "config"
|
||||
CheckPip "dnspython"
|
||||
CheckPip "python-whois"
|
||||
CheckPip "websockets"
|
||||
12
shell/1-UpdateClient.sh
Executable file
12
shell/1-UpdateClient.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
git config --global credential.helper cache #чтение настроек авторизации
|
||||
git reset --hard #игнорировать изменения у клиента
|
||||
git fetch
|
||||
git pull
|
||||
|
||||
#systemctl --user restart $(ls *.service | sed 's/\..*//')
|
||||
#Устанавливаем получаем имя файла сервиса
|
||||
FNAME=$(ls *.service )
|
||||
|
||||
echo "Запускаем сервис для пользователя $FNAME"
|
||||
systemctl --user restart $FNAME
|
||||
|
||||
25
shell/2-InstallService.sh
Executable file
25
shell/2-InstallService.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
./Prepare.sh
|
||||
cd ..
|
||||
|
||||
ServiceName=$(python3 Scripts.py --getconfig PROGNAME)
|
||||
SHMName=$(python3 Scripts.py --getconfig SHMNAME)
|
||||
|
||||
echo '[Unit]
|
||||
Description=Запуск '$ServiceName'
|
||||
|
||||
[Service]
|
||||
ExecStart='$PWD'/shell/Gunicorn.sh
|
||||
User='$USER'
|
||||
Group='$USER'
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
|
||||
' > /tmp/site_$SHMName.service
|
||||
|
||||
#echo "Устанавливаем сервис для пользователя $FNAME"
|
||||
sudo cp /tmp/site_$SHMName.service /etc/systemd/system/site_$SHMName.service
|
||||
sudo systemctl enable site_$SHMName.service
|
||||
sudo systemctl restart site_$SHMName.service
|
||||
6
shell/3-Sudoers.sh
Executable file
6
shell/3-Sudoers.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo $USER' ALL=NOPASSWD: /usr/bin/service, /usr/bin/apt-get update, /usr/bin/apt-get upgrade
|
||||
' > /tmp/tmp_sudoers
|
||||
|
||||
sudo cp /tmp/tmp_sudoers /etc/sudoers.d/$USER
|
||||
9
shell/Gunicorn.sh
Executable file
9
shell/Gunicorn.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
|
||||
echo "Подготовка..."
|
||||
sh Prepare.sh
|
||||
cd ..
|
||||
|
||||
echo "Запускаем сервер Gunicorn с Проигрывателем записей разговоров..."
|
||||
gunicorn -w 4 --timeout 900 --keep-alive 900 --keyfile=/etc/letsencrypt/live/elforcer.udm.ru/privkey.pem --certfile=/etc/letsencrypt/live/elforcer.udm.ru/cert.pem --bind 0.0.0.0:8001 StartServer:app
|
||||
27
shell/Prepare.sh
Executable file
27
shell/Prepare.sh
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
cd ..
|
||||
|
||||
#Копируем файл конфигурации, если его не было
|
||||
if [ ! -f "config.py" ]; then
|
||||
echo " Не найден файл конфигурации. Копируем его из примера...";
|
||||
cp samples/config_sample.py config.py
|
||||
fi
|
||||
|
||||
DIR="app/static/WAV"
|
||||
if [ ! -d "$DIR" ]; then
|
||||
echo " Создаем папку настроек для звуковых записей.."
|
||||
mkdir $DIR
|
||||
fi
|
||||
|
||||
echo " Загружаем настройки в память..."
|
||||
#Создаем папку для программы, если её не было
|
||||
DIR="/dev/shm/"$(python3 Scripts.py --getconfig SHMNAME) #"/dev/shm/phonecalls"
|
||||
|
||||
if [ ! -d "$DIR" ]; then
|
||||
echo " Создаем папку настроек в памяти..."
|
||||
mkdir $DIR
|
||||
|
||||
fi
|
||||
|
||||
#Копируем настройки
|
||||
rsync -ah --delete db/Settings $DIR
|
||||
8
shell/Restart.sh
Executable file
8
shell/Restart.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
./Prepare.sh
|
||||
|
||||
ServiceName=$(python3 Scripts.py --getconfig PROGNAME)
|
||||
SHMName=$(python3 Scripts.py --getconfig SHMNAME)
|
||||
|
||||
echo 'Перезапуск '$ServiceName
|
||||
sudo systemctl restart site_$SHMName.service
|
||||
2
shell/StartFlask.sh
Executable file
2
shell/StartFlask.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
python3 StartServer.py
|
||||
|
||||
7
shell/StopServer.sh
Executable file
7
shell/StopServer.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
ServiceName=$(python3 Scripts.py --getconfig PROGNAME)
|
||||
SHMName=$(python3 Scripts.py --getconfig SHMNAME)
|
||||
|
||||
echo 'Остановка '$ServiceName
|
||||
sudo systemctl stop site_$SHMName.service
|
||||
6
shell/UpdateGit.sh
Executable file
6
shell/UpdateGit.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
cd ..
|
||||
git config --global credential.helper cache
|
||||
git add .
|
||||
git commit -m "Updates"
|
||||
git push
|
||||
|
||||
Reference in New Issue
Block a user