понедельник, 25 апреля 2016 г.

OpenVZ bridget network vlan

Хост-машина:
Создаем интерфейс в нужном VLAN
vconfig add
ifconfig . up
Создаем bridge для соединений интерфейса контейнера и нашего интерфейса влана.
brctl addbr vzbr
(имя бриджа может быть любое, но для удобства прописываем в нем VlanID).
Устанавливаем новый интерфейс в контейнер
vzctl set --netif_add ,,,,vzbr --save
где VEIfname - интерфейс, который появится в контейнере (eth0, eth1  и т.п.), vzbr - имя нашего бриджа.
Поднимаем интерфейсы:
ifconfig vzbr upifconfig veth. up
(veth. - название интерфейса увидим при установке интерфейса в контейнер).
Добавляем интерфейсы в бридж:
brctl addif vzbr veth.
brctl addif vzbr .

Идем в контейнер:
vzctl enter
Контейнер:
ifconfig netmask up
при необходимости добавляем роуты.

Полезные однострочники

1. Найти всех не-системных пользователей (с комментариями):
cat /etc/passwd | grep -i -E ':10[0-9][0-9]' | cut -d: -f1,5

2. Найти всех пользователей с шеллом:
cat /etc/passwd | grep -i -E ':/bin/.*sh' | cut -d: -f1,5

3. Скачать фотографии из галерреи на flickr.com:|
grep "farm" ./1.txt | awk -F"\"" ' { print $1; } ' | sed s/_s/_z/ | xargs -i wget {}
здесь "1.txt" - исходный код страницы галлереи.

Миграция с joomla 1.5 на joomla 2.5 + virtuemart (c 1.1.7 до 2.0.2)

Зачем это тут? - Это краткая заметка о том, как обновить сайт с маркетом со связки joomla 1.5 + virtuemart 1.1.7 до joomla 2.5 + virtuemart 2.0.2. Сия заметка не претендует на исключительность, насыщенна ссылками на другие ресурсы (откуда, собственно, были подчерпнуты нужные знания) и нужна лишь для того, чтобы при необходимости повторить сей подвиг - не перерывать опять пол-инета :)


Краткое описание задачи: обновить CMS сайта и всех составляющих, шаблон - самописный (писан не мной), много товаров в виртмаркете. Поскольку результат неизвестен - все работы проводить на тестовом хостинге, и переносить на боевой только в случае полной удачи.

1. Установка плагина для бэкапа текущего сайта.
Источник - http://service-joomla.ru/komponenty/item/42-akeeba-backup-rus.html
Используем плагин Akeeba Backup версии 3.4.3. Это не самая новая версия, однако именно она нам нужна потому, что она работает одноверменно на 1.5 и на 2.5. Этот шаг у нас будет первым, т.к. бэкапы - это в принципе хорошо.
2. Подготовка шаблона.
Источник - http://joomlablog.ru/sozdanie-shablona-joomla/167-kak-adaptirovat-shablon-joomla-1-5-pod-versiyu-joomla-2-5-chast-1 - хорошая статья, там же есть интересная вторая часть с "фишечками". На всякий случай есть еще вот такая статья - может будет кому понятнее -http://www.webmasters.by/articles/joomla/1637-update-joomla-15-template.html.
Известно, что шаблоны joomla 1.5 не подходят для joomla 2.5, во всяком случае нативно. Как показала практика, перенести шаблон между версиями можно и даже не очень сложно, во всяком случае до состояния "оно запустилось и его видно".  Возможно мне просто повезло и имеющийся у меня шаблон был без особых наворотов. Шаблон готовим заранее, на тестовом сервере, где уже установлена джумла 2.5. Когда добиваемся того, что шаблон устанавливается и в первом приближении похож на то, что было - откладываем папочку с готовым шаблоном под 2.5 - она нам пригодится далее.
3. Установка плагина для разворачивания бэкапа сайта на тестовой площадке.
Источник - http://service-joomla.ru/komponenty/item/42-akeeba-backup-rus.html
Устанавливаем плагин на новой площадке, создаем папку например "tempsite" в корне нового сайта, закидываем в эту папку три файла: а) Файл с бэкапом (который мы предварительно скопировали со текущего сайта), б) файл kickstart.php (из пакета Akeeba) и в) файл ru-RU.kickstart.ini для того, чтобы все было на русском языке. Далее заходим по ссылке http://вашсайт/tempsite/ и действуем по инструкции. В результате в указанной папке мы получаем полноценную копию нашего текущего сайта, включая все данные БД, CMS joomla 1.5 и virtuemart той версии, которая была на текущем сайте.

