Разное из жизни, интернета, новостях и технологиях. Вобщем мои мысли.
  • Дата создания
    23 июля 2010
  • Топиков
    22
  • Ограничение на постинг
    0.000

Proxmox добавить места на диске

примеры:
e2fsck -fy /dev/pve-store/vm-105-disk-2
resize2fs /dev/pve-store/vm-105-disk-2 2G
lvreduce -L 3G /dev/pve-store/vm-105-disk-2
resize2fs /dev/pve-store/vm-105-disk-2


Добавить места на диске (lvm-thin в данном случае)
lvresize --size +30G --resizefs /dev/mapper/pvessd250-vm--120--disk--0
Уменьшить диск если много добавили
lvresize --size -30G --resizefs /dev/mapper/pvessd250-vm--120--disk--0

Проверить размер
fdisk -l /dev/mapper/pvessd250-vm--120--disk--0

Поправить конфиг /etc/pve/lxc/120.conf на корректный размер диска
rootfs: pvessd250:vm-120-disk-0,size=190G

Установка mongodb

Debian 9 «Stretch»
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt-get update

apt-get install -y mongodb-org

включаем как сервис чтобы включался после перезагрузки
systemctl enable mongod.service
Читать дальше

Proxmox примонтировать директорию внутрь контейнера

Переходим в директорию:
/etc/pve/nodes/pve/lxc/
Правим нужную виртуальную машину 110.conf

и добавляем строчку

для mongodb
выбираем самый большой диск 16TB или обьединенные в LVM и подключаем
lxc.mount.entry: /mnt/disk16/mnt/mongodb var/lib/mongodb none bind,create=dir,optional 0 0
путь внутри контейнера надо указывать без первого слеша var/lib/mongodb а не /var/lib/mongodb
Читать дальше

Proxmox LVM-thin

Понадобилось сделать VM на SSD для для сервера баз данных. Для быстрой работы.

Удостоверяемся в выбранном диске
root@pve:~# smartctl -a /dev/sdd

=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 850 EVO 250GB
Создаем физический том (physical volume)

root@pve:~# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created.
создаём группу томов pvessd250
root@pve:~# vgcreate pvessd250 /dev/sdd
  Volume group "pvessd250" successfully created
Читать дальше

Как импортировать большую базу данных MySQL

Вот описание
http://kedar.nitty-witty.com/blog/mydumpsplitter-extract-tables-from-mysql-dump-shell-script

GitHub

git clone https://github.com/kedarvj/mysqldumpsplitter .
chmod +x mysqldumpsplitter.sh

./mysqldumpsplitter.sh --source domain_statistic.sql --extract ALLTABLES --decompression none  --compression none

и видим в папке out базу разделенную по таблицам. Она очень хорошо импортируется по частям



Загружаем медленно в базу, можно и удаленную.
mysql -h host -u root -p domain_statistic < a_count_statistic.sql
mysql -h host -u root -p domain_statistic < all_stat.sql
mysql -h host -u root -p domain_statistic < as_count_statistic.sql
mysql -h host -u root -p domain_statistic < as_list.sql
mysql -h host -u root -p domain_statistic < cname_count_statistic.sql
mysql -h host -u root -p domain_statistic < domain_count_statistic.sql
mysql -h host -u root -p domain_statistic < domain_history.sql
mysql -h host -u root -p domain_statistic < domain.sql
mysql -h host -u root -p domain_statistic < mx_count_statistic.sql
mysql -h host -u root -p domain_statistic < ns_count_statistic.sql
mysql -h host -u root -p domain_statistic < providers_like_statistic.sql
mysql -h host -u root -p domain_statistic < registrant_count_statistic.sql
mysql -h host -u root -p domain_statistic < regru_providers.sql
mysql -h host -u root -p domain_statistic < regru_stat_data.sql

Установка Realplexor C++ на Debian 9

Пришлось ставить Realplexor на C++ т.к. dklab_realplexor.pl запускался но работал с ошибкой
ERROR: Wide character in send at /usr/lib/x86_64-linux-gnu/perl/5.24/IO/Socket.pm line 270.
или
 ERROR: Wide character in send at /usr/lib/x86_64-linux-gnu/perl/5.24/IO/Socket.pm line 284.


Устанавливаем недостающие пакеты
# apt-get install gcc g++ libev4 libev-dev libmemcached-dev
# gcc --version
на свежем debian получаем gcc (Debian 6.3.0-18) 6.3.0 20170516

Читать дальше

Блогу 7 лет

Первая запись от 2010-07-08 13:01:19
прошло 7 лет


еще из статистики:

