Quantcast
Channel: Библиотека знаний
Viewing all 1318 articles
Browse latest View live

Восстановление настроек коробочки - [Восстановление]

$
0
0

Восстановление настроек коробочки

Иногда случается так, что случайно или намеренно была удалена папка .vagrant, содержащая настройки для подключения к ранее созданной виртуальной машине.

Восстанавливаем конфигурацию

$ vagrant up

При этом будет создана новая виртуальная машина с настройками по умолчанию. В данном случае мы рассматриваем виртуальную машину на базе Virtualbox. Для восстановления нужных нам настроек мы открываем Virtualbox.app находим вновь созданную машину и останавливаем ее. Далее находим папки содержащие старые и новые файлы конфигурации виртуальной машины и жесткого диска. Как правило это файл с расширение vmdk.

Допустим старая машина называлась workshop_y2aa_1019854008234_12823 и ее файлы конфигурации находились в папке

/Users/imac/VirtualBox VMs/workshop_y2aa_1019854008234_12823/contrib-stretch.vmdk

Где contrib-stretch.vmdk - это название виртуального жесткого диска, состоящее из название установленного дистрибутива. Описанного в конфигурационном файле Vagrantfile. К примеру для Debian 9 contrib это будет -

config.vm.box = 'debian/contrib-stretch64'

Копируем из старой папки только файл - образа жесткого диска. Для MacOS, он находится в папке по адресу /Users/imac/VirtualBox VMs/

Пример:

$ cp/Users/imac/VirtualBox VMs/workshop_y2aa_1019854008234_12823/contrib-stretch.vmdk /Users/imac/VirtualBox VMs/workshop_y2aa_1519853008354_63852/contrib-stretch.vmdk

Затем запускаем машину и логинимся как обычно, или с помощью ключа или пароля. Запускать машину необходимо через Virtualbox.app, так как vagrant устанавливает седенение с хост машиной с использованием rsa ключа, который на данный момент у нас отсутствует.

Восстанавливаем ключи для запуска через vagrant

Переходим на страницу с заранее созданными ключами https://github.com/hashicorp/vagrant/tree/master/keys (благодарим hashicorp), или создаем ключи с помощью утилиты ssh-keygen (varant работает только с RSA ключами).

Прописываем приватный ключ https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrantдля vagrant в файл

.vagrant/machines/y2aa/virtualbox/private_key

И затем заходим на виртуальную машину и там прописываем ключ https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub

~/.ssh/authorized_keys

Затем перезапускает нашу виртуальную машину через vagrant

$ vagrant halt
$ vagrant up
Все должно работать без проблем.

VirtualBox - [Установка]

$
0
0

VirtualBox

Установка

deb http://download.virtualbox.org/virtualbox/debian wheezy contrib

Клиенты

Записки

  • Просмотр всех зарегистрированных дисков
    • VBoxManage list hdds
  • Ковертирование диска из vdi в vdmk
    • VBoxManage clonehd f83fa853-eded-4e67-9927-05fb72544c3d win764.vmdk --format vmdk
  • Изменение размера диска
    • Внимание!!! Перед увеличением жесткого диска, необходимо удалить все снимки виртуальной машины.
    • VBoxManage modifyhd d:\VM\Win7x64\Win7x64.vdi --resize 50000
      • заместо пути к файлу диска, лучше использовать UUID
    • diskpart – запускаем утилиту управления дисками и разделами

<konsole> DISKPART> list volume – смотрим, какой раздел нам нужен DISKPART> select volume 2 – выбираем его DISKPART> extend – даем команду расширить DISKPART> list volume – убеждаемся, что всё хорошо * Volume 2 C NTFS Partition 48 GB Healthy Boot DISKPART>exit – прощаемся с утилитой diskpart </konsole>

Ссылки

Виджеты / Widgets - [Image]

$
0
0

Виджеты / Widgets

Коллекции виджетов

bootstrap

Editors

Form

Fields

Upload / File input

Tags / Select / Select2 / Multiselect / Autocomplete

select2

other

tags

tagEditor
Bootstrap Tags Input

Карты / Maps / GEO

Editable / Table / Tables / Grids

Image

Трансформации

Отображение и кеширование

Tree / Draggable / Sortable

Tree

    • $categories= Category::find()->addOrderBy('lft')->all();$level=0; 
      foreach($categoriesas$n=>$category){if($category->level==$level){echo Html::endTag('li')."\n";}elseif($category->level>$level){echo Html::beginTag('ul')."\n";}else{echo Html::endTag('li')."\n"; 
              for($i=$level-$category->level;$i;$i--){echo Html::endTag('ul')."\n";echo Html::endTag('li')."\n";}} 
          echo Html::beginTag('li');echo Html::encode($category->title);$level=$category->level;} 
      for($i=$level;$i;$i--){echo Html::endTag('li')."\n";echo Html::endTag('ul')."\n";}

Other

Flags

Pajx

Charts / Графики

Pickes

Дата / Время Date picker

Pagination

