Remove UTF8 BOM under linux

Запись создана июня 15, 2011

После переноса файлов с фряхи на linux простым rsync в текстовых файлах появился UTF-8 BOM, это такой маркер типа UTF (легко гуглится кому интересно). По факту это в начало вайла добавляется HEX символы: EF BB BF. Проблема выражается в том что кирилицу в файлах кривит и косит.

Переходим в каталог который надо чинить и правим:

find . -type f \( -name '*.css' -o -name '*.js' -o -name '*.txt' -o -name '*.php' -o -name '*.htm' -o -name '*.html' \) -print0 | xargs -0 grep -l `printf '^\xef\xbb\xbf'` | xargs sed -i '1 s/^\xef\xbb\xbf//'

» Запись из раздела Несортированное | Комментировать

Linux UPnP

Запись создана июня 8, 2011

Для того чтобы клиенты могли прозрачно открывать порты на шлюзе, был разработан набор протоколв Universal Plug and Play (UPnP), например для того чтобы можно было раздавать торренты.

На днях я снял дома старый добрый Linksys WRT54G, теперь раздачей интернета занимается linux-овая машинка. Для раздачи торррентов например, нужно разрешить соединения внутрь сети. Для этого можно пробросить разные порты на разные машины, и в случае добавления клиентов/машин это придется делать вручную. Это не самый удобный спопосб, но можно использовать UPnP который будет сам пробрасывать нужные порты через iptables.

Установка:

sudo apt-get install linux-igd -y

Настраиваем:

cat /etc/default/linux-igd
# External interface name.  If undefined then upnpd will not be started.
EXTIFACE=ppp0
 
# Internal interface name.  If undefined then upnpd will not be started.
INTIFACE=eth0

Добавляем правила в iptables:

iptables -N UPNP
iptables -N UPNP iptables -A FORWARD -j UPNP
 
iptables-save > /etc/iptables.up.rules

Запускаем upnpd

/etc/init.d/linux-igd start

Перезапускаем, например, торрент клиент с включенным UPnP и видим появившиеся правила в iptables:

-A FORWARD -d 192.168.1.106/32 -p tcp -m tcp --dport 51413 -j ACCEPT 
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 51413 -j DNAT --to-destination 192.168.1.106:51413

На этом всё.

» Запись из раздела Debian | 2 комментария

Booting ms dos via PXE to update bios

Запись создана мая 31, 2011

Для обновления BIOS на сервре как правило нужно загрузиться с дискеты с MS DOS и запустить утилиту обновления, в современном мире не так просто найти FDD, да и дискету сходу не удалось найти.

Но в it инфраструктуре как правило уже развернут PXE сервер для обслуживания серверов или устновки операционной системы, собственно им и воспользуемся.

