Архив рубрики: BASH scripts

Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell.

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 …

Vagrant: остановить все запущенные боксы

21 января 2016
 

 На рабочей машинке запущено несколько Vagrant машин. Что бы остановить (или приостановить) все – можно воспользоваться vagrant global-status: $ vagrant global-status id name provider state directory ——————————————————————————————————- b2080c5 default virtualbox running /Users/username/VMs/Vagrant/nike … 12beb0a default virtualbox running /Users/username/VMs/Vagrant/JBoss

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)

BASH: переменные – передача значений по-умолчанию ${var:-defaultvalue}, замена значений – ${var:+alternatevalue} и сообщений – ${var:?message}

8 августа 2014
 

 Использование значений по-умолчанию в переменных – ${var:-defaltvalue} и ${var-defaltvalue} Конструкция ${var:-defaltvalue} позволяет выполнять проверку – имеется ли значение у переменной, и задана ли переменная вообще. Если нет – то будет присвоено значение “defaltvalue“. Примеры: [simterm] $ var=var $ echo ${var:-defaltvalue} var [/simterm] Удалим значение перемеренной: [simterm] $ var= $ echo ${var:-defaltvalue} defaultvalue [/simterm] Допустимо использование… Читать далее »

CentOS: порядок выполнения init.d скриптов и приоритеты chkconfig

5 августа 2014
 

 На сервере использовался запуск TeamCity одной строкой в файле /etc/rc.local: su -c teamcity ‘/home/teamcity/TeamCity/bin/runAll.sh start’ Но после перезагрузки – в логе TeamCity появились сообщения: [2014-08-05 13:17:23,402] ERROR – jetbrains.buildServer.SERVER – Unable to change status of build 23908 jetbrains.buildServer.serverSide.db.UnexpectedDBException: Attempting to determine database type SQL exception: Communications link failure Т.е. – MySQL запустился после того, как запустился… Читать далее »

BASH: переменные – замена текста, срезы и непрямые ссылки

16 июля 2014
 

 Замена значения в переменных – ${variable//ШАБЛОН/СТРОКА} Можно заменить всё значение переменной, например так: $ a=”firstvalue” $ echo ${a//firstvalue/secondvalue} secondvalue Можно выполнить замену только попадающей под ШАБЛОН части: $ a=”111222″ $ echo ${a//1/3} 333222