Panels / Boxes / Div

SEO

ExtJs

Angular

bootstrap-media-lightbox

fancybox

lightcase

colorbox

thickbox

photoswipe

Мобильные устройства

Навигация

Bash - [Массивы]

$
0
0

Bash

Файлы конфигурации: .profile .bash_profile и .bashrc итд

В чем отличие .bash_profile и .bashrc?

.bash_profile загружается только при входе пользователя в систему (консольный вход, ssh), в то время как .bashrc запускается для интерактивных сервисов выполняемых без логина (запуск xterm).

Переменные и параметры

$$ pid текущего shell (самого процесса-сценария)
$! pid последнего процесса в фоновом режиме
$? код возврата последнего процесса (функции или скрипта)
$x где x — номер параметра, переданного скрипту ($1, $2 и т. д., $0 — последний запущенный скрипт)
$# количество аргументов командной строки
$* все аргументы в виде одной строки (слова)
$@ то же самое, что и $*, но при этом каждый параметр представлен как отдельная строка (слово)
$- список флагов, переданных сценарию
$_ содержит последний аргумент предыдущей команды

Потоки вывода и файловые дескрипторы

  • du -h 1 > ./log 2>&1
НаименованиеОписание
1Поток вывода
2Поток ошибок
&1обозначает файловый дескриптор 1

Конструкции

0-9

A

Массивы

array=( one two three )files=("/etc/passwd""/etc/group""/etc/hosts")limits=(10, 20, 26, 39, 48)

ARGV

# ------------- SCRIPT ------------- # 
#!/bin/bash 
echoecho"# arguments called with ---->  ${@}"echo"# \$1 ---------------------->  $1       "echo"# \$2 ---------------------->  $2       "echo"# path to me --------------->  ${0}"echo"# parent path -------------->  ${0%/*}"echo"# my name ------------------>  ${0##*/}"echoexit 
# ------------- CALLED ------------- # 
# Notice on the next line, the first argument is called within double, # and single quotes, since it contains two words 
$  /misc/shell_scripts/check_root/show_parms.sh "'hello there'""'william'" 
# ------------- RESULTS ------------- # 
# arguments called with --->  'hello there' 'william'# $1 ---------------------->  'hello there'# $2 ---------------------->  'william'# path to me -------------->  /misc/shell_scripts/check_root/show_parms.sh# parent path ------------->  /misc/shell_scripts/check_root# my name ----------------->  show_parms.sh 
# ------------- END ------------- #

B

C

case

case "$1" in
start)
esac

cut

микропрограмма для работы с текстом

Параметры:

  • -d
  • -f(число)

Переименовывает все файлы вида thread_1_seq_35970.1752.876204343 в файлы вида arch_1_0000035970_869578613.arc

#! /bin/bashFOUND=0for filename in*doecho"$filename"|grep-q"thread_1_seq_" 
  if[$?-eq$FOUND]; thenpart=`echo$filename|cut-d"_"-f4|cut-d"." -f1`mv"$filename""arch_1_00000${part}_869578613.arc"fi 
done

D

debug

Необходимо добавить параметр -x Пример:

# bash -x script.sh

dialog

Представляет из себя интерфейс для библиотеки ncurses. И позволяет строить диалоги из скрипта. Альтернативой dialog может служить whiptail, который даже присутствует в некоторых системах по умолчанию.

Dialog

#!/usr/bin/bash 
Choice=`$Dialog--stdout--clear--menu"Выберите файл"207114$Spisok`retval=$? 
case$retvalin0)esac

E

F

function

function f1{ 
	# params $1echo$1 
} 
f1 A

foreach

for fn in`cat filenames.txt`; doecho"the next file is $fn"cat$fndone
whileread filename
doecho"Printing: $filename"cat"$filename"done< filenames.txt
for fn incat filenames.txt; docat"$fn"; done
for i in"${arrayName[@]}"do
   :
   # do whatever on $idone

G

H

Choice="Y" 
cat<< EOF_CONFIG >$config
client
remote xxxxx
port 1194
proto udp
dev tun
ns-cert-type server
tls-client
reneg-sec 60
mtu-test
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
keysize 256
nobind
explicit-exit-notify 2
pkcs12 yyy/$Choice
EOF_CONFIG
 
echo$config

I

Индексы

  • [@] - Ссылка на копию массива в переменной $1
  • [*] - Строка
  • [n]
  • var=(1 2 3 4)
  • echo ${var[@]}

if

ifчто-то
then# делать тот-тоelse# делать тот-тоfi
ifчто-то; then# делать тот-тоelse# делать тот-тоfi

input

Запрос символа от пользователя

echo-n"Продолжить? (y/n) " 
read item
case"$item"in
    y|Y)echo"Ввели «y», продолжаем...";;
    n|N)echo"Ввели «n», завершаем..."exit0;;*)echo"Ничего не ввели. Выполняем действие по умолчанию...";;esac

J

K

L

M

N

O

echo

Вывод прогресс бара

$ echo-ne'#####                     (33%)\r'