apt-get install dosfstools gettext build-essential
wget "http://downloads.sourceforge.net/project/ms-sys/ms-sys%20stable/2.2.0/ms-sys-2.2.0.tar.gz?use_mirror=citylan" -O ms-sys-2.2.0.tar.gz
tar zxf ms-sys-2.2.0.tar.gz && cd ms-sys-2.2.0/
make
cp bin/ms-sys /usr/bin/
cd .. && rm -rf ms-sys-2.2.0*
dd if=/dev/zero of=floppy.img bs=1024 count=20000
mkdosfs floppy.img
ms-sys -1 -f floppy.img
mount -o loop floppy.img /mnt/
wget http://itblog.su/downloads/W98SE_R.img
mount -o loop W98SE_R.img /tmp/dos
cp /tmp/dos/* /mnt/ 
umount /tmp/dos && rm -rf /tmp/dos
mv X8DTU_204.ima /mnt/
wget ftp://ftp.supermicro.com/utility/IPMI%20FW%20flash%20tools/AMI/DOS%202.4.zip
unzip  DOS\ 2.4.zip 
mv DOS/yafukcs.exe /mnt/
rm -rf DOS*
umount /mnt
mv floppy.img /tftpboot/
 
cat >> /tftpboot/pxelinux.cfg/default <<EOF
label dos
    menu label dos
   kernel memdisk
   append initrd=floppy.img
EOF

» Запись из раздела Несортированное | 2 комментария

Proftpd listen ip

Запись создана мая 30, 2011

По умолчанию Proftpd слушает порт 21 на всех интерфейсах, если же нужно указать ему отвечать строго на определенном интерфейсе используйте конфигурацию:

SocketBindTight                 on
Port                            21
DefaultAddress                 192.168.3.1

192.168.3.1 замените на нужный Вам ip адрес.

» Запись из раздела Unix | 1 комметарий

Portchannel betwen Allied Telesis AT-8000GS and Cisco c2950

Запись создана мая 17, 2011

Что имеем:
1. гигабитный стэк из двух Allied Telesis AT-8000GS
2. к стэку двумя линками подключен AT-8000S/24, линки собраны в портчаннел.
3. Cisco Catalist 2950 который надо подключить к сети.

Оптического трансивера для ATI нет, подключать придется 100 мегабитными линками, линки обьеденить в etherchannel.

на циске настраиваем:

WS-C2950SX-48-SI#conf t
WS-C2950SX-48-SI(config)#interface range FastEthernet 0/45 - 48 
WS-C2950SX-4(config-if-range)#switchport mode trunk
WS-C2950SX-4(config-if-range)#channel-group 1 mode passive
WS-C2950SX-4(config-if-range)#channel-protocol lacp
WS-C2950SX-4(config-if-range)#end

На AT-8000S/24

interface range ethernet e(19-22)
channel-group 7 mode auto
description c2950
exit

всё, портчаннел готов, идем на циску и видим:

WS-C2950SX-48-SI#show interfaces port-channel 1 | i BW
  MTU 1500 bytes, BW 400000 Kbit, DLY 1000 usec,

400 мегабит пропускная способность портчаннэла.

» Запись из раздела Allied Telesis, Cisco | Комментировать

H-Sphere account move error «Suspended due to resources integrity»

Запись создана мая 4, 2011

При переносе аккаунта с сервера на сервер из H-shphere возможна ошибка «Suspended due to resources integrity»

Заходим на сервер cp рутом и выполняем:

grep "duplicate key violates unique" /var/log/hsphere/hsphere.log.1  -B3

получим что-то вроде:

2011-05-04 11:15:34,614 [transfer] DEBUG cron.TransferCron - getResourcesInMoveInfo(): got and checking 1608767_7 is a HostDependentResource -  true
2011-05-04 11:15:34,614 [transfer] DEBUG cron.TransferCron - getResourcesInMoveInfo(): host_id=75
2011-05-04 11:15:34,623 [transfer] ERROR cron.TransferCron - Getting resources info for process 1510
org.postgresql.util.PSQLException: ERROR: duplicate key violates unique constraint "resources_in_move_pkey"
--
2011-05-04 11:15:35,195 [transfer] DEBUG cron.TransferCron - getResourcesInMoveInfo(): got and checking 1505546_7 is a HostDependentResource -  true
2011-05-04 11:15:35,195 [transfer] DEBUG cron.TransferCron - getResourcesInMoveInfo(): host_id=75
2011-05-04 11:15:35,197 [transfer] ERROR cron.TransferCron - Getting resources info for process 1519
org.postgresql.util.PSQLException: ERROR: duplicate key violates unique constraint "resources_in_move_pkey"

Теперь переходим к системено PostgreSQL базе:

sudo su -l cpanel -c 'psql hsphere'

и находим ресурсы взятые из лога выше:

hsphere=# SELECT * FROM resources_in_move WHERE rid = 1608767;
 tp_id |   rid   | rtype |          created           | deleted | job_id | tt_id | ord 
-------+---------+-------+----------------------------+---------+--------+-------+-----
  1188 | 1608767 |     7 | 2010-02-08 06:08:08.191+03 |         |   1149 |       |   0
(1 ROW)
 
hsphere=# SELECT * FROM resources_in_move WHERE rid = 1505546;
 tp_id |   rid   | rtype |          created           |          deleted           | job_id | tt_id | ord 
-------+---------+-------+----------------------------+----------------------------+--------+-------+-----
  1271 | 1505546 |     7 | 2010-02-08 07:38:30.028+03 | 2010-02-09 08:18:42.944+03 |   1225 |       |   0
(1 ROW)

удаляем найденные из таблицы resources_in_move:

hsphere=# BEGIN;
BEGIN
hsphere=# DELETE FROM resources_in_move WHERE tp_id = 1188;
DELETE 168
hsphere=# DELETE FROM resources_in_move WHERE tp_id = 1271;
DELETE 41
hsphere=# COMMIT;
COMMIT
hsphere=# \q

И снова начинаем перенос аккаунтов, теперь всё пройдет нормально.

» Запись из раздела Несортированное | Комментировать

Cisco WS-C2950SX-48-SI

Запись создана апреля 5, 2011

Начал собирать себе минилабу для подготовки к CCNA/CCNP, купил на днях Cisco WS-C2950SX-48-SI

cisco WS-C2950SX-48-SI (RC32300) processor (revision L0) with 20015K bytes of memory.
Processor board ID FOC1009Z8JD
Last reset from system-reset
Running Standard Image
48 FastEthernet/IEEE 802.3 interface(s)
2 Gigabit Ethernet/IEEE 802.3 interface(s)
 
32K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address: 00:17:59:E0:67:C0
Motherboard assembly number: 73-9103-04
Power supply part number: 34-0965-01
Motherboard serial number: FOC100926VG
Power supply serial number: DAB0936FTKJ
Model revision number: L0
Motherboard revision number: A0
Model number: WS-C2950SX-48-SI
System serial number: FOC1009Z8JD
CLEI Code Number: CNMRV002RC
Top Assembly Part Number: 800-24115-03
Top Assembly Revision Number: A0
Version ID: N/A
Configuration register is 0xF

» Запись из раздела Cisco | 4 комментария

installing SHOUTcast streaming server on debian x86_64

Запись создана апреля 4, 2011

Компания Nullsoft, та что радует виндовых пользователей проигрывателем winamp выпускает еще и стриминг сервер, проще говоря сервер онлайн радио. Ставить будем на debian x86_64

mkdir /opt/sc && cd /opt/sc
wget http://yp.shoutcast.com/downloads/sc1-9-8/sc_serv_1.9.8_Linux.tar.gz
tar zxf sc_serv_1.9.8_Linux.tar.gz
rm -rf sc_serv_1.9.8_Linux.tar.gz README.TXT

Открываем конфиг /opt/sc/sc_serv.conf в любом текстовом редакторе (например vim)
найдите строку Password=changeme и поменяйте changeme на свой пароль
Затем строку ; AdminPassword=adminpass
уберите первый символ точки с запятой и замените adminpass на другой пароль (не должен совпадать с предыдущим), теперь строку ScreenLog=1 и замените на ScreenLog=0 и RealTime=1 на RealTime=0.

установим либы для 64-х разрядной платформы:

apt-get install ia32-libs -y

без них при запуске шоткаста будут ошибки вида

-bash: ./opt/sc/sc_serv: No such file or directory

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

» Запись из раздела Debian | 2 комментария

iptables and ftp in passive mode

Запись создана марта 18, 2011

Если на сервере открыть только 21 порт то ftp будет доступен только в active mode, но браузеры по умолчанию ломятся всегда в passive. Для того чтобы отрыть passive mode нужно подгрузить модуль ip_conntrack_ftp.

modprobe ip_conntrack_ftp
iptables -I RH-Firewall-1-INPUT 1 -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT 
iptables -I RH-Firewall-1-INPUT 1 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

» Запись из раздела Несортированное | 1 комметарий

Mysql cache on ramdisk

Запись создана марта 18, 2011

Выносим кеш и временные таблицы mysql в память. для этого подключим ram-диск:

mount -t tmpfs -o size=1024M tmpfs /tmp/mysql/
echo 'tmpfs                   /tmp/mysql              tmpfs   size=1024M,mode=01770,uid=100,gid=101,noatime 0 0' >> /etc/fstab

В конфиге Mysql /etc/my.cnf добавляем директиву в блоке [mysqld]:

tmpdir=/tmp/mysql/

И перезапускаем mysql сервер.

увидеть создаваемые временные файлы можно с помощью lsof

lsof /tmp | grep mysql

Кстати, в тот же рамдиск можно запихать кеш eAccelerator/xCache/squid.

» Запись из раздела Несортированное | 5 комментариев

« предыдущая страницаследующая страница »