4. Апгрейд с joomla 1.5 до joomla 2.5
Источник - http://service-joomla.ru/komponenty/item/50-jupgrade.html, более развернутая статья тут: http://joomla-abc.ru/obnovlenie-joomla-1.5/migraciya-joomla-1.5-na-2.5-pri-pomoshi-jupgrade.html
С помощью компонента JUpgrade обновляем джумлу с 1.5 до 2.5. Пока все оставляем во временной папке jupgrade, старую версию пока не удаляем - она нам еще пригодится далее.

5.  Установка обновленного шаблона.
Источник - http://joomlablog.ru/sozdanie-shablona-joomla/167-kak-adaptirovat-shablon-joomla-1-5-pod-versiyu-joomla-2-5-chast-1
После апгрейда мы увидим наш сайт на дефолтном шаблоне, т.к. наш шаблон для новой версии не подходит. Самое время вспомнить шаг 2, скопировать полученное там в папку ./jupgrades/templates и установить новую версию нашего шаблона. Поставить шаблон в качестве дефолтного и проверить, что все работает.

6.  Апгрейд VirtueMart.
Источник - шаг 1 - http://www.ostraining.com/blog/joomla/virtuemart-11-to-version-2/ (на инглише, но там в целом все понятно), шаг 2 -http://slogpost.ru/2012/05/obnovlyaem-joomla-1-5-23-virtuemart-1-1-9-do-joomla-2-5-virtuemart-2-0-6/
Основные шаги: а) Установить новый VirtueMart, б) Настроить апгрейд БД в новом ВМ, в) провести миграцию с помощью встроенных инструментов ВМ.
Если все сделали правильно, то получаем обновленный VirueMart со всеми товарами, описаниями и т.п. Единственный момент - скорее всего все связи между товарами и их картинками исчезнут и придется пересоздавать их заново.

Дальше допиливаем напильником ВМ (линкуем картинки, правим отображение списка товаров и т.п.), допиливаем шаблон (с высокой долей вероятности "поедет" форматриование обновленных дополнений). Как только все будет устраивать в новом сайте - копируем все содержимое папки jupgrade в корень сайта, тем самым затираем и временный сайт, и старую версию. Тестируем. Если все хорошо, то с помощью инструмента бэкапов переносим все на основной сайт.

четверг, 11 февраля 2016 г.

Рестарт Smbd после подключения дисков при загрузке.

Проблема: Внешние USB-диски в процессе загрузки монтируются позже запуска самбы. В результате после старта диски не расшарены. Ubuntu 14.04.

Решение:
В папку /usr/sbin/ добавляем скрипт smbrestart следующего содержания:


#!/bin/bash

service smbd stop
sleep 5
service smbd start

exit 0


Простое service smbd restart не помогает (вручную после запуска также). Поэтому действуем через старт\стоп, задержка 5 секунд чтобы точно успело запуститься.
Делаем скрипт исполняемым (chmod +x /usr/sbin/smbrestart)

Далее в файл /etc/rc.local до строчки "exit 0" добавляем этот скрипт:


#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.


/usr/sbin/smbrestart

exit 0


Перезапускаем машину - все работает.