P

Q

R

S

select

select action in"Опция 1""Опция 2""Выход"doecho$actiontest$action = "Выход"&&breakdone

T

test

Применение в коде

if[$daynow!= 1]; then# ....fi 
if[$daynow-ge1]&&[$daynow-le7]; then# ....fi

Сравнение -eqс ==

$ [ a == a ]; echo$?0 
$ [ a -eq a ]; echo$?
-bash: [: a: integer expression expected
2

status

Проверка статуса выполнения программы

rm test_file
 
if[$?-eq0]; thenecho-n"$(tput hpa $(tput cols))$(tput cub 6)[OK]"echoelseecho-n"$(tput hpa $(tput cols))$(tput cub 6)[fail]"echofi

tput

Команда tput инициализирует и управляет вашими сеансами работы с терминалом, используя базу данных terminfo. С помощью tput вы можете управлять различными функциями терминала, такими как перемещение или изменение вида курсора, изменение свойств текста и очистка определенных областей экрана терминала.

  • tput hpa N — сдвиг курсора на N позиций
  • tput cols получает ширину окна терминала
  • tput cub 6 — сдвигает курсор на 6 позиций влево

Также можно выставить цвет

  • tput setaf 0..7 — цвет текста
  • tput setab 0..7 — цвет фона
  • tput sgr0 — сброс на дефолтный

Подробнее: http://www.ibm.com/developerworks/ru/library/au-learningtput/

U

V

W

X

Y

BASH, SH - [Видео уроки]

$
0
0

BASH, SH

Переменные и конфиг файлы

Согласно мануалу по bash, .bash_profile исполняется для оболочек, осуществляющих авторизацию пользователя. .bashrc исполняется для интерактивных оболочек, не авторизующих пользователя.

Документация

Программирования

Видео уроки

Применить настройки

  • source ~/.bashrc

Примеры конфигурационных файлов

Примеры

Замена текста в файлах с возможностью рекурсии

find ./ -type f -exec sed -i 's/CHARSET=utf8/CHARSET=cp1251/g' {} \;

Прогрессбар

Видео уроки

RUS

ENG

PostrgeSQL разница версий

$
0
0

PostrgeSQL разница версий

Drupal + PostgreSQL = белый экран смерти

Подстава со стороны PostgreSQL в следующем.

Для хранения временных данных Drupal использует таблицы в наименованиях которых содержится название "cache". Для этих таблиц поле data имеет тип данных "bytea". А в версии 9 данный формат имеет отличное представление от версии 8. И получается интересная картина. Drupal первый раз загружается, данные заносятся в таблицы кеширования, естественно они на выходе ломаются и мы наблюдаем белый экран.

Данная проблема решается довольно просто. Простым хаком include файла "database.pgsql.inc". Находим строку pg_query($connection, "set client_encoding="UTF8"'); и сразу после нее добавляем pg_query($connection, 'set bytea_output = escape");, для определения формата данных на выходе для этого типа данных.

Решение:

$connection=@pg_connect($conn_string); 
... 
  pg_query($connection,"set client_encoding=\"UTF8\""); 
  pg_query($connection,"set bytea_output = escape");

PostrgeSQL - Установка и настройка - [Настройка доступа]

$
0
0

PostrgeSQL - Установка и настройка

Установка

  • $ sudo apt-get install postgresql postgresql-contrib
  • $ passwd postgres
  • $ sudo su - postgres
  • $ psql postgres

Homebrew plst

nano /usr/local/Cellar/postgresql-9.4/9.4.5/homebrew.mxcl.postgresql.plist

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plistversion="1.0"><dict><key>KeepAlive</key><true/><key>Label</key><string>homebrew.mxcl.postgresql.plist</string><key>ProgramArguments</key><array><string>/usr/local/Cellar/postgresql-9.4/9.4.5/bin/postgres</string><string>-D</string><string>/usr/local/var/postgres</string><string>-r</string><string>/usr/local/var/postgres/server.log</string></array><key>RunAtLoad</key><true/><key>WorkingDirectory</key><string>/usr/local/var</string><key>StandardErrorPath</key><string>/usr/local/var/postgres/server.log</string></dict></plist>

Настройка доступа

Не безопасно, даем внешний доступ для IP 192.168.1.1 (можно использовать маски сети) Для подключения извне, также необходимо включить прослушивания внешнего IP
в настройках /etc/postgresql/X.Y/main/postgresql.conf

nano /etc/postgresql/X.Y/main/pg_hba.conf

# Database administrative login by Unix domain socket
#local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
#local   all             all                                     peer
# IPv4 local connections:
#host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
#host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

local   all             all                                     trust
host    all             all             ::1/128                 trust
host    all             all             127.0.0.1/32            trust
host    all             all             192.168.1.1/32             trust
Последующие записи не переобозначают предыдущие.
Предыдущие однотипные записи должны быть закомментированы
Это однотипные записи
#local   all             all                                     peer
local   all             all                                     trust

методы аутентификации

trust
Разрешает безусловное подключение. Этот метод позволяет тому, кто может подключиться к серверу с базой данных Postgres Pro, войти под любым желаемым пользователем Postgres Pro без введения пароля и без какой-либо другой аутентификации.
ident
Получает имя пользователя операционной системы клиента, связываясь с сервером Ident, и проверяет, соответствует ли оно имени пользователя базы данных. Аутентификация ident может использоваться только для подключений по TCP/IP. Для локальных подключений применяется аутентификация peer
peer
Получает имя пользователя операционной системы клиента из операционной системы и проверяет, соответствует ли оно имени пользователя запрашиваемой базы данных. Доступно только для локальных подключений.
md5
scram-sha-256
Проверяет пароль пользователя, производя аутентификацию SCRAM-SHA-256 или MD5.

Подробнее...

Проверка доступа

$ psql -U postgres -h localhost
$ psql -U postgres

Вопрос/Ответ

Пользователи

  • Как создать пользователя в PostgreSQL?
  • CREATE USER ramesh WITH password ‘tmppassword’;
  • Как посмотреть список пользователей?
  • SELECT * FROM pg_shadow;
  • Как сменить пароль у пользователя?
  • ALTER USER postgres WITH PASSWORD 'password';

Смена пароля

Включаем однопользовательский режим nano /usr/local/opt/postgresql/pg_hba.conf

local   all             all                                     trust
  • подключаемся к бд, указывая локального пользователя (в моем случае mirocow)
  • меняем пароль у пользователя mirocow

включаем многопользовательский режим добавляем строчку в nano /usr/local/opt/postgresql/pg_hba.conf

local   all         postgres                          password

Права

Смена прав

  • ALTER TABLE sequence_name OWNER TO владелец

Привелегии

  • Как посмотреть привелегии пользователя?
  • SELECT n.nspname as "Схема", 
    c.relname as "Таблица", 
    c.relacl as "Привилегии доступа" 
    FROM pg_catalog.pg_class c 
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace 
    WHERE c.relkind IN ('r', 'v', 'S') 
    AND pg_catalog.pg_table_is_visible(c.oid) /*AND n.nspname !~ '^pg_'*/ 
    ORDER BY 1, 2;
  • Как дать привелегии
  • GRANT ALL ON DATABASE demodb TO demo;

Базы

  • Как создать базу в PostgreSQL?
  • CREATE DATABASE mydb WITH OWNER ramesh;
  • Как удалить базу в PostgreSQL?
  • DROP DATABASE mydb;
  • Как получить весь список баз в Postgresql?
  • SELECT datname FROM pg_database;
  • SELECT * FROM pg_database;

Таблицы

  • Как вывести список всех таблиц?
  • SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';

tar - [Распаковка]

$
0
0

tar

Распаковка

$ tar xvfz *.tar.gz
tar xvfz *.tar.gz

* -C - указать папку для распаковки
* tar xvfz *.tar.gz -С /tmp
* x - позволяет вам извлекать файлы из архива.
* v - делает вывод tar подробным. Это означает, что на экран будут выведены все найденные в архиве файлы. Если эта опция опущена, информация, выводимая в процессе обработки, будет ограничена.
*  - является обязательной опцией. Без неё tar пытается использовать магнитную ленту вместо файла архива.
*  z - позволяет вам обрабатывать архив, сжатый gzip'ом (с расширением .gz). Если вы забудете указать эту опцию, tar выдаст ошибку. И наоборот, эта опция не должна использоваться для несжатых архивов.
* f - обязательный (Указывает на поток файл)

Упаковка

 tar --gzip -c -f foldername.tar.gz ./

Описание


SCP - [с локальной машины]

$
0
0

SCP

с удаленной машины

Скопировать файлы с удаленной машины на локальную в папку /tmp:

$ scp-P6166-rpваш_логин@имя_хоста.ru:.//tmp
  • -r - скачать рекурсивно
  • -p - сохранить время создания и обновления файлов
  • -v - включить дебаг режим (verbose)

с локальной машины

Скопировать файлы с локальной машины на удаленную:

$ scp-P6166-rp ./ваш_логин@имя_хоста.ru:/tmp
  • -P 6166 - Порт
  • -r - залить рекурсивно
  • -p - сохранить время создания и обновления файлов
  • -v - включить дебаг режим (verbose)

SFTP

sftp root@site.ru

Монтирование

Docker - [Документация / Статьи]

$
0
0

Docker

VIRTUAL MACHINES CONTAINERS
Virtual machines include the application, the necessary binaries and libraries, and an entire guest operating system -- all of which can amount to tens of GBs. Containers include the application and all of its dependencies --but share the kernel with other containers, running as isolated processes in user space on the host operating system. Docker containers are not tied to any specific infrastructure: they run on any computer, on any infrastructure, and in any cloud.

Установка

nano /etc/apt/sources.list

 deb https://apt.dockerproject.org/repo debian-stretch main
$ apt autoremove --purge"lxc-docker*""docker.io*" docker-engine docker-compose
$ apt install docker-engine docker-compose
$ docker run hello-world
$ cd ./project/
$ docker-compose up

Запуск от пользователя

$ sudo groupadd docker
$ sudo gpasswd -a${USER} docker
$ sudo service docker restart

Mac OS

$ brew install docker docker-machine docker-compose docker-machine-driver-xhyve

Подробнее: https://github.com/zchee/docker-machine-driver-xhyve

Установить последнюю версию

$ curl -L"https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)"-o/usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

Работает с docker-compose.yml файлом

Подробнее: https://docs.docker.com/compose/install/
Пример: https://docs.docker.com/compose/gettingstarted/

Настройка

Dockerfile

  • FROM — указывает название образа (image), который будет взят за основу.
  • ENV — устанавливает переменную среды
  • RUN — запустить команду в контейнере (все команды исполняются с полными правами в пределах контейнера)
  • ADD — добавить файл в контейнер
  • VOLUME — указать монтируемые директории (их можно монтировать на хост машину или на другие контейнеры)
  • EXPOSE — указать транслируемые порты (их можно транслировать на хост машину или на другие контейнеры)
  • CMD — запустить процесс (это и будет процесс, вокруг которого построен контейнер)

docker-compose

  • docker-compose - средство сборки и настройки контейнеров
    • docker-compose up - поднять контейнеры с учетом правил сборки docker-compose.yml
    • -d - Для запуска сервисов в фоне (for "detached" mode)
$ docker-compose config
$ docker-compose up

Отдельно стоит запомнить команду docker-compose up. Она представляет собой упрощенный вызов docker-compose build && docker-compose run

Сборочные контейнеры в связке с docker-compose удобно использовать в окружении разработчика, когда требуется, например, производить некоторые действия при изменении исходников.

С docker-compose все просто, но есть нюансы. Использовать one shot контейнеры возможно только, если docker-compose up выполняется с опцией “-d”, в противном случае по завершении работы такого контейнера, compose останавливает все остальные контейнеры.

Рабочий процесс

Определение Dockerfile для каждого из сервисов Определение связей между сервисами при помощи docker-compose.ymlЗапус системы при помощи docker-compose up

Документация

docker-compose-mixer

Содержание конфигурационного docker-compose-mixer.yml файла по своей сути является небольшим конфигом, который описывает как именно два или более проектов будут стартовать вместе.

$ wget https://github.com/paunin/docker-compose-mixer/blob/master/dist/dc-mixer?raw=true-O/usr/local/bin/docker-compose-mixer
$ chmod +x /usr/local/bin/docker-compose-mixer

Работает с docker-compose-mixer.yml файлом

Решает проблемы:

  • Конфликты имен контейнеров c обновлением всего дерева конфигурации
  • Конфликты портов пробрасываемых на хост-машину
  • Переопределение свойств сервиса
  • Разрешение относительных путей
  • Удаление лишних или дублирующихся сервисов

Подробнее: https://habrahabr.ru/post/274581/

docker-machine

В GitHub-репозитории Docker Machine можно найти три bash-сценария, которые упрощают работу команд docker и docker-machine. Они отвечают за выполнение команд и пользовательские настройки командной строки bash.

Использование

создания нового хоста
$ docker-machine create --driver virtualbox machine-name

generic

$ docker-machine create \
  --driver generic \
  --generic-ip-address=203.0.113.81 \
  --generic-ssh-key ~/.ssh/id_rsa \
  machine-name
  • где machine-name - название создаваемой машины
запустить
$ docker-machine start machine-name
выполнение команд на удаленном хосте
$ docker-machine ssh machine-name cat/etc/hosts

или подключится к удаленному хосту

$ docker-machine ssh machine-name
просмотреть список доступных хостов
$ docker-machine ls
получить подробную информацию о хосте
$ docker-machine inspect machine-name
настройки соединения хоста,
$ docker-machine config machine-name
отображает IP-адрес хоста
$ docker-machine ip machine-name
отключение
$ docker-machine stop machine-name
удаление
$ docker-machine rm machine-name
список удаленных хостов
$ docker-machine ls

Сценарии

1 Сценарий
$ wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-prompt.bash -O/etc/bash_completion.d/docker-machine-prompt.bash

Чтобы завершить установку этого файла, нужно установить пользовательское значение переменной PS1 в файле .bashrc. PS1 – это специальная переменная оболочки, которая используется для редактирования командной строки bash. Откройте файл:

nano ~/.bashrc

Этот файл содержит три строки, которые начинаются с PS1:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

В конец каждой строки нужно вставить $(__docker_machine_ps1 " [%s]"). Должно получиться следующее:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__docker_machine_ps1 " [%s]")\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(__docker_machine_ps1 " [%s]")\$ '
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$(__docker_machine_ps1 " [%s]")$PS1"

