Архив рубрики: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

Golang: Go in Practice – заметки на полях, часть 2 – CLI приложение на Go

14 февраля 2019
 

 Предыдущая часть – Golang: Go in Practice – заметки на полях, часть 1 – введение. Стандартная библиотека Go включает в себя пакеты для создания приложения с поддержкой опций командной строки. В отличии от стандартных, принятых в Linux/BSD, стилей – в пакете из стандартной библиотеке Go используются одинарные или двойные дефисы как взаимозаменяемые. Т.е. тут не… Читать далее »

Golang: unrecognized import path “math/bits” (import path does not begin with hostname)

12 февраля 2019
 

 При импорте пакета – возникает ошибка вида “unrecognized import path “math/bits” (import path does not begin with hostname)“. Гуглим, находим обсуждение тут>>>, радуемся, что в репозиториях Debian 9 последняя доступная версия 1.7. Проверяем версию Go: [simterm] root@ip-172-31-38-97:/home/admin# go version go version go1.7.4 linux/amd64 [/simterm] Выполняем установку вручную. Удаляем установленный пакет: [simterm] root@ip-172-31-38-97:/home/admin# apt purge golang… Читать далее »

Golang: Go in Practice – заметки на полях, часть 1 – введение

4 февраля 2019
 

 Ещё весной начал учить Go, но потом перешёл на новую работу, забот и без того хватало, и Go забросил. Тем не менее – встречается он сейчас много где (Docker, Prometheus, Terraform etc), а потому знать его желательно. Да и вообще – иногда надо поучить что-то новое, ибо становится скучно. Попробую вести “конспекты” книги Go in Practice … Читать далее »

C: отладка с gdb – примеры

30 января 2019
 

 gdb (GNU Project Debugger) используется при отладке/дебаге кода. Ниже приводятся примеры работы с кодом на С. Используем такой код: #include <stdio.h> #include <string.h> #include <stdlib.h> char * buf; int sum_to_n(int num) { int i,sum=0; for(i=1;i<=num;i++) sum+=i; return sum; } void printSum() { char line[10]; printf(“Enter a number: “); fgets(line, 10, stdin); if(line != NULL) strtok(line, “\n”);… Читать далее »

C: libmysqlclient – примеры работы с MySQL API

29 января 2019
 

 Давно не писал на С (последний раз – почти год тому, см. What is: Linux namespaces, примеры PID и Network namespaces). Немного за ним заскучал, ибо язык интересный и заставляет местами поломать голову, потому решил немного освежить память. Ниже приводятся примеры работы с сервером MySQL/MariaDB на С, используя API из библиотеки libmysqlclient. Примеры взяты из поста MySQL… Читать далее »

Golang: struct – структуры в примерах

28 ноября 2018
 

 Структура – это коллекция типизированных полей, т.е. у кождого поля в структуре есть свой тип данных. Создать структуру можно следующим образом: type Example struct { FirstField string SecondField string ThirdField int } Тут у структуры с именем Example есть коллекция полей – поля FirstField и SecondField типа string, и поле ThirdField типа integer. Если различные поля имеют одинаковый… Читать далее »

Vim: плагины supertab и vim-devicons

26 ноября 2018
 

 В продолжение поста vim: превращаем редактор в “IDE” – плагины и вот это вот всё – ещё пара полезностей для vim. supertab supertab вызывает автоподстановку по нажатию кнопки <TAB>, вместо комбинаций типа Ctrl+O/Ctrl+X. Добавляем в .vimrc: … ” https://github.com/ervandew/supertab Plug ‘ervandew/supertab’ … Перечитываем его, и устанавливаем: [simterm] :source .vimrc :PluginInstall [/simterm] Для настройки плагина есть много… Читать далее »

AWS: s3fs – Permission denied

22 ноября 2018
 

 После начала использования s3fs – выяснилась одна деталь. Файлы загружаются с помощью boto3. Но после того, как корзина смонтирована к системе – получить доступ к файлам нельзя: [simterm] $ cp /mnt/projectname-idfa/projectname\ android\ purchase\ idfa.csv /tmp/ cp: cannot open ‘/mnt/projectname-idfa/projectname android purchase idfa.csv’ for reading: Permission denied [/simterm] Проверяем права на файлы – и ой: [simterm]… Читать далее »

BASH: скрипт бекапа /home с уведомлениями

12 октября 2018
 

 Задача – написать скрипт для домашней машинки, что бы создавать бекапы по расписанию используя rsync, с уведомлениями на почту и в трее. Бекапы хранятся на отдельном USB SSD. Описание настройки отправки почты пользователю есть в посте Arch Linux: ssmtp – отправка локальной почты. Ниже – процесс написания такого скрипта с примерами функций. Сам скрипт доступен в… Читать далее »

Jenkins: Allure reports plugin в Scripted pipeline

26 сентября 2018
 

 Allure – фреймворк для создания репортов о результатах выполнения тестов. Для Jenkins имеется плагин allure-jenkins-plugin, который сегодня и будем подключать в Scripted Pipeline Jenkins-а. Документация тут>>> и тут>>>. Устанавливаем плагин: Переходим в http://jenkinsurl/configureTools/, настраиваем Allure Commandline: Переходим в http://jenkinsurl/pipeline-syntax/, и генерируем скрипт: В результате весь скрипт наших автотестов выглядит сейчас так: #!/usr/bin/env groovy node { stage(‘Run tests’) { dir (‘ciscripts’)… Читать далее »