вторник, 8 ноября 2016 г.

Полезные мелочи

как быстро организовать новую виртуалку в Xen (с установленной осью, IP, hostname и т.д.)
http://habrahabr.ru/post/37824/
конкретно:
xen-create-image -hostname=имя-машины -size=2Gb -swap=128Mb -ide -ip=192.168.0.100 -netmask=255.255.255.0 -gateway=192.168.0.1 -force -dir=/xen -memory=128Mb -arch=amd64 -dist=wheezy  -passwd
только вот проблемы есть и тут, сначала ругалось
/tmp/18y9wp9SGA/etc/ssh/ssh_host_rsa_key.pub: No such file or directory
Running command 'umount /tmp/18y9wp9SGA/proc 2>&1' failed with exit code 256.
Aborting
потом после смены -dist с etch на wheezy создалось и запустилось, но затыкалось на
Waiting for root file system ..
и сваливалось в (initramfs) с сообщением ALERT!  /dev/hda2 does not exist
как ни странно, блеать, замена hda на xvda в имя-машины.cfg разрешило проблему!

Скачать AceStream 3 под Linux
http://dl.acestream.org/debian/7/acestream_3.0.5.1_debian_7.4_x86_64.tar.gz
http://wiki.acestream.org/wiki/index.php/AceStream_3.0
а вообще есть репозиторий, мне на debian 7.9 wheezy подошел
deb http://repo.acestream.org/ubuntu/ trusty main


Debian обновление squeeze на wheezy
https://www.howtoforge.com/how-to-upgrade-debian-squeeze-to-wheezy
Debian обновление wheezy на jessie
http://linuxconfig.org/how-to-upgrade-debian-linux-system-from-wheezy-to-jessie-stable-release
починка локали после этого
https://wiki.debian.org/Locale#Standard


установка ncurses для php
aptitude install php5-dev re2c libncursesw5-dev
pecl install ncurses


установка eAccelerator
# https://rusadmin.biz/rukovodstva/ustanovka-i-nastrojka-eaccelerator/
aptitude install php5-dev make re2c checkinstall
wget https://github.com/eaccelerator/eaccelerator/archive/master.zip
unzip master.zip
cd eaccelerator-master
phpize
./configure
make
make install


Downgrade PHP from 5.6 to 5.3 jessie
# sources.list add php fpm
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all
# возможно пригодится при апдейте
apt-get -o Acquire::Check-Valid-Until=false update
Создать файл /etc/apt/preferences.d/php-apache-squeeze с содержимым
Package: *php5*
Pin: release a=squeeze
Pin: version 5.3*
Pin-Priority: 1000
затем ап и 
aptitude install -t "squeeze" php5-fpm
вот только хер
dpkg : Ломает: php5-fpm (< 5.6.4+dfsg-3~) но устанавливается 5.3.29-1~dotdeb.0.
версию можно выбрать так
apt-cache policy php-pear
и установить так
aptitude install php-pear=5.3.29-1~dotdeb.0
СУУКА, так и хер получилось
dpkg : Ломает: php5-fpm (< 5.6.4+dfsg-3~) но установлен 5.3.29-0ubuntu4 и удерживается.
все версии совпадают, но dpkg не дает поставить php ниже 5.6


корявый screen, даже при команде
sudo -iu myusr LANG=ru_RU.UTF-8 screen -UdmS ace /bin/bash /home/myusr/run_script &
Как оказалось, кодировки тут ни при чем. я ставил и в /etc/environment, и в строку вызова скрипта, делал dpkg-reconfigure locales, переустанавливал локали, пофиг все.
оказалось юзеру не выставляется локаль при логине через putty, и битые символы ascii-графики скрипта это только проблема отображения их в POSIX, screen тут ни при чем.
добавил в .bashrc
export LANG=ru_RU.UTF-8
export LANGUAGE=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8
интересно, что при логине в локальной консоли все как надо, ru_RU.UTF-8


как правильно устанавливать пакет из исходников
https://wiki.debian.org/BuildingTutorial#The_packaging_workflow
патч накладывается просто: $ patch < patchfile.diff

еще вариант на примере установки Transmission
apt-get source transmission
apt-get build-dep transmission
wget lalalala/transmission-super.new.version-2.2.2.tar.gz
cd transmission*
uupdate --upstream-version 2.2.2 ../transmission-super.new.version-2.2.2.tar.gz
debuild -i -us -uc
cd ../
dpkg -i *2.2.2*deb
Надо только aptitude install devscripts сделать.



косяк с курсором XBMC при использовании тачскрина
надо добавить в /etc/environment
SDL_MOUSE_RELATIVE=0
и возможно еще
SDL_VIDEO_X11_DGAMOUSE=0
http://www.libsdl.org/docs/html/sdlenvvars.html


аналог ssh-copy-id, если ее нет
cat ~/.ssh/id_rsa.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'


TCPDump examples
отслеживание общения ТВ ип 179 с проксей ип 74
tcpdump host 172.30.0.179 -A and greater 100
    -A выводить содержимое пакета в ascii
    and greater 100  выводить только пакеты более 100 байт (чистка от мусора)


rsync, чтобы скачать по ssh папку рекурсивно
rsync -avz host:/path/to/folder .


Samba и LDAP
smb.conf
passdb backend = ldapsam:"ldap://10.0.0.1"
ldap ssl = off
ldap suffix = dc=example,dc=net
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap admin dn = cn=admin,dc=example,dc=net
smbpasswd -W для начального подключения к ldap под админской записью
толковая статья по теме
https://www.opennet.ru/base/net/ldap_spama_pdc.txt.html

команда поиска по ldap из консоли под учеткой админа
ldapsearch -D "cn=admin,dc=example,dc=net" -x -W dc=example,dc=net


как создать самоподписанный сертификат на примере LDAP
нужно поставить пакет gnutls-bin
затем всего пара команд (файлы создаются в текущей папке)
certtool --generate-privkey --outfile ca-key.pem
certtool --generate-self-signed --load-privkey ca-key.pem --outfile ca-cert.pem
последняя команда задает много вопросов, последний вопрос будет "все ли верно", причем по дефолту ответ Нет, и если по инерции нажать Enter все придется проходить заново.
Также для LDAP важно правильно выставить владельца и режим доступа к файлам.
я поставил openldap:openldap с правами 400


настройка таймаута для бэдблоков
smartctl -l scterc,20,20 /dev/sda  - 2 секунды. и вообще
https://superuser.com/questions/905811/faster-recovery-from-a-disk-with-bad-sectors/905814#905814
исключение из работы бэдблоков с помощью badblock и e2fsck
http://www.linuxtechi.com/check-hard-drive-for-bad-sector-linux/

добавление swap
dd if=/dev/zero of=/data/swapfile bs=1M count=1024
chmod 0600 /data/swapfile
mkswap /data/swapfile
swapon /data/swapfile

увеличение размера HDD диска Xen-виртуалки
например диск лежит тут /VM/testvm/disk.img
такой диск можно создать так:
dd if=/dev/zero of=/VM/testvm/disk.img bs=1M count=4096
mkfs.ext3 /VM/testvm/disk.img
далее внезапно оказывается. что 4Гб было мало
добавляем ему еще 2Гб, предварительно остановив виртуалку, конечно же
dd if=/dev/zero bs=1M count=2048 >> /VM/testvm/disk.img
e2fsck -f /VM/testvm/disk.img
resize2fs /VM/testvm/disk.img
все

Настройка часового пояса и времени Debian
dpkg-reconfigure tzdata
Прокидывание портов по ssh
Постоянно путаюсь с ssh -L/-R.
Самый сложный случай со всеми возможными параметрами: есть удаленный комп REM за NAT. На нем есть ssh на порту 22. Извне через port-forwarding доступен на порту 722 роутера. Надо на локальной linux-машине WORK (ip 192.168.0.10) открыть новый порт 3022, по которому простым ssh localhost -p3022 будет доступна машина REM.
Делается так
ssh -p722 -N -L [192.168.0.10:]3022:localhost:22 user@remotesrv.ru
Красный порт - это ssh-порт, по которому REM доступен из инета по внешнему IP роутера.
Зеленый порт - это порт, создаваемый на локальной машине WORK.
Синий порт - это порт, на котором работает ssh REM.

192.168.0.10 можно не указывать. Этот параметр означает, на каком адресе машины WORK будет доступен новый порт. по-умолчанию (если не указать) - localhost.
Если указать 0.0.0.0 - на всех адресах. т.е. если WORK доступна кому то из LAN - этот кто-то сможет воспользоваться прокинутым портом.
localhost - на каком адресе удаленной машины работает требуемый сервис (в примере - ssh).

Комментариев нет:

Отправить комментарий