Архив рубрики: 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’)… Читать далее »