@hckn

Как можно оптимизировать этот скрипт?

Написал первый в жизни скрипт, для первоначального деплоя приложения (приложение состоит из двух отдельных - фронт и API).

1. полная настройка VPS, установка зависимостей, конфиг для сервера и тд
2. копирование ключей от гита, клонирование репозиториев, установка зависимостей и их запуск
3. перенос БД, перенос статики (картинки)

#!/bin/bash

USER=iamuser
HOST=88.88.88.88
DOMAIN=example.com

scp keys/* $USER@$HOST:/home/$USER/.ssh


Все работает на удивление без нареканий. Но поскольку это первый опыт и я совсем не изучал баш скриптинг (от слова вообще), подозреваю есть глупые моменты, и вообще можно как-то оптимизировать все это дело. Прошу помощи и критики более опытных разработчиков.
  • Вопрос задан
  • 183 просмотра
Решения вопроса 4
@alexstup
Оркестр
Попробуйте ansible
Ответ написан
@AVKor
Код не структурирован.

Нет обработки ошибок.

Нет комментариев.
Ответ написан
Неплохо для первого раза.
Согласен с AVKor насчёт обработки ошибок. Это нельзя игнорировать. Процесс может неудачно выполниться, связь с удалённым сервером может быть временно недоступна и т.д.
  1. Как минимум, вот этот кусок надо проработать лучше:
    mongodump --db super-db
    tar -cvf dump.tar dump/
    scp dump.tar $USER@$HOST:/home/$USER
    rm dump.tar && rm -rf dump/

    Если mongodump закончится с ненулевым статусом, то дампа не будет и тогда останешься без резервной копии.

  2. Архивы TAR лучше создавать в сочетании со сжатием. Ключами -j, -J или -z
  3. Если нет необходимости именно в TAR, то можно синхронизировать файлы на уданённый сервер при помощи утилиты rsync
Ответ написан
@kadmin88
Вот тут согласен с Романом.
mongodump --db super-db
tar -cvf dump.tar dump/
scp dump.tar $USER@$HOST:/home/$USER
rm dump.tar && rm -rf dump/

Можно добавить условие на проверку успешного выполнения, например так:
tar -cvf dump.tar dump/
if
[ $? == 0 ]
then
scp dump.tar $USER@$HOST:/home/$USER && rm -f ./dump.tar && rm -rf ./dump/
else
echo "error while dump"
fi
и, все-таки надежнее использовать полные пути.

Если не прав, поправьте меня.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 16:12
2000 руб./за проект
25 апр. 2024, в 16:08
130000 руб./за проект