Теперь имя активной машины будет отображаться в командной строке оболочки.

2 Сценарий

Второй сценарий называется docker-machine-wrapper.bash. Он добавляет к команде docker-machine подкоманду use, которая позволяет быстро переключаться между машинами Docker. Чтобы загрузить этот сценарий, наберите:

$ wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-wrapper.bash -O/etc/bash_completion.d/docker-machine-wrapper.bash
3 Сценарий

Последний сценарий называется docker-machine.bash. Он отвечает за завершение команд docker-machine.

$ wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine.bash -O/etc/bash_completion.d/docker-machine.bash

Чтобы активировать внесённые изменения, закройте и снова откройте терминал. Если вы находитесь в сессии SSH, закройте и снова откройте сессию. Теперь завершение команд docker и docker-machine включено.

Контейнер

О контейнере

$ docker info
 
Containers: 9
 Running: 6
 Paused: 0
 Stopped: 3
Images: 28
Server Version: 1.12.5
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 90
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null overlay host bridge
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux stretch/sid
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.8 GiB
Name: nas.ztc
ID: 6JPA:SQDY:WJRJ:F2R7:NDTL:SIYE:Z6UK:AVIH:3EZS:7GJM:UCXZ:KPDU
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
Insecure Registries:
 127.0.0.0/8

