Последние записи.

Закачиваем файл на сервер и выводим qr-код со ссылкой на файл в консоли

Скрипт позволяет закачать файл на сервер и вывести qr-код со ссылкой на этот файл в консоли. Для начала нужно установить недостающие программы. Команды актуальны для системы Ubuntu:

sudo apt install curl npm
sudo npm install -g qrcode-terminal && sudo npm install qrcode-terminal

Вот что должно получиться

Скачать скрипт

 

Вывод температуры, влажности, даты и времени на OLED дисплей с помощью Arduino

Выведем температуру и влажность на примере двух разных датчиков: DHT22 и SHT21, а также время и дату с помощью часового модуля на основе микросхемы DS1307. Выводить будем на OLED дисплей размером 128×64 пикселя с интерфейсом подключения I2C. Датчики и дисплей лучше подключать к внешнему питанию. На часовом модуле уже заранее должны быть настроены дата и время. Вот что должно получиться:

Схема с датчиком DHT22 (картинка кликабельна):

И скетч к нему:

OLED_DHT22

Схема с датчиком SHT21 (картинка кликабельна):

И скетч к нему:

OLED_SHT21

OpenVZ и OpenVZ Web Panel в Ubuntu под VirtualBox

virtualboximagesУстановим OpenVZ на Ubuntu 14.04 в VirtualBox, а также OpenVZ Web Panel для управления контейнерами из браузера. Для начала нужно установить модифицированное ядро, в стандартных репозиториях Ubuntu его нет, добавим вручную (Здесь и далее все действия выполняются от имени суперпользователя):

# echo "deb http://download.openvz.org/debian wheezy main" > /etc/apt/sources.list.d/openvz.list

Устанавливаем ключ

# wget -qO- "http://ftp.openvz.org/debian/archive.key" | apt-key add -

Обновляем и устанавливаем ядро

# apt-get update
# apt-get install linux-image-openvz-amd64

Настроим параметры ядра. Вставляем в файл /etc/sysctl.conf

net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.eth0.proxy_arp=1

Сохраняем. Далее устанавливаем утилиты OpenVZ

# apt-get install vzctl vzquota ploop vzstats

Если мы хотим, чтобы по умолчанию загружалось ядро, которое загружалось в последний раз. Прописываем в /etc/default/grub

GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved

После внесения изменений обновить конфигурацию GRUB и перезагрузиться с новым ядром

# update-grub
# reboot

Проверим что мы загрузились с новым ядром

# uname -r
2.6.32-openvz-042stab113.11-amd64

Создаем ссылку и переходим в каталог

# ln -s /var/lib/vz /vz
# cd /vz/template/cache/

Качаем шаблон с офф. сайта в /vz/template/cache/

# wget -c https://download.openvz.org/template/precreated/ubuntu-14.04-x86.tar.gz

Дождемся завершения закачки. Распаковывать его не нужно!

Теперь можно создать контейнер:

# vzctl create 01 --ostemplate ubuntu-14.04-x86 --ipadd 192.168.56.31 --hostname vz01

01 — идентификатор контейнера

ubuntu-14.04-x86 — название шаблона который мы скачали

192.168.56.31 — ip адрес который присвоили контейнеру

vz01 — название хоста

Смотрим что получилось

# vzlist -a
 CTID       NPROC       STATUS       IP_ADDR          HOSTNAME
   1           -        stopped      192.168.56.31    vz01

Автозагрузка контейнера после старта хост системы:

# vzctl set 01 --onboot yes --save

Запускаем контейнер

# vzctl start 01

Проверим:

# vzlist -a
 CTID       NPROC       STATUS       IP_ADDR          HOSTNAME
   1           48       running      192.168.56.31    vz01

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

# vzctl exec 01 passwd

Можно соединяться по SSH

# ssh root@192.168.56.31

Для управления контейнерами в браузере установим OpenVZ Web Panel. Вот вся последовательность команд:

# apt-get install software-properties-common
# apt-add-repository ppa:brightbox/ruby-ng-experimental
# apt-get update
# apt-get install ruby1.8
# apt-get install rubygems1.8
# update-alternatives --set ruby /usr/bin/ruby1.8
# apt-get install sqlite3 libsqlite3-dev
# gem install sqlite3-ruby
# wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh
# cp /opt/ovz-web-panel/config/owp.conf.sample /opt/ovz-web-panel/config/owp.conf

Для управления сервером OpenVZ Web Panel команды:

service owp start

service owp stop

service owp restart

После установки открываем в браузере хостовой ОС http://your_IP:3000, где «your_IP» это IP адрес вашей гостевой машины (если его нет посмотрите здесь как настроить http://denfromengl.ru/blog/?p=541 ). Имя и пароль по умолчанию admin.