11 лет зарегистрирован домен himic.ru
#whois himic.ru |grep created
created:       2006-06-13T20:00:00Z

Webmoney
Персональный аттестат — выдан Центром Аттестации 26 Июля 2007 года скоро 10 лет
после первой регистрации прошло 11 лет

Мне 30 лет.

Вроде что-то добился, а вроде нет.
Если сомневаешься — значит «нет».
А может сомневаешься то «да»?

Архив доменов зоны .RU

wget http://pma.amanikin.ru/domain_statistic.sql.tar.zip
архив почемуто на самом деле tar.gz а не zip. В WinRAR под виндой открывается нормально, в линуксе надо переименовывать
mv domain_statistic.sql.tar.zip domain_statistic.sql.tar.gz


tar -xvzf domain_statistic.sql.tar.gz
из 2 гиг получилось 16 гиг



скорость в виртуалке: чтения от 10 до 15 /сек
запись от 40 до 120 иногда
iotop

появилась ошибка
Otar: domain_statistic.sql: Wrote only 512 of 10240 bytes
tar: Exiting with failure status due to previous errors
tar Wrote only 512 of 10240 bytes
оказалось в виртуалке кончилось место 15 гиг.

PS
создаем базу
create database domain_statistic;
создаем пользователя
CREATE USER 'user_u'@'%' IDENTIFIED BY 'user_pass';
добавляем пользователю права
GRANT ALL PRIVILEGES ON domain_statistic.* TO user@'%' IDENTIFIED BY 'user_pass'; 
FLUSH PRIVILEGES;

Просто залить в базу не удалось
поэтому продолжение тут blog.himic.ru/2017/10/14/kak-importirovat-bolshuyu-bazu-dannyh-mysql.html

Спасибо этим людям
habrahabr.ru/post/301894/

Альтруист



ncix 21 сентября 2012 в 11:46 #
Те самые «гениальные» тихо отрефакторят всё за ночь без вашего ведома на свой страх и риск, а на утро будут счастливые, как младенцы, спать перед монитором

everzet 21 сентября 2012 в 16:29 #
Говорю вам как программист повидавший виды в разных компаниях мира. Альтруизм — дело неблагодарное, неприбыльное, изматывающее и, наконец, несуществующее. Сегодня он «без вашего ведома на свой страх и риск» «отрефакторил все за ночь», а завтра пойдет искать другую контору, потому что на этой его не ценят и в нем не нуждаются.

ncix 21 сентября 2012 в 16:39 #
Совершенно верно, так и будет.