Статус

$ docker stats
 
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O               BLOCK I/O             PIDS
c8d1eb7a8f7a        0.02%0 B /0 B           0.00%38.07 kB /649.1 kB   258 kB /0 B          0
271073504ac9        0.10%0 B /0 B           0.00%6.517 kB /648 B      0 B /4.096 kB        0
462c8942181f        0.00%0 B /0 B           0.00%7.701 kB /648 B      0 B /0 B             0
94e2422ce234        0.33%0 B /0 B           0.00%22.98 MB /558.9 kB   1.798 MB /314.8 MB   0
6a43329858d9        18.18%0 B /0 B           0.00%7.431 kB /648 B      249.9 kB /20.62 GB   0
404d5b6bf024        0.08%0 B /0 B           0.00%7.959 kB /648 B      0 B /0 B             0

Работа с контейнером

$ docker exec-it security-mysql /bin/bash
$ docker exec-it security-mysql cat/etc/passwd

Список контейнеров (запущенных и нет)

$ docker ps-a
CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS                   PORTS                                                NAMES
c8d1eb7a8f7a        teratek_web                         "/usr/bin/supervisord"   About an hour ago   Up 57 minutes            443/tcp, 0.0.0.0:80->80/tcp, 9000/tcp                security-web
271073504ac9        stefobark/sphinxdocker              "sh -c '/bin/sleep 5 "   About an hour ago   Up 57 minutes            0.0.0.0:9306->9306/tcp, 0.0.0.0:9312->9312/tcp       security-sphinx
462c8942181f        imkulikov/docker-grand-ambassador   "/usr/bin/grand-ambas"   About an hour ago   Up 57 minutes                                                                 security-proxy
94e2422ce234        mvertes/alpine-mongo                "/root/run.sh mongod"    About an hour ago   Up 57 minutes            0.0.0.0:27017->27017/tcp, 0.0.0.0:28017->28017/tcp   security-mongo
6a43329858d9        mysql                               "docker-entrypoint.sh"   About an hour ago   Up 57 minutes            0.0.0.0:3306->3306/tcp                               security-mysql
404d5b6bf024        redis:alpine                        "docker-entrypoint.sh"   About an hour ago   Up 57 minutes            6379/tcp                                             security-redis
  • -a - Позволяет увидеть не запущенные контейнеры
  • -l - Выведет список недавно созданных контейнеров
  • где docker-grand-ambassador прокси для 2-ух направленной связи контейнеров