vz2

P.S. Если в панели управления в столбике «Память, Мб» показывает «неограничено» нужно поменять в файле /opt/ovz-web-panel/app/helpers/application_helper.rb строку

units = /[BKMGP]$/.match (limit.upcase) ? limit[-1,1].upcase : 'B' на строку

units = /[BKMGP]$/.match (limit.upcase) ? limit[-1,1].upcase : 'P' и перезапустить сервер

# service owp restart

Ссылки по теме:

https://halilintar8.wordpress.com/2015/11/26/install-openvz-kernel-and-openvz-web-panel-in-ubuntu-14-04/

Шаблоны OpenVZ

OpenVZ web panel

Статья на хабре «Виртуалиция с OpenVZ»

Подключение к виртуальной машине VirtualBox по ssh

virtualboxopenSSH_logo     Для начала добавляем виртуальную сеть хоста. Файл -> Настройки -> Сеть -> Виртуальные сети хоста. Добавляем новую виртуальную сеть, адрес шлюза по умолчанию должен сам прописаться. Нажимаем на значок отвертки и смотрим что получилось.
im1

Адрес шлюза 192.168.56.1, маска сети 255.255.255.0. Больше здесь прописывать ничего не нужно. Далее в настройках виртуальной машины выбираем Сеть -> Адаптер 2, включаем сетевой адаптер. Вибираем тип подключения Виртуальный адаптер хоста.
im2

Запускаем гостевую ОС, у меня это Ubuntu 14.04, открываем файл /etc/network/interfaces вашим любимым текстовым редактором и прописываем:

auto eth1
 iface eth1 inet static
  address 192.168.56.2
  netmask 255.255.255.0 

Машине назначили адрес 192.168.56.2. Весь файл у меня выглядит так:

# This file describes the network interfaces available on your system
 # and how to activate them. For more information, see interfaces(5).
# The loopback network interface
 auto lo
 iface lo inet loopback

# The primary network interface
 auto eth0
 iface eth0 inet dhcp

auto eth1
 iface eth1 inet static
  address 192.168.56.2
  netmask 255.255.255.0 

Поднимаем наш интерфейс:

$ sudo ifup eth1

А также устанавливаем ssh-server

$ sudo apt-get install openssh-server

Можно подключаться из хостовой ОС

$ ssh user@192.168.56.2

Где user пользователь гостевой ОС

Фото—демотиватор

Все видели популярные в интернете картинки демотиваторы. Такую картинку легко можно сделать используя графический пакет imagemagick. Вот скрипт который нужно запустить в каталоге с изображением:

#!/bin/bash
# Copyleft ? 2011 by Denfromengl http://denfromengl.ru .
# Скрипт добавляет рамку и надпись к фото а-ля демотиватор. После запуска скрипта создаётся директория demotivator, куда копируется готовое фото.
 
############### Надпись заголовка ############
 WRITE='Котэ в калошах'
 
############### Надпись пояснения ############
 WRITE2='А в чём ходят ваши котэ?'
 
# Шрифт. Проверьте правильность пути. При необходимости установите пакет ttf-mscorefonts-installer который скачает шрифты мелкософта.
 FONT=/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf
 FONT2=/usr/share/fonts/truetype/msttcorefonts/Arial.ttf
# Размер надписи
 FONTSIZE=40
 FONTSIZE2=20
 
# Высота нижнего бордюра
 BORDER=9
 
# Здесь можно задать размер изображения (уменьшает пропорционально).
 SIZE=600x600
# Если не нужно менять размер тогда закомментируйте нижнюю строку.
 RESIZE="-quality 90 -resize $SIZE"
 
# Если в вашем каталоге фото с другим расширением, например .png, то это можно задать здесь.
 EXT=.jpg
 
###########################################################################
 mkdir demotivator ; #создадим директорию куда скопируется готовое фото
 
 	for i in *$EXT ; do
  	 convert $RESIZE "$i" "demotivator/${i%$EXT}_resize$EXT" ;
 	done
 
 cd demotivator ;
 
	for i in *$EXT ; do
	 convert $i -bordercolor black -border 3 -bordercolor white -border 2 \
 \( -background black -fill white -font "$FONT" -pointsize $FONTSIZE \
 label:"$WRITE" -font "$FONT2" -pointsize $FONTSIZE2 label:"$WRITE2" -trim +repage \
 -bordercolor black -border $BORDER \
 \) -gravity South -append \
 -bordercolor black -border 21  \
 -gravity South -chop 0x10 \ "${i%_resize$EXT}_dem$EXT" ;
 	done
 rm -rf *resize$EXT ;
exit 0

Вот что должно получиться: