четверг, 10 апреля 2014 г.

Обновление прошивки Grandstream GXW4224

Постоянно забываю как обновлять шлюзы Grandstream со старой прошивкой до современной прошивки. Дело в том, что по TFTP это периодически вызывает большие проблемы - шлюз попросту отказывается обновляться.

Последовательность такая:
1. Сначала надо обновить шлюз до прошивки 1.0.4.9, делается это по протоколу HTTP, вписываем в адрес сервера firmware.grandstream.com/GXW42xx_1.0.4.9 (если нет возможности подать интернет на шлюз, можно по ссылке повыкачивать лоадеры и прочее под свой шлюз).
2. Можно обновляться до последней прошивки любым из доступных способов (так же может не всегда сработать. Если вызывает проблемы - заходим на шлюз по telnet, два раза командуем upgrade и подтверждаем обновление Y).

понедельник, 13 января 2014 г.

UTF-8 в консоли FreeBSD

FreeBSD 8.x и версии новее поддерживают UTF-8 в консоли. Полная отрисовка юникодных шрифтов выполняется в графическом режиме, разумеется (framebuffer).


Сам по себе графический режим консоли штатно доступен с версии 3.0 и появился в системе 13 лет назад. Для его поддержки в 8.x нужно в конфигурацию ядра добавить опции:
options SC_PIXEL_MODE
options VESA


Чтобы сделать графический режим консоли дефолтным, нужно в /boot/device.hints к стандартным флагам драйвера syscons 0x100 добавить значение 0x80:
hint.sc.0.flags="0x180"


Для режима UTF-8 тип терминала в консоли меняется с cons25 на xterm (начиная с 9.0 по умолчанию xterm и нужна только вторая опция из двух):
options TEKEN_XTERM # xterm-style terminal emulation
options TEKEN_UTF8 # UTF-8 output handling


Так как теперь консоль будет xterm, в /etc/ttys надо заменить cons25 (или cons25r) на xterm.

Установить из портов sysutils/jfbterm, который и будет заниматься отрисовкой шрифтов в графическом режиме консоли.

Переменную LANG вместо ru_RU.KOI8-R нужно сделать равной ru_RU.UTF-8 средствами login class или выставив её после перезагрузки и логина в консоли вручную. После логина и проверки, что LANG=ru_RU.UTF-8, запускаем jfbterm. Он у меня перевел экран из дефолтного режима 800x600x32 в режим 1024x768x16 (для проверки режимов есть команды
vidcontrol -i adapter </dev/ttyv0 и vidcontrol -i mode </dev/ttyv0)
Теперь UTF-8 в консоли отрисовывается юникодными шрифтами.

Без jfbterm отрисовки шрифтов не будет и вместо кириллицы выдаются знаки вопроса.

(c) dadv

среда, 4 декабря 2013 г.

Поиск и перенос старых файлов писем в FreeBSD

Из за нехватки места на старом почтовике пришлось разгребать по-быстрому почту, требование было ее куда-нибудь перенести на свободный раздел, но не удалять. Сделала всё одна команда:

find /var/mail/virtual/мой_домен/ -name "*мой_домен,S*" -type f \! -newermt '1 year ago' -exec mv {} /usr/old_mail/ \;

Все файлы из виртуального домена Эксима, включающие в себя его имя (обычно это как раз файлы писем) изменявшиеся более года назад переносятся в каталог /usr/old_mail.

Как сбросить настройки mikrotik rb750 rb751 rb951-2n

Практически все устройства mikrotik сбрасываются к заводским настройкам следующим образом:

Выключить устройство , зажать кнопку RESET, включить устройство, отпустить зажатую RESET когда замигает ACT, примерно 5-10 секунд.

В случае если отпустить после того как погаснет ACT , то активируется NETINSTALL

Для сброса через WINBOX следует нажать NewTerminal, там написать system reset-configuration и подтвердить клавишей «y»

пятница, 18 октября 2013 г.

Настройка кластерного файлового хранилища на базе GlusterFS и Samba

Создадим зеркалируемое между двумя машинами хранилище файлов на базе GlusterFS (www.glusterfs.com). В качестве операционной системы возьмём, к примеру, Ubuntu Server. Сервера используют адреса 192.168.1.2 и 192.168.1.3 соответственно.

1. Установим из репозитария серверную часть GlusterFS:

apt-get install glusterfs-server

Для организации хранилища будем использовать каталог /glusterfs/export. Теперь приведём файл конфигурации (/etc/glusterfs/glusterd.vol) к следующему виду:


volume posix
  type storage/posix
  option directory /glusterfs/export
end-volume

volume locks
  type features/locks
  subvolumes posix
end-volume

volume brick
  type performance/io-threads
  option thread-count 8
  subvolumes locks
end-volume

volume server
  type protocol/server
  option transport-type tcp
  option auth.addr.brick.allow 192.168.1.2,192.168.1.3
  subvolumes brick
end-volume


В качестве IP-адресов хостов клиентов не обязательно указывать точные адреса, можно использовать маски вида 192.168.1.* и перечислять сети и хосты через запятую.

Запускаем сервер GlusterFS:

/etc/init.d/glusterfs-server start

2. Установим из репозитария клиентскую часть GlusterFS:

aptitude install glusterfs-client

Файловое хранилище будем монтировать в каталог /glusterfs/samba& Теперь приведём файл конфигурации (/etc/glusterfs/glusterfs.vol) к следующему виду:


volume remote1
  type protocol/client
  option transport-type tcp
  option remote-host 192.168.1.2 # ubuntu-samba1
  option remote-subvolume brick
end-volume

volume remote2
  type protocol/client
  option transport-type tcp
  option remote-host 192.168.1.3 # ubuntu-samba2
  option remote-subvolume brick
end-volume

volume replicate
  type cluster/replicate
  subvolumes remote1 remote2
end-volume

volume writebehind
  type performance/write-behind
  option window-size 1MB
  subvolumes replicate
end-volume

volume cache
  type performance/io-cache
  option cache-size 512MB
  subvolumes writebehind
end-volume

3. Монтируем файловую систему GlusterFS в каталог /glusterfs/samba:

glusterfs -f /etc/glusterfs/glusterfs.vol /glusterfs/samba
или
mount -t glusterfs /etc/glusterfs/glusterfs.vol /glusterfs/samba

Чтобы автоматизировать процесс монтирования при загрузке добавим в /etc/fstab следующую строчку:

/etc/glusterfs/glusterfs.vol /glusterfs/samba glusterfs defaults 0 0

4. Установим из репозитария Samba:


apt-get install samba


Приведем файл конфигурации /etc/samba/smb.conf к следующему виду:


[global]
   workgroup = samba-cluster
   server string = Ubuntu-Samba1 (на втором сервере Samba2)
   security = user
   map to guest = bad user
   hosts allow = 192.168.1. 127.
   load printers = no
   log file = /var/log/samba/log.%m
   max log size = 50
   socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   interfaces = eth0 lo0
   dns proxy = no

[netlogon]
   comment = Network Logon Service
   path = /etc/samba/netlogon
   guest ok = yes
   writable = no
   browseable = no
   posix locking = no
   oplocks = no
   level2 oplocks = no

[IPC$]
   path = /etc/samba/tmp
   writable = no
   browseable = no
   hosts allow = 192.168.1.0/24
   hosts deny = 0.0.0.0/0
   posix locking = no
   oplocks = no

   level2 oplocks = no

[Public]
   path = /glusterfs/samba/Public
   comment = Общее хранилище
   public = yes
   writeable = yes
   read list = guest
   write list = guest
   posix locking = no
   oplocks = no
   level2 oplocks = no
   guest ok = yes
   read only = no
   hosts allow = 192.168.1.0/24
   hosts deny = 0.0.0.0/0

[Home]
   path = /glusterfs/samba/Home
   comment = Домашние каталоги
   public = yes
   writeable = yes
   read list = guest
   write list = guest
   posix locking = no
   oplocks = no
   level2 oplocks = no
   guest ok = yes
   read only = no
   hosts allow = 192.168.1.0/24
   hosts deny = 0.0.0.0/0

Настройки доступа к Samba можно конфигурировать в соответствии со своими предпочтениями, но блокировки требуются именно такие, иначе некоторые приложения могут работать с хранилищем некорректно.





вторник, 10 сентября 2013 г.

Создание Access VLAN на Mikrotik

Столкнулся с проблемой создания на микротике access vlan'a, аналогичного настройке на циске "switchport mode access", так как при создании vlan'ы привязываются к порту и становятся trank mode. Оказалось ларчик довольно просто открывался.

К примеру, нам надо сделать два access-порта (ether1 и ether2) для vlan10 и прокинуть их транком в порт ether3.
1. Создаем vlan 10 на порту 3:
/interface vlan add name=vlan10 interface=ether3 vlan-id=10
2. Создаем интерфейс bridge:
/interface bridge add name=bridge-vlan10
3.Конфигурируем access-порты для 10-го vlan'a:
/interface bridge port add bridge=bridge-vlan10 interface=ether1
/interface bridge port add bridge=bridge-vlan10 interface=ether2
/interface bridge port add bridge=bridge-vlan10 interface=vlan10
4. Вот, собственно, и всё.

понедельник, 3 июня 2013 г.

Полезные команды LINUX & FreeBSD


FreeBSD


Поключаемся удаленно к физической консоли (например к 7-ой) и авторизируемся в ней:

[root@srv] # watch -W ttyv7
root
Password:

Теперь выходим из watch нажатием сочетания клавиш Ctrl+G. Читаем лог обновления.


Количество установленных соединений с сервером и их состояние:

[root@srv] # netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c


Просмотр лога в реальном времени:

[root@srv] # tail -f /var/log/httpd-error.log|grep 'PHP Fatal error'|colorize
Так же можно воспользоваться multitail, где grep можно не использовать - есть ключи -e "выражение" и -ev "выражение".


Удалить файлы, старше N дней:

find /home/user -type f -mtime +N -exec rm {} \;


Количество последних ребутов:

[root@srv] #last reboot


Создать и забить файл нулями:

dd if=/dev/zero of=/file bs=1G count=3


Пересобираем ядро FreeBSD:

cd /usr/src
make buildkernel KERNCONF=MYKERNEL
make installkernel KERNCONF=MYKERNEL



Простенький WEB-сервер на питоне:

python -m SimpleHTTPServer


Показывает размеры очередей на слушающих портах:

netstat -Lan


Монтирование SMB-ресурсов:

mount_smbfs -I IP -W MYDOMAIN -E koi8-ru:cp866 //username@SERVERNAME/Shared /mnt/ad2/shared


Посмотр железа в FreeBSD:

dmidecode
pciconf -l



Просмотр температуры CPU:

kldload coretemp
sysctl -a | grep temp



Установит дату в 16:32 2010-05-20

date 1005201632


Убираем непечатаемые символы(^M) Windows в файлах:

cat file.txt | tr -d "\r" > new.file.txt


Статистика загруженности сетевых интерфейсов в реальном времени:

systat -ifstat 1


Статистика загруженности CPU, MEMORY в реальном времени:

systat -vmstat 1


Статистика загруженности CPU, каждое ядро отдельно:

top -SPH


Отправка эл. почты с консоли:

echo "текст письма" | mail -s "тема" admin@example.com


Посмотреть размер каджого каталога:

[root@srv ~]# du -d 1 -c -h /var


Показать 10 последних введённых команд в shell:

history 10


Кто был или находится в системе:

#last
#who
#w


10 последних входов в систему:

[root@srv ~]#last -10


Сканируем все открытые порты:

root@lar:~# nmap -p 1-65535 IP


Меняем Shell пользователю используемый по умолчанию, например root-у:

[root@srv ~]# chpass -s /usr/local/bin/bash root
chpass: user information updated

или так:

[root@srv ~]#pw usermod root -s /usr/local/bin/bash

Узнаем размер каталога:

[root@srv /]#du -hsx /tmp


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

diskinfo -t /dev/da10
diskinfo -c /dev/da10



Обновление IP-адреса в FreeBSD:

[root@srv /]#/etc/rc.d/netif restart


Обновление роутинга в FreeBSD:

[root@srv /]#/etc/rc.d/routing restart


LINUX

Установит дату в 16:32 2010-05-20

date 0520163210

Добавляем алиасы на eth0:

ifconfig eth0:0 inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255


Просмотр таблицы SMART:

smartctl --all /dev/sdb


Посмотреть какой socket программа держит (Linux):

netstat -pvlA inet
lsof -i -U



Информация о нагрузке - процессор, память

procinfo -D -n1
vmstat 1
vmstat -sa

Память:

vmstat -sa
free
cat /proc/meminfo

Процессор:

iostat -c 1
cat /proc/cpuinfo


Монтирование SMB-ресурсов по CIFS:

mount -t smbfs -o username=<пользователь>,password=<пароль>,iocharset=koi8-r,codepage=cp866,fmask=666,dmask=777 //Имя сервера/шарый ресурс/локальная_точка_монтирования

mount -t cifs //192.168.1.14/Shared /mnt/shared/ -o username=,password=,domain=


Список открытых портов в LINUX:

$netstat -na | grep LISTEN