Остановка контейнера

$ docker stop 7d0eb5cd3b3b

Удаление контейнера

$ docker rm 7d0eb5cd3b3b

Образы

Поиск образов

$ docker search alpine

Загрузка образа в систему

$ docker pull alpine
$ docker pull alpine:latest

Чистые образы

Готовые сервисы

Готовые сборки

Создание образа

$ docker build -t image-name .
  • Где . папка, где расположен Dockerfile
  • container-name - название создаваемого контейнера

Вывод списка образов

$ docker images

Запуск образа

$ docker run -d-p80:80-t image-name
$ docker run -d--publish8080:80-t image-name
  • 8080 - Порт хост машины
  • 80 - Порт контейнера
  • -i - откроет интерактивную оболочку контейнера (лучше не использова, а подключаться с помощью docker exec)
  • -t - название запускаемого контейнера

Пример управления контейнером из другого контейнера

$ docker run -v/var/run/docker.sock:/var/run/docker.sock \
       -v $(which docker):/bin/docker \
       -ti nachine_name

Пространства

Применяется для монтирования пространств из внешних источников. К примеру virtualbox

Сетевые драйверы

Логирование

Рецепты

Проблемы и их решения

Circular import between fpm and nginx

Возникает при циклическом связывании контейнеров (2-ух сторонее связывание) В качестве решенияпроблемы, на данный момент, можно воспользоваться прокси сервером/контейнером docker-grand-ambassador

