Архив метки: bash

BASH: массивы, пример – скрипт получения логов из Docker-контейнеров

18 ноября 2016
 

 Есть приложение, которое включает в себя 5 Docker-контейнеров. Для наблюдения за логами используется Loggly, но мне он жутко неудобен – в консоли логи удобнее смотреть и грепать. Запущенное приложение выглядит так: ubuntu@ip-10-5-3-54:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 63937e07a5cf tag-docker.jfrog.io/api-gateway:staging-test-eureka-cloud-versioning-124 “java -Djava.security” 30 minutes ago Up 30 minutes 0.0.0.0:8080->8080/tcp peaceful_blackwell cbf2394197bc… Читать далее »

Azure: GoCD и MSDeploy – деплой UmbracoCMS в Azure WebServices

14 октября 2016
 

 Описание инфрастуктуры и процесса деплоя приложения одного немецкого производителя приятноалкогольной продукции. Работает на UmbracoCMS, .NET, язык – C#, использует две Azure (MS) SQL базы – одну для хранения настроек, вторую – для пользовательских данных. Для приложения имеются две различные ресурс-группы – Development и Production, при этом у Production имеется Staging swap-slot (у Dev – тоже, но он пока не… Читать далее »

Azure: управление зонами в Azure DNS – Git, GoCD, bash и Azure CLI

12 мая 2016
 

 Новый проект переносит свои домены на DNS Azure, для чего требовалось создать возможность управления ими. Схема получается следующая: файлы зон хранятся в Stash; GoCD проверяет обновления в Stash, и триггерит билд; во время билда – файлы зон заливаются на Azure DNS. Обновление данных выполняется bash-скриптом с помощью Azure CLI. Больше про Azure CLI  и работу с… Читать далее »

NGINX: управление конфигурацией прокси

3 мая 2016
 

 Система управления прокси-сервером под NGINX на Ubuntu 14.04 в Azure. Файлы конфигураций бекенд-хостов хранятся в Atlassian Stash, в роли CI/CD сервера выступает GoCD от Hashicorp. Предназначена для предоставления девелоперам возможности управления конфигурацией хостов в процессе переноса сайтов проекта со старых на новые версии. Репозиторий Скрипты Скрипт backup.sh Скрипт nginx_update.sh GoCD Репозиторий

BASH: многострочные команды по SSH

27 января 2016
 

 Есть несколько вариантов как выполнить несколько команд на удаленном сервере по SSH. Первый – используя разделитель “;“: $ ssh -p 2222 [email protected] ls /opt/; ls -1 /var [email protected]’s password: mailstat pflogsumm-1.1.1 pflogsumm-1.1.1.tar.gz Keychains …

Shell: перенаправление stdout и stderr

6 января 2016
 

 В UNIX-системах имеется три файловых дескриптора- stdin, stdout и stderr (std == standard). Используя их вы можете: перенаправить stdout в файл; перенаправить stderr в файл; перенаправить stdout в stderr; перенаправить stderr в stdout; перенаправить stderr и stdout в файл; перенаправить stderr и stdout в stdout; перенаправить stderr и stdout в stderr. Для stdout используется дескриптор 1, а для stderr – 2.

BASH: регулярные выражения: =~ и BASH_REMATCH

11 апреля 2015
 

 В BASH версии 3.0 и выше имеется специальный оператор для работы с регулярными выражениями =~.   Для примера возьмём такой скрипт: #!/usr/bin/env bash PATH=”/var/lib/mysql/rtfm_db1/*” regex=”.*.MYI” for file in $PATH; do if [[ $file =~ $regex ]]; then echo -e “Found file: $file” fi done

BASH: форматирование даты

28 января 2015
 

 Для отображения информации о текущем времени и/или дате используется утилита /bin/date. Ситаксис её использования: date +FORMAT date +”%FORMAT” date +”%FORMAT%FORMAT” date +”%FORMAT-%FORMAT”

BASH: скрипт статистики использования ресурсов процессом

26 сентября 2014
 

 Задача – снимать потребление памяти и нагрузку процессора, которые генерируется сервером MySQL (MariaDB). Скрипт тестировался на: # cat /etc/redhat-release CentOS release 6.5 (Final) И bash: # bash –version GNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu)