отобразить конфиг без комментариев
Запись создана декабря 21, 2009
Иногда нужно посмотреть конфиг не перегружая внимание чтением комментариев, я это делаю так:
или так:
Хочу уточнить относительно отличий ^# и #. Первое это все строки начинающиеся с #, второе все строки содержащие #.
» Запись из раздела Несортированное | Комментировать
перенаправление stdout и stderr
Запись создана декабря 21, 2009
Коротко и ясно расскажу о пере направлении stdout и stderr. stdout это нормальный вывод, stderr это ошибки.
[root@shakirov ~]# ls /opt/ /blah ls: /blah: Нет такого файла или каталога /opt/: firebird iso lost+found
красным выделен stderr, а синим stdout. По умолчанию в output отправляется и stdout и stderr.
перенаправления stdout в /tmp/stdout используйте конструкцию:
[root@shakirov ~]# ls /opt/ /blah > /tmp/stdout
ls: /blah: Нет такого файла или каталога
для перенаправления stderr в /tmp/stderr используйте конструкцию:
[root@shakirov ~]# ls /opt/ /blah > /tmp/stdout
/opt/:
firebird iso lost+found
Для перенаправления sterr и stdout в файл /tmp/all используйте конструкцию:
[root@shakirov ~]# ls /opt/ /blah > /tmp/all 2>&1
Есть вариант когда stderr и stdout отправляются в output и в файл. Это удобно для отладки интерактивных скриптов. Делается это через tee.
[root@shakirov ~]# ls /opt/ /blah 2>&1 | tee /tmp/all ls: /blah: Нет такого файла или каталога /opt/: firebird iso lost+found
ну и пара практических вариантов, отправка stdout и stderr на электронную почту:
скрытие сообщений об ошибках:
» Запись из раздела Несортированное | Комментировать
кодировка bitrix модуль Сотрудники
Запись создана декабря 21, 2009
После переноса битрикса на новый сервер с php 5.2.12 в модуле «Сотрудники» и в «структура компании» всё перекосило. в первом случае это крякозябры вместо алфавитного указателя, во втром вообще весь html перекосило.
как выяснилось причиной является то что в php старше 5.2.8 директиву mbstring.func_overload нельзя задать из .htaccess простым php_value mbstring.func_overload 2
соответственно решением является задать её глобально для сервера в php.ini или в конфиге vhost-а через php_admin_value.
» Запись из раздела PHP | Комментировать
Tekram DC-395UW under CentOS
Запись создана декабря 15, 2009
Из штатов приехала коробка с SCSI дисками для HP-шных серверов, соответственно возникла необходимость прочекать их все перед тем как везти в датацентр. В закромах нашелся древний контроллер Tekram DC-395UW, SCSI кабель 68-ми пиновый и заранее купленный переходник на LVD 80 pin. В биосе контроллера диски прекрасно видятся, но при попытке установить CentOS на диски воткнутые в контроллер, anaconda в упор не видит дисков.
CD/DVD привода под рукой не оказалось, а вынимать из другой машины было лень, т.ч. установку выполнял по сети, загрузив машину по pxe+tftp. На машине с поднятым апачем делаем:
find . | grep 395
cp ./lib/modules/2.6.18-128.el5/kernel/drivers/scsi/dc395x.ko /var/lib/www/
теперь начинаем установку системы на машине с контроллером. Если установка в text режиме, то на этапе когда диски не от дедектились (пустой список дисков) жмем Alt+F2 и переходим в консольку:
modprobe dc395x.ko
mknod /dev/sda
теперь Alt+f1 обратно к anaconda и жмем «добавить диск» или что-то в этом духе, будет предложено добавить iSCSI таргет, набиваем какой-нибудь левый ip и добавляем. iSCSI конечно не добавится, но анаконда перечитает список дисков и отобразит наш scsi диск. далее продолжаем установку в удобном нам виде.
Кстати первую часть можно выполнять на той же машине куда ставится система.
PS: контроллер гавно, но проверить диски он дал возможность.
» Запись из раздела CentOS Linux | Комментировать
OpenVZ: резервное копирование и клонирование контейнеров
Запись создана октября 20, 2009
В последние несколько месяцев активно работаю с OpenVZ. Соответственно вопрос который возникает после того как система развернута, это резервное копирование.
Расскажу как реализовать его проще всего, на примере CentOS 5.3
[root@root ~]# rpm -Uvh http://www.proxmox.com/cms_proxmox/cms/upload/vzdump/vzdump-1.1-2.noarch.rpm
[root@root ~]# rpm -Uvh http://www.proxmox.com/cms_proxmox/cms/upload/vzdump/vzdump-1.2-4.noarch.rpm
[root@root ~]# vzdump --help
Unknown option: help
usage: /usr/sbin/vzdump OPTIONS [--all | VPSID]
--exclude VPSID exclude VPSID (assumes --all)
--exclude-path REGEX exclude certain files/directories
--stdexcludes exclude temorary files and logs
--compress compress dump file (gzip)
--dumpdir DIR store resulting files in DIR
--tmpdir DIR store temporary files in DIR
--mailto EMAIL send notification mail to EMAIL.
--quiet be quiet.
--stop stop/start VPS if running
--suspend suspend/resume VPS when running
--snapshot use LVM snapshot when running
--size MB LVM snapshot size
--node CID only run on pve cluster node CID
--lockwait MINUTES maximal time to wait for the global lock
--stopwait MINUTES maximal time to wait until a VM is stopped
--bwlimit KBPS limit I/O bandwidth; KBytes per second
--restore FILENAME restore FILENAME
Согласно хелпу был написан простой скриптик для резервного копирования.
#!/bin/bash
mkdir /vz/dump/`date "+%Y%m%d"`
/usr/sbin/vzdump --suspend --compress --exclude-path /tmp/ --all --mailto your@mail.com --dumpdir /vz/dump/`date "+%Y%m%d"`/
данный скрипт будет создавать в папке /vz/dump/ папку с текущей датой и в нее складывать дампы, пожатые в tgz, контейнеров. И слать уведомление на your@mail.com
скриптик этот нужно закинуть в крон, сам его допилить слегка для того чтобы убивались старые бакапы (man find).
для восстановления следует использовать vzdump с ключиком –restore
отсюда вытекает возможность клонировать контейнер.
vzdump --restore /vz/dump/vzdump-110.tgz 120
vzctl set 120 --hostname newhostname.com --save
vzctl set 120 --ipdel 192.168.0.110 --save
vzctl set 120 --ipadd 192.168.0.120 --save
vzctl start 120
в версии 1.2 восстановление делается так:
vzrestore /vz/vzdump-110.tgz 130
таким образом мы сделали копию контейнера 110 с VID 120, сменили ему ip и хостнейм. По тому же принципу накладываются новые ограничения.
возможные проблемы:
.................
Nov 19 20:10:51 INFO: Error: No checkpointing support, unable to open /proc/cpt: No such file or directory
Nov 19 20:14:34 ERROR: Backup of VM 120 failed - command '/usr/sbin/vzctl chkpnt 120 --suspend' failed with exit code 16
это лечится с помощью:
еще одна:
Can't locate PVE/VZDump.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/sbin/vzdump line 27.
BEGIN failed--compilation aborted at /usr/sbin/vzdump line 27.
лечится так:
Если возникли вопросы или нужна помощь, буду рад помочь.
» Запись из раздела CentOS Linux, OpenVZ | 2 комментариев
qmail smart relaying
Запись создана сентября 8, 2009
в одной из статей я описывал как настроить рлеинг исходящей почты через другой сервер. сейчас опишу как это сделать если используется Qmail.
где mxr.domain.com это наш релей.
после чего делаем рестарт qmail. например /etc/init.d/qmaild restart
» Запись из раздела Несортированное | Комментировать
vzrst module is not loaded on the destination node
Запись создана августа 5, 2009
понадобилось мигрировать OpenVZ контейнер с одной физической машины на другую. Номер контейнера 140 используем vzmigrate
OPT:--online
OPT:91.195.xxx.xxx
Starting online migration of CT 140 to 91.195.xxx.xxx
Error: vzrst module is not loaded on the destination node
Error: Can't continue online migration
идем на destanation машину и смотрим, есть у нас там vzrst или нет
vzethdev 16524 0
vzdquota 43800 1 [permanent]
vznetdev 21512 2
vzmon 49548 3 vzethdev,vznetdev
vzdev 7556 4 vzethdev,vzdquota,vznetdev,vzmon
ipv6 288668 32 vzmon,ip6t_REJECT
нету, ну так мы поставим, не проблема :)
[root@root ~]# modprobe vzcpt
[root@root ~]# lsmod | grep vz
vzcpt 115492 0
vzrst 142740 0
ip_nat 22032 1 vzrst
ip_conntrack 60228 3 vzcpt,vzrst,ip_nat
vzethdev 16524 0
vzdquota 43800 1 [permanent]
vznetdev 21512 2
vzmon 49548 5 vzcpt,vzrst,vzethdev,vznetdev
vzdev 7556 4 vzethdev,vzdquota,vznetdev,vzmon
ipv6 288668 36 vzcpt,vzrst,vzmon,ip6t_REJECT
ну вот собственна и всё, снова запускаем миграцию на соурс:
OPT:--online
OPT:91.195.xxx.xxx
Starting online migration of CT 140 to 91.195.xxx.xx
Preparing remote node
Initializing remote quota
Syncing private
Live migrating container...
Syncing 2nd level quota
Cleanup
теперь идем на таргет сервер и проверяем
CTID NPROC STATUS IP_ADDR HOSTNAME
140 104 running 91.195.xxx.xxx hostname.ru
всё, наш контейнер без даунтаймов мигрировал на другой сервер.
» Запись из раздела CentOS Linux, OpenVZ, virtualization | Комментировать
flashing cisco 7912 to SIP
Запись создана июля 28, 2009
В офисе после скачка напряжения, один из айпифонов Cisco 7912 сдох. Внешне это выгладело так: дисплей не горит, но горит кнопка speaker.
Судя по tcpdump телефон таки шлет запросы к dhcp, этим и воспользуемся.
в /etc/dhcpd.conf добавим пару строчек (полностью конфиг приведу ниже):
option option-150 192.168.11.200;
где 192.168.12.200 айпишник tftp сервера. Самое интересное в том что без этих строчек айпифоны прошились на SIP прошивку с SCCP без проблем. Ну да ладно..
на 192.168.12.200 в папку /tftpboot кладем сами файлы прошивки
CP7912080001SIP060412A.sbin и cp7912r.zup
по сути это один и тот же файл просто их два с разными именами. файлы можно найти на thepiratbay или могу выслать кому надо.
http://itblog.su/downloads/CP7912080001SIP060412A.sbin
http://itblog.su/downloads/cp7912r.zup
Теперь телефон в ребут по питанию и при старте он должен ожить. Опять таки самое смешное в том что после перепрошивки настройки не похерились.
PS: а еще есть психи которые выпаивают флешку и на программаторе заливают прошивку. т.ч. если не помогает описнный способ, можно попытаться найти одного из них :)
этим же методом перешивается Cisco 7912 с прошивки SCCP на SIP
Читать дальше
» Запись из раздела VoIP | 3 комментариев
перенаправление почты пользователя root
Запись создана июля 28, 2009
В linux системные отчеты от того же LogWatch складываются пользователю root в /var/spool/mail/root
но можно перенаправить их на ваш привычный ящик электронной почты, для этого в файле /etc/aliases отыщите строчку:
#root: marc
и замените на (вместо user@server.tld укажите свой имэйл):
root: user@server.tld
затем перекомпилируем базу алиасов:
должно появиться сообщение вроде этого: /etc/aliases: 77 aliases, longest 28 bytes, 797 bytes total
» Запись из раздела CentOS Linux | 2 комментариев
как нагнать траф?
Запись создана июля 28, 2009
Возникла типичная для многих ситуация, на одном из серверов в одном из ДЦ оказалось что входящего трафа больше чем исходящего. причем нехватает пару терабайт исходящего.
ничего страшного :) /dev/urandom безлимитный, осталось только выбрать ДЦ и сервер на который можно его перегнать. А перегонять будем так:
время от времени (по крону например) на принимающем сервере будем обнулять файлик traff
пока писал, пришла в голову мысль, что можно передавать сразу в /dev/null
» Запись из раздела CentOS Linux, FreeBSD, Unix | 6 комментариев