fpm:
  build: ./build/fpm
  links:
    - ambassador:nginx
nginx:
  build: ./build/nginx
  links:
    - ambassador:fpm
ambassador:
  image: cpuguy83/docker-grand-ambassador
  volumes:
    - "/var/run/docker.sock:/var/run/docker.sock"
  command: "-name testapp_fpm_1 -name testapp_nginx_1"

ERROR: Couldn't connect to Docker daemon - you might need to rundocker-machine start default`

скорее всего вам потребуется сделать следующее:

$ docker-machine create --driver=xhyve dev --xhyve-experimental-nfs-share

Компоненты

  • docker-compose - Компановщик контейнеров
  • docker-machine - Это инструмент, позволяющий управлять удалёнными хостами Docker с локального компьютера.
  • Docker Toolbox - Комплект необходимых программ для Windows или MacOs (Внимание!!! ставит VirtualBox )
  • Weave Scope - Это очень удобный и наглядный сервис для мониторинга Docker контейнеров.
  • cAdvisor - Система мониторинга за контейнерами

Документация / Статьи

Другие системы виртуализации

Настройка SSH тунеля - [Строим туннель из мира в сеть.]

$
0
0

Настройка SSH тунеля

Строим тунель из сети в мир.

ssh

$ ssh-f-N-R2222:10.11.12.13:22 username@99.88.77.66
$ ssh-p345-v-N-R3307:10.11.12.13:3306 username@99.88.77.66

Если ssh запущен на нестандартном порту -p 345

$ ssh-p2222 localhost - мы попадём на хост 10.11.12.13
$ nc localhost -p3307 - попадем на MySql хоста 10.11.12.13

Ключи

  • -f
  • -N
  • -v
  • -p - Порт
  • -R позволяет удаленные обращения (remote) направлять на (local) сервер.
$ ssh-f-N-R2080:10.11.12.14:80 username@99.88.77.66

Введя на хосте 99.88.77.66:

$ w3m -dump http://localhost:2080

Строим тунель из мира в сеть.

SSH

$ ssh-f-N-L4080:192.168.0.10:80 nameuser@88.77.66.55
$ ssh-p345-v-N-L3307:localhost:3306 username@99.88.77.66   

Ключи

  • -f
  • -N
  • -L позволяет локальные обращения (Local) направлять на удалённый сервер.
  • -v
  • -p - Порт

Аналогично, вводим на своём хосте:

$ w3m -dump http://localhost:4080

и получаем доступ к web-ресурсу узла 192.168.0.10, который находится за хостом 88.77.66.55.

Статьи

Конвертирвоние из openssh в ssh-2

$
0
0

Конвертирвоние из openssh в ssh-2

OpenSSH

Конвертирвоние из openssh в ssh-2

$ ssh-keygen-e-f openssh.pub > ssh2.pub

Важное

Invalid key length

debug1: Trying private key: /home/mirocow/.ssh/id_rsa
Enter passphrase for key '/home/mirocow/.ssh/id_rsa':
Load key "/home/mirocow/.ssh/id_rsa": Invalid key length
Если возникнет подобная ошибка, знайте!!!
Программистам из OpenSSH/OpenSSL команды - насрать на вас
Начиная с версии OpenSSH 7.6/7.6p1 ключ 1024 больше не поддерживается:!:

SSH-2

RFC 4716

Конвертирвоние из ssh-2 в openssh

$ ssh-keygen-i-f ssh2.pub > openssh.pub

SSH клиент / сервер

$
0
0

SSH клиент / сервер

Генерация ключа

$ ssh-keygen-t rsa -C"admin@d7.debian.loc"
$ ssh-keygen-t dsa -C"admin@d7.debian.loc" 
$ cat ~/.ssh/id_rsa.pub |ssh user@hostname"cat >> ~/.ssh/authorized_keys" 
$ ssh user@hostname
$ sudosed-i"s/^\#RSAAuthentication.*$/RSAAuthentication yes/g"/etc/ssh/sshd_config
$ sudosed-i"s/^\#PubkeyAuthentication.*$/PubkeyAuthentication yes/g"/etc/ssh/sshd_config
$ sudo/etc/init.d/sshd restart

Отладка подключения

ssh -vvv -o PreferredAuthentications=publickey name@host -p port

-o PreferredAuthentications=publickey - опции аунтефикации

Документация

Шаблонизаторы / HTML helpers - [Шаблонизаторы / HTML helpers]

Коллекции Yii2 Extensions (лучших расширений) на github - [Поиск]

$
0
0

Коллекции Yii2 Extensions (лучших расширений) на github

Коллекции большого спектра расширений для фреймворка yii2, начиная от, виджетов и заканчивая полноценными системами CRM

Демонстранция

Репозитории

Мой репозиторий

Поиск

Остальные


PHP - [Поиск расширений]

$
0
0

PHP

Установка

5.4