VolCh 21 сентября 2012 в 18:31 #
Но код останется отрефакторенным :) Но вообще говоря такой альтруист может очень долго менять компании. В вакансиях очень редко встречаешь рефакторинг в перечне основных обязанностей разработчика, что означает, что менджмент не считает его важным элементом процессов разработки и/или поддержки и с большой вероятностью рабочее время на это выделяться не будет. Увы :(

Flammar 21 сентября 2012 в 18:37 #
Думали, альтруист, а чувак скиллы прокачивал…

UWDC 2012 конференция уральских веб-разработчиков - Как я побывал. День второй.

UWDC 2012 конференция уральских веб-разработчиков — Как я побывал. День второй.



UWDC 2012, Андрей Бешков (Microsoft) и Бабичев Игорь
Увеличить
Андрей Бешков (Microsoft)(Security Program Manager — «Руководитель программы информационной безопасности») и Бабичев Игорь
Ради этой фотки и стоило туда съездить.

Читать дальше

Очистить очередь сообщений Exim

exipick — exipick — показывает сообщения в очереди экзима
exipick -z — показывает замороженные сообщения
exipick -i — показывает ID сообщений

exim -Mrm ID — удаляет из очереди сообщение с айдишником ID

В итоге получаем:
exipick -zi | xargs exim -Mrm //очистит все замороженные сообщения из очереди

exipick -i | xargs exim -Mrm //очистит все сообщения из очереди

или удалить все из папки /var/spool/exim/input
P.S.
Это самый корретный способо очистки очереди самим экзимом.
директории сносить в /var/spool/exim/input — это жестко…
Читать дальше

screen - терминал без перерыва.

Необходимо поставить программу на длительное выполнение, но если при этом случайно закрыть терминал, в котором она запущена, то программа завершится, чего допускать не хотелось бы. Соединяюсь с сервером по SSH. Связь иногда прерывается. Как сделать так, чтобы на сервере все продолжало работать как ни в чем не бывало? Ответ: screen
Задача

Необходимо поставить программу на длительное выполнение, но если при этом случайно закрыть терминал, в котором она запущена, то программа завершится, чего допускать не хотелось бы.

Соединяюсь с сервером по SSH. Связь иногда прерывается. Как сделать так, чтобы на сервере все продолжало работать как ни в чем не бывало?
Решение

Запустить сессию screen и работатьв в ней.

Screen, это утилита, которая создает виртуальные консоли и позволяет пользователю по мере необходимости к ним подключаться.

Чтобы стартовать виртуальную консоль, достаточно набрать:

$screen

В рамках одной сессии screen можно создать несколько консолейкомбинацией ctrl-a-c

Переключиться между консолями в рамках одной сессии screen можно комбинациями ctrl-a-p (пред. консоль) ctrl-a-n (след. консоль)

Выход и завершение консоли, как обычно, командой exit.

Если во время работы произошел обрыв связи или терминал был закрыт, то восстановив связь или зайдя заново в терминал, можно посмотреть список имен свободных сессий:

$ screen -ls
There is a screen on:
5345.pts-1.vaio (Detached)
1 Socket in /var/run/screen/S-avl.


и подключиться к нужной сессии:

$screen -r 5345.pts-1.vaio

где 5345.pts-1.vaio это имя сессии, подсмотренное в выводе предыдущей команды (5345.pts-1.vaio (Detached)).

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

Хорошая штука. надо будет в .bashrc прописать.
Читать дальше

Распаковка всех типов фаилов tar tar.bz2 tar.gz tar.xz bz2 rar gz tar tbz2 tgz zip Z 7z xz exe

Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в ~/.bashrc и используйте extract <file_name>:

extract () {
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2)   tar xvjf $1    ;;
      *.tar.gz)    tar xvzf $1    ;;
      *.tar.xz)    tar xvJf $1    ;;
      *.bz2)       bunzip2 $1     ;;
      *.rar)       unrar x $1     ;;
      *.gz)        gunzip $1      ;;
      *.tar)       tar xvf $1     ;;
      *.tbz2)      tar xvjf $1    ;;
      *.tgz)       tar xvzf $1    ;;
      *.zip)       unzip $1       ;;
      *.Z)         uncompress $1  ;;
      *.7z)        7z x $1        ;;
      *.xz)        unxz $1        ;;
      *.exe)       cabextract $1  ;;
      *)           echo "\`$1': неизвестный метод сжатия файла" ;;
    esac
  else
    echo "\`$1' нет такого файла"
  fi
}


Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.
Читать дальше

ISPmanager API PHP

Займусь позже рефакторингом, ив класс наверно вгоню. Надеюсь в свободное время на руби, питон и перл перевести.

Описание входящих данных
ROOT — root
ROOT_PASS — пароль рута
HID_USER — юзер хостинга
HID_PASS — пароль юзера хостинга
EMAIL — мыло пользователя
DB_NAME — имя базы данных
DB_USERNAME — логин пользователя БД
DB_UNAME_PASS — пароль пользователя БД
DOMAIN_WWW — WWW домен(сайт)
DOMAIN_DNS — запись DNS

# HID_USER HID_PASS
#show_databases("hid_user1", "hid_user1_pass");
function show_databases($hid_user, $hid_pass){

$url = "https://".$_SERVER['SERVER_ADDR']."/manager/ispmgr?authinfo=".$hid_user.":".$hid_pass."&out=xml&func=db";

# echo $url;
# exit();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Get the response and close the channel.
$response = curl_exec($ch);
curl_close($ch);
echo $response;

}


Читать дальше

9.5 правил ведения IT бизнеса в России

На всякий случай напомню 9.5 правил ведения IT бизнеса в России:

1. Держите сервера за границей
2. Регистрируйте домены за границей
3. Регистрируйте компанию за границей
4. Держите деньги за границей и не держите яйца в одной корзине
5. Не держите, говорю, яйца в одной корзине!
6. Держите базы данных за границей
7. Документируйте все, что касается вашего обеспечения
8. Разделяйте активы и риски
9. Еще можно отдаться добровольно
10. Уезжайте за границу

Секрет успеха:

Не хххх в России.
Читать дальше

proxmox convert LVM ro raw

lvm to raw
qemu-img convert -O raw /dev/pve/vm-100-disk-1 /tmp/vm-100-disk-1.raw


dd if=/dev/pve/vm-100-disk-1 of=/tmp/vm-100-disk-1.raw conv=sync bs=64k


dd if=/dev/pve/vm-100-disk-1 | ssh 192.168.1.20 dd of=/dev/pve/vm-100-disk-1 bs=64k

ТЗ на разработку сайта образец