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

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] Допустимо использование… Читать далее »

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

16 июля 2014
 

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

BASH: консольный график использования памяти Java-машиной

10 июля 2014
 

 Задача – сделать консольную утилиту, которая выводила бы информацию аналогично visualvm – Used heap + писать в лог. Для получения данных от Java-машины – используем jmap. Предполагается, что мониторить мы будем Tomcat с заданной переменной CATALINA_PID.

BASH: позиционные и специальные аргументы

15 июня 2014
 

 В BASH shell имеется три типа аргументов – позиционные, специальные и переменные. Тут мы рассмотрим первые два. Позиционные параметры Позиционные аргументы – это аргументы командой строки (или функции в скрипте), доступ к которые осуществляется по номеру. Рассмотрим такой пример: #!/usr/bin/env bash echo $1 $2 $3 И пример его выполнения: [simterm] $ ./param1 one two three… Читать далее »

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

4 июня 2014
 

 Имеется несколько системных переменных, наличие которых необходимо проверить перед выполнением определённого скрипта. Предположим, эти переменные – $sysvar1, $sysvar2, $sysvar3 и $sysvar3. Создадим массив, в котором перечислим переменные для проверки: variables=( [1]=$sysvar1 [2]=$sysvar2 [3]=$sysvar3 [4]=$sysvar3 )

BASH: скрипт бекапа с инкрементальным копированием файлов и полным MySQL

3 апреля 2014
 

 Скрипт предназначен для создания резервной копии JIRA, но может использоваться для любых целей. Скрипт создаёт 1 раз в неделю (воскресенье) полную копию файлов (база данных дампится полностью каждый раз), и каждый день – копию файлов, которые были изменены за последние сутки + полную копию базы. Так же – может быть запущен вручную, для создания полной… Читать далее »

BASH: скрипт отката (roll-back) OpenLDAP баз

7 марта 2014
 

 У Oracle для его баз данных имеется замечательный инструмент Flashback. Его задача – восстанавливать базу до определённого состояния. Подобное потребовалось сделать и для LDAP-баз при выполнении автотестов. Решение очень простое, в основном потому, что: а) имена DIT совпадают с определёнными переменными, которые присвоены каждому из BuildAgent-ов TeamCIty; б) пароли для доступа к базам – такие… Читать далее »

shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory

27 февраля 2014
 

 При выполнении обычной задачи появилась ошибка: # service slapd restart shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory Stopping slapd: [ OK ] Starting slapd: [ OK ]

bash + MySQL: скрипт домашней бухгалтерии

22 февраля 2014
 

 Хардкорный bash-скрипт для ведения домашней бухгалтерии прямо из консоли 🙂 Пока в нём только “наличные” и, соответственно, только один тип операций – “ввод-вывод” этих самых наличных. Есть желание в будущем добавить несколько типов платежей (наличные, несколько платёжных карт, webmoney) и переписать на Python или Java с нормальным GUI. Основная идея написания скрипта была “не дать… Читать далее »