$ apt-get install php5 php5-fpm dh-php5 php5-cgi php5-cli php5-common php5-curl php5-dev php5-gd php5-geoip php5-intl php5-json php5-mcrypt php5-memcache php5-memcached php5-mongo php5-mysql php5-readline php5-redis php5-sqlite php5-ssh2 php5-xcache php5-xsl

7.0

$ apt install php7.0 php7.0-fpm php7.0-common php7.0-curl php7.0-gd php7.0-intl php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-sqlite3 php7.0-xml php7.0-xsl php7.0-xdebug

7.1

$ apt install php7.1 php7.1-fpm php7.1-common php7.1-curl php7.1-gd php7.1-intl php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-opcache php7.1-sqlite3 php7.1-xml php7.1-xsl php7.1-xdebug

Обновление с 7.0 на 7.1

$ apt install $(dpkg--get-selections|grep-v"deinstall"|grep php7.0|cut-f1|tr'\n'' '|tr'7.0''7.1')

Установка расширений Pecl

$ apt installautoconfautomake libtool m4 php7.1-dev
$ pear config-set php_suffix 7.1
$ pecl install event

Поиск расширений

Статьи /Модули / API / Интересные примеры кода

Докуменация

PhpDoc

  • @var tag
  • @return
  • @property type (string, integer)
  • @see tag
  • @inheritdoc
  • @author
  • @since

Errors / Ошибки

PHP inline

  • php -r 'echo md5("123");' - запуск с shell строки

Статьи/Модули

WEB crawling library for PHP / Парсеры PHP

REST Клиенты

Node Socket

Видеоуроки

Красивые клипы для души - [Концерты]

$
0
0

Красивые клипы для души

Лейблы

Chanels

0-9

A

Amaranthe

ALESTORM

ARCH ENEMY

Angel Nation

B

BATTLE BEAST

BABYMETAL

C

Clémentine Delauney (VISIONS OF ATLANTIS)

D

DELAIN

Doro

E

End Of The Dream

Edge Of Paradise

EXIT EDEN

EPICA

Emerald Mind

Eternal Idol

EDENBRIDGE

ELUVEITIE

F

G

H

Helion Prime

Halestorm

I

Icon For Hire

IGNEA

J

K

KAMELOT

L

LEAVES' EYES

LOUNA

M

Metalite

Marco Hietala (Nightwish)

N

Nightwish

O

P

PHANTASMA

Powerwolf

R

RAGE OF LIGHT

S

SEMBLANT

STORM SEEKER

STITCHED UP HEART

Symfobia

T

Tarja (Nightwish)

The Pretty Reckless

THY SHADE

The Dark Element

The Pretty Reckless

U

UNLEASH THE ARCHERS

V

VISIONS OF ATLANTIS

W

Within Temptation

Wind Rose

X

XANDRIA

Y

Z

Russian bands

М

Х

Хелависа

Э

Элизиум

Эпидемия

Эльфийская рукопись: Сказание на все времена

Последнее Испытание

Сокровище Энии

Официальные каналы груп

Остальные

Сборники

Концерты

Ubuntu - создано

Программное обеспечение - [V]

$
0
0

Программное обеспечение

0-9

A

B

C

D

  • dpkg - Утилита установки пакетов
  • Dovecot - Postfix + Dovecot + MYSQL (IMAP/POP3-сервер)
  • dovecot_exim - Exim4 + Dovecot + MYSQL
  • du - Вычисляем занимаемое место на диске
  • DD - Клонирование диска/партиций
  • dhclient - Dhclient
  • Deluge - Torrent client
  • Dialog - Альтернативой dialog может служить whiptail, который даже присутствует в некоторых системах по умолчанию.

E

F

G

H

I

  • iotop - то же что и обычный top по CPU, но только по диску
  • LVM - Изменения размера логических томов LVM
  • IpSet - Блокируем много IP адресов с помощью ipset и iptables
  • iftop - display bandwidth usage on an interface
  • IPTraf - IP Network Monitoring Software
  • fail2ban - блокирует по IP найденных нарушителей

J

K

  • KVM - Виртуализация на Linux

L

  • lsmod - Список загруженных драйверов
  • links - Текстовой брузер с поддержкой JS
  • links2 - Текстовой брузер с поддержкой JS
  • LMSensors - Сенсоры: температура итд
    • LXC - Linux контейнеры

M

N

O

P

Q

R

S

T

U

  • usermod - Изменение пользовательского аккаунта
  • Unison - утилита для синхронизации файлов
  • updatedb - Пакет для построения индекса. Используется при вызове locate

V

W

X

Y

Z

Vesta CP - создано

$
0
0

Vesta CP

-rw-r----- 1 root root 1646 Mar 30 03:17 my-site.ru.ca - Центр сертификации SSL / Промежуточный
-rw-r----- 1 root root 1817 Mar 30 03:17 my-site.ru.crt - SSL сертификат
-rw-r----- 1 root root 1703 Mar 30 03:17 my-site.ru.key - Ключ SSL сертификата
-rw-r----- 1 root root 3464 Mar 30 03:17 my-site.ru.pem
Viewing all 1318 articles
Browse latest View live