Oбрывки в скоросшивателе
Клочки бумаги, на которых обычно ведутся записи, имеют обыкновение теряться, если их вовремя не подшить. Мысли на тему линукса, а может и не только его, - чтоб не забыть.
2012-03-04
Падение скорости бэкапа Veeam Backup & Replication
Если наблюдается падение производительности Veeam Backup&Replication при бэкапе >1 ТБ данных - нужно отключить нахрен дедупликацию. Дедупликация любого уровня самым сильным образом сказывается на задумчивости вима, заставляя его задумываться на простейших операциях и в десятки раз снижая скорость. Точно актуально до 6й (актуальной на данный момент) версии включительно.
2012-02-28
Настройка Veeam Backup & Replication в режиме Direct SAN Access с СХД EMC CLARiiON
Столкнулся с несколькими проблемами при настройке сабжа, думаю, стоит написать правильный вариант настройки.
В моем случае я настраивал связку СХД EMC CLARiiON CX4-120 (2 шт.) связанное по Fiber Channel, в качестве железного сервера было лезвие Dell PowerEdge M610 с Windows 2008 R2, для бэкапа использовался Veeam backup & Replication 6.
- Перво-наперво, перед установкой ОСи, стоит отвязать сервер от СХД. В моем случае я сделал это правкой зоны на FC-свиче. Крайне желательно, чтобы сервер не видел никаких лишних дисков.
- Ставим ОСь. Мега крайне желательно использовать Win 2008 R2, так как в ней есть нативный MPIO, ака MultiPath I/O.
- После установки ОСи добавляем штатную Feature "Microsoft MPIO". Перезагружаемся.
- Ставим вим. Настройку оставляем на потом, просто ставим. При установке вима автоматом отключается автомонтирование новых дисков, что нам пригодится.
- После установки вима следует подцепить СХД, при этом в менеджере дисков обнаружатся LUN'ы с VMFS, при этом, если актуален MPIO, - будет много дублей (если LUN'ы не видны, не определяется их размер - возможно у вас установлен Касперский). Перезагружаемся.
- Заходим в Control Panel -> MPIO, на второй вкладке должно быть видно устройство, которое можно выделить и нажать ADD - это наша СХД. Если подключено несколько СХД - будет несколько устройств, по одному на СХД (в моем случае, по крайней мере, было так). Добавляем СХД, перезагружаемся.
- В менеджере дисков количество оных должно уменьшиться, при этом некоторые диски будут отмечены на Healthy, на них будут видны размеченные разделы (файловая система не определится, разумеется). На других дисках будет написан статус Unknown, на них не будет видно никаких разделов. Важно: диски будут помечены как offline, включать и инизиализировать их вручную НЕЛЬЗЯ.
- Для того чтобы Veeam смог работать в СХД напрямую, нужно заставить винду видеть исключительно все LUN'ы как Healthy диски. Для этого, если речь идет про CLARiiON, нужно поставить софт от EMC - PowerPath. Я ставил PowerPath 5.5, версии без лицензии вполне достаточно. После перезагрузки все ЛУНы будут определены.
- Настраиваем Veeam.
2012-02-10
Как настроить прокси в Google Chrome (отличный от системного)
На данный момент Хром использует системные настройки прокси, и через интерфейс прописать отличный прокси нельзя. Однако, можно заставить хром использовать не системный прокси, указав его параметром командной строки при запуске:
--proxy-server=IP-адрес
В Windows, например, можно изменить ярлык:
«"C:\..\chrome.exe" --proxy-server=IP-адрес»
--proxy-server=IP-адрес
В Windows, например, можно изменить ярлык:
«"C:\..\chrome.exe" --proxy-server=IP-адрес»
2012-01-15
2011-12-05
2011-09-27
The Bat: Regexp is wrong: regular expression too large
идем в Настройки - Предупреждения и меняем список запрещённых файлов на используемый по умолчанию:
*.EXE,*.COM,*.BAT,*.CMD,*.VBS,*.PL,*.BAS,*.JS,*.JAVA,*.REG,*.SHS,*.PIF,*.SCR,*.D
LL,*.SSH,*.CHM,*.HLP,*.LNK,*.{*},*.PIF,*.SCR,*.SHS,*.PIF,*.SCR,*.SHS,*.{*}
*.EXE,*.COM,*.BAT,*.CMD,*.VBS,*.PL,*.BAS,*.JS,*.JAVA,*.REG,*.SHS,*.PIF,*.SCR,*.D
LL,*.SSH,*.CHM,*.HLP,*.LNK,*.{*},*.PIF,*.SCR,*.SHS,*.PIF,*.SCR,*.SHS,*.{*}
2011-08-31
Как определить в какой порт на циске включен компьютер?
Давненько я не писал ничего. Однако пару лет назад мне довелось с проблемой поиска потерянного среди цисок компа, которую мне удалось для себя приемлемо решить. Так как полный текст был написан в гуглодоксах и не захотел легко, просто и без потерь перекопироваться сюда, просто оставлю ссылку на гуглодок.
https://docs.google.com/document/pub?id=1QmUqSV2t-aQ1GMEvv9cqIFuCR5GnVTrbvQ3evHMubJU
https://docs.google.com/document/pub?id=1QmUqSV2t-aQ1GMEvv9cqIFuCR5GnVTrbvQ3evHMubJU
2010-11-17
Ошибка acad 2000
Ошибка acad 2000:
---------------------------
Предупреждение AutoCAD
---------------------------
Возможно, файл настройки (.cfg, .bak) занят другим
процессом или имеет атрибут "только чтениt".
Исправьте и нажмите "Повторить"; кнопка "Отмена" прерывает операцию.
---------------------------
Повтор Отмена
---------------------------
Фиксится добавлением юзера в опытные пользователи и/или первичным запуском акада из-под администратора
---------------------------
Предупреждение AutoCAD
---------------------------
Возможно, файл настройки (.cfg, .bak) занят другим
процессом или имеет атрибут "только чтениt".
Исправьте и нажмите "Повторить"; кнопка "Отмена" прерывает операцию.
---------------------------
Повтор Отмена
---------------------------
Фиксится добавлением юзера в опытные пользователи и/или первичным запуском акада из-под администратора
2010-05-12
Настройка nginx как фронтэнда для apache2, и установка eaccelerator
Выражаю благодарность автору статьи: http://rubuntu.ru/blog/server/435/nastrojka-apache-2-nginx-php-5-mysql-memcached-eaccelerator-sphinx-v-ubuntu.html
Рассматривается настройка на примере Debian/Ubuntu, в частности я использовал Ubuntu 8.04 с установленным и уже настроенным апачем.
Часть первая: nginx.
Все очень просто. Устанавливаем nginx:
sudo aptitude install nginx
Говорим апачу слушать 81 порт локалхоста, исправив строчку в /etc/apache2/ports.conf :
Listen 127.0.0.1:81
Говорим апачу убивать себя, /etc/apache2/apache2.conf:
Далее, допустим у нас есть сайт, по адресу example.com и лежащий в /var/www/example.com/
Прописываем конфиг /etc/nginx/sites-available/example.com:
Таким образом мы говорим nginx самостоятельно отдавать jpg, gif, png, css и, соответственно, js-файлы.
Делаем симлинк:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Перезапускаем сервисы:
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/nginx restart
Часть вторая. eAccelerator
Устанавливаем memcached и пару нужностей для eaccelerator:
aptitude install memcached php5-dev make
Устанаваливаем eaccelerator:
cd /tmp/
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar xvjf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
phpize
./configure --enable-eaccelerator=shared
make
make install
Создаем папку кеша
mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator
Редактируем конфиг PHP /etc/php5/apache2/php.ini:
Рестартим все:
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/nginx restart
sudo /etc/init.d/memcached restart
Рассматривается настройка на примере Debian/Ubuntu, в частности я использовал Ubuntu 8.04 с установленным и уже настроенным апачем.
Часть первая: nginx.
Все очень просто. Устанавливаем nginx:
sudo aptitude install nginx
Говорим апачу слушать 81 порт локалхоста, исправив строчку в /etc/apache2/ports.conf :
Listen 127.0.0.1:81
Говорим апачу убивать себя, /etc/apache2/apache2.conf:
KeepAlive Off
Далее, допустим у нас есть сайт, по адресу example.com и лежащий в /var/www/example.com/
Прописываем конфиг /etc/nginx/sites-available/example.com:
server {
listen *:80;
server_name examlpe.com
location / {
proxy_pass http://127.0.0.1:81/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* \.(jpg|gif|png|css|js)$ {
root /var/www/example.com/;
}
}
Таким образом мы говорим nginx самостоятельно отдавать jpg, gif, png, css и, соответственно, js-файлы.
Делаем симлинк:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Перезапускаем сервисы:
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/nginx restart
Часть вторая. eAccelerator
Устанавливаем memcached и пару нужностей для eaccelerator:
aptitude install memcached php5-dev make
Устанаваливаем eaccelerator:
cd /tmp/
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar xvjf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
phpize
./configure --enable-eaccelerator=shared
make
make install
Создаем папку кеша
mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator
Редактируем конфиг PHP /etc/php5/apache2/php.ini:
[PHP]
; eAccelerator configuration
; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension
; If you are using a thread safe build of PHP you must use
; zend_extension_ts instead of zend_extension
extension = "eaccelerator.so"
eaccelerator.shm_size = "16"
eaccelerator.cache_dir = "/var/cache/eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.allowed_admin_path = "/var/www/eaccelerator"
Рестартим все:
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/nginx restart
sudo /etc/init.d/memcached restart
2010-03-25
Отключение хостов VMWare ESX/ESXi через APC PowerChute
"Данное решение помечено как DEPRECATED - перестало работать на free-версии. Вместо него предлагают использовать
http://communities.vmware.com/docs/DOC-11623"
http://www.vm4.ru/2010/07/esx-esxi-apc.html
Чтобы избавиться от необходимости устанавливать APC PowerChute на каждую гостевую машину, можно использовать скрипт погашения хоста (с предварительным выключением виртуальных машин на нем), стартующий по команде PowerChute, установленного на отдельную виртуальную машину.
Потребуется
Установка
Устанавливаем vMA на ESX/ESXi

При первом старте настраиваем сетевой интерфейс и задаем пароль пользователя vi-admin (мастер ОЧЕНЬ придирчив к сложности пароля).

Забрасываем в домашний каталог скрипты выключения и архив с «парашютом»

Делаем скрипты исполняемыми:
chmod +x upsVIShutdown.pl
chmod +x ghettoShutdown.pl
Распаковываем «парашют»:
tar -xvf pcns224Linux.tar.gz

Переименовываем файл /etc/vima-release:
sudo mv /etc/vima-release /etc/vima-rel
Запускаем инсталляцию PowerChute:
sudo ./install.sh
В процессе установки со всем соглашаемся, при вопросе какую джаву использовать (предлагается вписать путь или нажать энтер для использования встроенной в инсталлятор), не указывая пути нажимаем энтер:

В конце выведется сообщение об успешной установке и предложение продолжить конфигурацию. Запускаем конфигуратор PCNSConfig.sh:
sudo /opt/APC/PowerChute/group1/PCNSConfig.sh

Если, как и в моем случае, имеется 1 ИПБ, выбираем 1й вариант - single UPS device:

Вводим IP упса, порт, имя и пароль администратора, аутентификационную фразу:

Дожидаемся сообщения, что ИПБ не отвечает, соглашаемся сохранить конфигурацию и запустить сервис:

Зайдем в панель управления ИПБ и убедимся что клиент успешно добавился.
Отключим файрволл:
sudo chkconfig iptables off
sudo service iptables save
sudo service iptables stop
Убедимся, что открывается интерфейс по адресу https://IP:6547/login (логин:пароль - apc:apc)
Навесим на нужное событие запуск скрипта /home/vi-admin/upsVIShutdown.pl:

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


Последний шаг - привязываем хосты, чтобы гостевая ОС имела право их гасить:
sudo bash
ipvf addserver servername1.domainname
ipvf addserver servername2.domainname
...
ipvf addserver servernameN.domainname
vifpinit
Отвечаем Yes на вопрос о сохранении авторизационной информации:
This will store username and password in credential store which is a security risk. Do you
want to continue?(yes/no): yes
Проверяем привязку, выведя список подключенных хостов:
vifp listservers
При срабатывании, скрипт отдаст команду погасить виртуалки и хосты, прописанные в конфиге. Саму виртуалку отключать через «парашют» не обязательно.
http://communities.vmware.com/docs/DOC-11623"
http://www.vm4.ru/2010/07/esx-esxi-apc.html
Чтобы избавиться от необходимости устанавливать APC PowerChute на каждую гостевую машину, можно использовать скрипт погашения хоста (с предварительным выключением виртуальных машин на нем), стартующий по команде PowerChute, установленного на отдельную виртуальную машину.
Потребуется
- vSphere Management Assistant (vMA) - образ нужной виртуальной машины (на данный момент v4.0, требуется зарегистрироваться на сайте VMWare)
- APC PowerChute Network Shutdown - «парашют», версия для Linux (на данный момент v2.2.4, требуется зарегистрироваться на сайте APC)
- Скрипты «ESX/ESXi APC/APCUPSD Host Shutdown VI Perl Toolkit Script»:
upsVIShutdown.pl (1.9 K) и ghettoShutdown.pl (5.1 K)
Установка
Устанавливаем vMA на ESX/ESXi

При первом старте настраиваем сетевой интерфейс и задаем пароль пользователя vi-admin (мастер ОЧЕНЬ придирчив к сложности пароля).

Забрасываем в домашний каталог скрипты выключения и архив с «парашютом»

Делаем скрипты исполняемыми:
chmod +x upsVIShutdown.pl
chmod +x ghettoShutdown.pl
Распаковываем «парашют»:
tar -xvf pcns224Linux.tar.gz

Переименовываем файл /etc/vima-release:
sudo mv /etc/vima-release /etc/vima-rel
Запускаем инсталляцию PowerChute:
sudo ./install.sh
В процессе установки со всем соглашаемся, при вопросе какую джаву использовать (предлагается вписать путь или нажать энтер для использования встроенной в инсталлятор), не указывая пути нажимаем энтер:

В конце выведется сообщение об успешной установке и предложение продолжить конфигурацию. Запускаем конфигуратор PCNSConfig.sh:
sudo /opt/APC/PowerChute/group1/PCNSConfig.sh

Если, как и в моем случае, имеется 1 ИПБ, выбираем 1й вариант - single UPS device:

Вводим IP упса, порт, имя и пароль администратора, аутентификационную фразу:

Дожидаемся сообщения, что ИПБ не отвечает, соглашаемся сохранить конфигурацию и запустить сервис:

Зайдем в панель управления ИПБ и убедимся что клиент успешно добавился.
Отключим файрволл:
sudo chkconfig iptables off
sudo service iptables save
sudo service iptables stop
Убедимся, что открывается интерфейс по адресу https://IP:6547/login (логин:пароль - apc:apc)
Навесим на нужное событие запуск скрипта /home/vi-admin/upsVIShutdown.pl:

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


Последний шаг - привязываем хосты, чтобы гостевая ОС имела право их гасить:
sudo bash
ipvf addserver servername1.domainname
ipvf addserver servername2.domainname
...
ipvf addserver servernameN.domainname
vifpinit
Отвечаем Yes на вопрос о сохранении авторизационной информации:
This will store username and password in credential store which is a security risk. Do you
want to continue?(yes/no): yes
Проверяем привязку, выведя список подключенных хостов:
vifp listservers
При срабатывании, скрипт отдаст команду погасить виртуалки и хосты, прописанные в конфиге. Саму виртуалку отключать через «парашют» не обязательно.
2010-02-25
Настройка VPN-сервера PPTPD в Ubuntu и подключение Windows-клиентов
Захотелось связать несколько удаленных компьютеров в одну локальную сеть. Сказано - сделано.
Настройка сервера.
Берем сервер с ubuntu (или debian), доступный для клиентов через интернет. Ставим необходимое:
sudo aptitude install ppp pptpd
Приводим следующие файлы к подобному виду:
/etc/pptpd.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~
option /etc/ppp/pptpd-options
logwtmp
localip 10.1.1.1 # адрес сервера в создаваемой виртуальной сети
remoteip 10.1.1.50-59 # адреса, раздаваемые клиентам
(диапазоны адресов не должны пересекаться с уже используемыми клиентами в их реальных сетях)
/etc/ppp/pptpd-options
~~~~~~~~~~~~~~~~~~~~~~~~~~
lock
name pptpd
nodefaultroute
refuse-pap
refuse-mschap
require-mschap-v2
#require-mppe-128 # шифрование. В теории должно работать, на практике у меня не вышло его завести
proxyarp
nodefaultroute
cat /etc/ppp/chap-secrets
~~~~~~~~~~~~~~~~~~~~~~~~~~
# Secrets for authentication using CHAP
# client server secret IP addresses
user pptpd password *
user2 pptpd password2 10.1.1.54
(заводим пользователей, указываем пароли и, опционально, айпишники, которые они будут получать)
После настройки перезапускаем демона:
sudo /etc/init.d/pptpd restart
Настройка клиентов.
XP:
Открываем список сетевых соединений и запускаем мастера создания подключений:

Выбираем подключение использующее VPN или модемное соединение

Выбираем VPN

Вбиваем имя для соединения

Опциональный шаг - если есть вручную устанавливаемые соединения типа модемного, указываем надо ли устанавливать такое соединение (ну, если оно и ведет в интернет, например) перед нашим

Указываем адрес сервера

Удобства ради добавляем ярлык соединения на рабочий стол и закрываем мастера

Далее открывается окно с вводом имени и пароля. Перед этим заходим в свойства:

На вкладке безопасности снимаем галку шифрования:

Если не предполагается использование клиентами интернета через наш сервер, на вкладке открываем свойства TCP/IP, в новом окне открываем дополнительные настройки и снимаем галку использования маршрута по умолчанию:

Применяем все изменения, вводим имя и пароль
Настройка сервера.
Берем сервер с ubuntu (или debian), доступный для клиентов через интернет. Ставим необходимое:
sudo aptitude install ppp pptpd
Приводим следующие файлы к подобному виду:
/etc/pptpd.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~
option /etc/ppp/pptpd-options
logwtmp
localip 10.1.1.1 # адрес сервера в создаваемой виртуальной сети
remoteip 10.1.1.50-59 # адреса, раздаваемые клиентам
(диапазоны адресов не должны пересекаться с уже используемыми клиентами в их реальных сетях)
/etc/ppp/pptpd-options
~~~~~~~~~~~~~~~~~~~~~~~~~~
lock
name pptpd
nodefaultroute
refuse-pap
refuse-mschap
require-mschap-v2
#require-mppe-128 # шифрование. В теории должно работать, на практике у меня не вышло его завести
proxyarp
nodefaultroute
cat /etc/ppp/chap-secrets
~~~~~~~~~~~~~~~~~~~~~~~~~~
# Secrets for authentication using CHAP
# client server secret IP addresses
user pptpd password *
user2 pptpd password2 10.1.1.54
(заводим пользователей, указываем пароли и, опционально, айпишники, которые они будут получать)
После настройки перезапускаем демона:
sudo /etc/init.d/pptpd restart
Настройка клиентов.
XP:
Открываем список сетевых соединений и запускаем мастера создания подключений:

Выбираем подключение использующее VPN или модемное соединение

Выбираем VPN

Вбиваем имя для соединения

Опциональный шаг - если есть вручную устанавливаемые соединения типа модемного, указываем надо ли устанавливать такое соединение (ну, если оно и ведет в интернет, например) перед нашим

Указываем адрес сервера

Удобства ради добавляем ярлык соединения на рабочий стол и закрываем мастера

Далее открывается окно с вводом имени и пароля. Перед этим заходим в свойства:

На вкладке безопасности снимаем галку шифрования:

Если не предполагается использование клиентами интернета через наш сервер, на вкладке открываем свойства TCP/IP, в новом окне открываем дополнительные настройки и снимаем галку использования маршрута по умолчанию:

Применяем все изменения, вводим имя и пароль
2009-12-27
Установка и допиливание Lubuntu
Для друга, имеющего Eee PC 701, заснял пару скринкастов с установкой и первичным допиливанием Lubuntu. Слабо представляю возможную целевую аудиторию, но может кому и будет полезно залицезреть процесс. Снимался каст с виртуалбокса, разумеется предварительно все было проверено на целевой ееешке.
Часть первая: установка оси (67.9 МБ)
Использовался DVD убунты. Неграфическая установка системы в режиме "хочу консоль онли", с последующим натягиванием lubuntu-desktop и gdebi. Разбиение диска "все под root".
Часть вторая: допиливание (53.9 МБ)
Установка обновленного pcmanfm для исправления бага с ассоциациями приложений. Установка gXneur и Google Chrome. Добавление русской раскладки (тут меня можно отдельно покусать за решение). Поверхностная пробежка по фейсу, панелькам.
В целом, как я сказал, писалось для друга-эдвансд-виндузядника, имевшего дело с убунту но не переустанавливавшего ее самостоятельно, так что этот скринкаст определенно будет слишком сложен для кого-то одного, и слишком скучен для кого-то другого - я гарантирую это =)
Часть первая: установка оси (67.9 МБ)
Использовался DVD убунты. Неграфическая установка системы в режиме "хочу консоль онли", с последующим натягиванием lubuntu-desktop и gdebi. Разбиение диска "все под root".
Часть вторая: допиливание (53.9 МБ)
Установка обновленного pcmanfm для исправления бага с ассоциациями приложений. Установка gXneur и Google Chrome. Добавление русской раскладки (тут меня можно отдельно покусать за решение). Поверхностная пробежка по фейсу, панелькам.
В целом, как я сказал, писалось для друга-эдвансд-виндузядника, имевшего дело с убунту но не переустанавливавшего ее самостоятельно, так что этот скринкаст определенно будет слишком сложен для кого-то одного, и слишком скучен для кого-то другого - я гарантирую это =)
2009-12-06
Простой шлюз из Linux & PS3 через Yota
Для начала немного о моем домашнем интернете. У меня их два:
1. первый (Inet1) - обычный домашний интернет через локалку
2. Yota, втыкаемая в ноутбук
Схема:
Ноут связан с домашним сервером через роутер, но инет обычно получает от йоты. PS3 инетится от роутера, но качество интернета у моего провайдера оставляет желать лучшего.Отсюда справедливое желание: оставить домашнего провайдера для торентов, а PS3 подключить к йоте, сотворив из линуксового ноута простейший шлюз.
Итак, на повестке дня 2 вопроса:
1. Как из компа под линуксом сделать простеший шлюз?
2. Как настроить PS3 для работы через шлюз в целом, и через Yota-инет в частности?
Ответы на оба вопроса элементарны. Чтобы линуксовый комп стал шлюзом, достаточно выполнить:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -t nat -A POSTROUTING -j MASQUERADE
Разумеется, все интерфейсы, которые предполагается использовать, должны быть настроены. В моем случае одним интерфейсом является подключенная Yota, а второй имеет адрес (192.168.1.5) внутри локальной сети (192.168.1.0/24).
Теперь о PS3. Заходим в настройки сети и вбиваем все руками. Отмечу стратегически важное:
IP - 192.168.1.50 (свободный айпишник внутри локальной сети)
Маска - 255.255.255.0 (используемая в локальной сети)
Шлюз - 192.168.1.5 (локальный адрес йотового компа-шлюза)
DNS - 8.8.8.8 (гугловский DNS-сервер)
DNS - 8.8.4.4 (еще гугловский DNS-сервер)
MTU - 1400 (с другими работать отказалась, возможно тут скрывается йота-особенность)
UPnP - выключить
Прокси - не использовать
С такими настройками приставка радостно ломится в ноут за инетом и получает его от йоты, гип-гип ура и все такое =)
1. первый (Inet1) - обычный домашний интернет через локалку
2. Yota, втыкаемая в ноутбук
Схема:
Notebook - Yota
|
Inet1 - Router - Srv
|
PS3
Ноут связан с домашним сервером через роутер, но инет обычно получает от йоты. PS3 инетится от роутера, но качество интернета у моего провайдера оставляет желать лучшего.Отсюда справедливое желание: оставить домашнего провайдера для торентов, а PS3 подключить к йоте, сотворив из линуксового ноута простейший шлюз.
Итак, на повестке дня 2 вопроса:
1. Как из компа под линуксом сделать простеший шлюз?
2. Как настроить PS3 для работы через шлюз в целом, и через Yota-инет в частности?
Ответы на оба вопроса элементарны. Чтобы линуксовый комп стал шлюзом, достаточно выполнить:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -t nat -A POSTROUTING -j MASQUERADE
Разумеется, все интерфейсы, которые предполагается использовать, должны быть настроены. В моем случае одним интерфейсом является подключенная Yota, а второй имеет адрес (192.168.1.5) внутри локальной сети (192.168.1.0/24).
Теперь о PS3. Заходим в настройки сети и вбиваем все руками. Отмечу стратегически важное:
IP - 192.168.1.50 (свободный айпишник внутри локальной сети)
Маска - 255.255.255.0 (используемая в локальной сети)
Шлюз - 192.168.1.5 (локальный адрес йотового компа-шлюза)
DNS - 8.8.8.8 (гугловский DNS-сервер)
DNS - 8.8.4.4 (еще гугловский DNS-сервер)
MTU - 1400 (с другими работать отказалась, возможно тут скрывается йота-особенность)
UPnP - выключить
Прокси - не использовать
С такими настройками приставка радостно ломится в ноут за инетом и получает его от йоты, гип-гип ура и все такое =)
2009-09-16
Как сохранить полный вывод консоли?
Бывает возникает желание сохранить все, что происходит в терминале. Вывод одной программы, конечно, можно перенаправить в файл, а небольшой кусочек просто скопипастить. Но если коннектишься к удаленному серваку (в моем случае вообще - циске) и долго и упорно его конфигуришь, эти подходы могут быть не очень подходящими. На эти случаи есть замечательная команда «script». Формат:
script имя_файла_лога
после выполнения скрипт начинает сохранять все вводимые комманды и ответ терминала на них. Для окончания записи нужно ввести просто
exit
script имя_файла_лога
после выполнения скрипт начинает сохранять все вводимые комманды и ответ терминала на них. Для окончания записи нужно ввести просто
exit
2009-09-15
Тормоза и повисание VirtualBox при использовании DameWare Remote Control
Сидя в линуксе, я использую DameWare Remote Control из-под виртуалбокса для управления вин-машинами. Начиная с какой-то версии VirtualBox начал подвисать как только я коннектился к удаленной машине. Решение оказалось простым: чтобы избежать подвисания следует зайти в меню «View» и, выбрав пункт «Local Global Options...», снять галку «Warning Border on Connect» — во всем виновато анимированное обрамление окна удаленной машины.
2009-05-20
Подвисание диалогов открытия и сохранения файла в Ubuntu 9.04
Проблема проявилась после обновления Ubuntu 8.10 до 9.04. Симптом — при попытке открыть или сохранить что-либо, происходило зависание приложения секунд на 15, после чего диалог успешно открывался. Метод лечения:
cd ~/.cache && rm -rf tracker && ln -s /var/tmp/${USER}-tracker/cache
cd ~/.local/share && rm -rf tracker && ln -s /var/tmp/${USER}-tracker/local
2009-05-13
Как в linux быстро и просто проверить, жив ли сервер?
Озаботился вопросом — как проверить на живость сервер и сервисы на нем? В моем случае это ряд цисок, файлсервера, да сервак Exchange. Разворачивать какую-то систему слежения там, где достаточно пинга да проверки портов, показалось слишком сложным. Бродя по инету наткнулся на довольно просто скриптец, использующий nmap для проверки открытых портов. Слегка попилив пришел к следующему:
Итого: легко и просто пиная скрипт cron'ом, мы проверяем живы ли наши сервера, и в случае абзаца наблюдаем в трее кто потерялся.
ЗЫ: А для раскраски синтаксиса был использован сервис http://highlight.hohli.com/
#!/bin/bash
# оригинальный скрипт: http://habrahabr.ru/sandbox/2096/
#
# Для работы требуются: nmap, libnotify-bin. Также
# необходимо создать рядом со скриптом файлик "servers",
# содержащий инфу об интересующих серверах в виде
# IP:PORT COMMENT, например:
#
# 192.168.310.254:443 1й снизу в левой стойке
# 192.168.410.254:80 вторая стойка, 3й снизу
#
# хватаем по строчке из списка, выхватываем часть до комментария,
# преобразуем двоеточие в " -p " и подсовываем nmap'у. Если последний
# не находит открытый порт на айпишнике — айпишник с портом записываются
# в файл serverlist (создается рядом со скриптом)
#
cat servers | while read line; do nmap `echo "${line}" | awk '{print($1)}'| sed -e 's/:/ -p /'` | grep -q "/tcp *open" || echo "${line}"; done > serverlist;
#
# Если serverlist не пуст, скидываем инфу о времени
# и инфу из serverlist в файл log (создается рядом со скриптом)
#
if (!( [ -z $(cat serverlist) ])); then
echo $DATENOW >> log
cat serverlist >> log
#
# для каждого айпишника из serverlist находится полная строка
# в servers (с комментарием). В начало каждой втыкается
# смайлег ಠ_ಠ, а в конце делается дополнительный перенос.
# Все это ложится в файл serverlist1, содержимое которого
# отправляется как системное уведомление.
#
cat serverlist| while read megaline; do grep "${megaline}" "servers"| sed -e 's/^/ಠ_ಠ /' | sed -e 's/$/\n/' ; done > serverlist1;
notify-send --expire-time=100000 АТАС-АТАС!! "`cat serverlist1`"
fi
exit
Итого: легко и просто пиная скрипт cron'ом, мы проверяем живы ли наши сервера, и в случае абзаца наблюдаем в трее кто потерялся.
ЗЫ: А для раскраски синтаксиса был использован сервис http://highlight.hohli.com/
2009-04-23
Рваное изображение при просмотре HD-video в Linux
Долгое время мучился с проблемой — при просмотре HD-video (особенно 1080p, хотя и 720p тоже) в моей Ubuntu картинка разрывалась, словно сверху уже отрисовался новый кадр, а снизу остался старый. На боль-мень динамичных сценах из-за этого проявлялась четкая линия границы с некислым искажением, хотя скорость отрисовки кадров не страдала. Долгое время грешил на настройки MPlayer, на видеодрайвер, на железо в конце-концов. Оказалось, явление такого разрыва называется tearing, а сама проблема легко гуглится по "compiz tearing". Пока что нашел единственное решение — отключить нафиг Compiz (в Ubuntu — «Система → Параметры → Внешний вид → Визуальные эффекты», галка «Без эффектов»)
Скрипты в Nautilus
Замечательная штука — скрипты файлового менеджера Nautilus. Нужно открыть консоль в текущей папке? Открывать консоль, cd /путь/до/папки... а если папка глубоко... брррр. Куда проще тыкнуть правой мышкой в свободное место открытой папки, да выбрать «Сценарии → term_here»

Что особенно приятно — добавляются эти скрипты легко и просто. Представляя из себя обычные текстовые шелл-скрипты, они кладутся в ~/.gnome2/nautilus-scripts/ и незамедлительно проявляются в вышеуказанной менюшке. Написать что-то простенькое под свои нужды также ничуть не сложно, если есть базовые понимания шелл-скриптинга (как у меня =)). Небольшой пример — написанный мною скрипт, закачивающий в текущую папку файл из скопированного в буфер обмена линка. Закачать можно при помощи wget'а в один поток, или axel'я — в 2 или 4 потока на выбор. После скачивания выдается сообщение что файл слит ).
Мега скрипт:
#!/bin/bash
XCLIP_CMD=/usr/X11R6/bin/xclip
if [ ! -e $XCLIP_CMD ] ; then
if [ -z `which $XCLIP_CMD` ] ; then
zenity --error --text="xclip not found!
Please put xclip on your search path or edit XCLIP_CMD in the script:
$0"
exit 1
fi
fi
Стандартное начало баш-скрипта и проверка наличия утилиты xclip, которая будет выплевывать из буфера обмена скопированный туда линк. В случае необнаружения утилиты в заданном месте, вызывается утила zenity, рисующая матерные выражения в предупредительном окошке.
FILE=`xclip -o`
DOWNLOADER=$(gdialog --title "Download with... (\"`echo $FILE`\")" --radiolist "Downloaders" 60 100 10 1 wget on 2 axel*2 off 3 axel*4 off 2>&1)
Кладем скопированную ссылку в переменную FILE, а далее используем утилиту gdialog для рисования окошка:

При этом, в зависимости от выбора, переменной DOWNLOADER присваивается значение от 1 до 3, которое мы тут же и обрабатываем:
if [ $DOWNLOADER = "1" ]; then
wget "`echo $FILE`"
gdialog --title "Download complete" --msgbox "File: \"`echo $FILE`\"" 20 500
fi
if [ $DOWNLOADER = "2" ]; then
axel --num-connections=2 "`echo "$FILE"`"
gdialog --title "Download complete" --msgbox "File: \"`echo $FILE`\"" 20 500
fi
if [ $DOWNLOADER = "3" ]; then
axel --num-connections=4 "`echo "$FILE"`"
gdialog --title "Download complete" --msgbox "File: \"`echo $FILE`\"" 20 500
fi
В зависимости от значения DOWNLOADER качаем файл соответствующей качалкой, после чего выводим сообщение с заголовком «Download complete» и телом, состоящим из строки «File: "ссылка-на-файл"»
Конечно это очень упрощенный вариант, в котором много чего не предусмотрено, например — ссылка фактически вставляется не из того буфера, который CTRL+C/V, а из того который работает по выделению и средней мышке. То есть если скопировать в буфер линк, после чего выделить кусок текста, то линк уже не скачается. Но несмотря на недоработки, скрипт вполне рабочий и достаточно прост, как мне кааца, для понимания.
Коллекцию скриптов, куда более удачных чем мой, можно найти вот тут.
Что особенно приятно — добавляются эти скрипты легко и просто. Представляя из себя обычные текстовые шелл-скрипты, они кладутся в ~/.gnome2/nautilus-scripts/ и незамедлительно проявляются в вышеуказанной менюшке. Написать что-то простенькое под свои нужды также ничуть не сложно, если есть базовые понимания шелл-скриптинга (как у меня =)). Небольшой пример — написанный мною скрипт, закачивающий в текущую папку файл из скопированного в буфер обмена линка. Закачать можно при помощи wget'а в один поток, или axel'я — в 2 или 4 потока на выбор. После скачивания выдается сообщение что файл слит ).
Мега скрипт:
#!/bin/bash
XCLIP_CMD=/usr/X11R6/bin/xclip
if [ ! -e $XCLIP_CMD ] ; then
if [ -z `which $XCLIP_CMD` ] ; then
zenity --error --text="xclip not found!
Please put xclip on your search path or edit XCLIP_CMD in the script:
$0"
exit 1
fi
fi
Стандартное начало баш-скрипта и проверка наличия утилиты xclip, которая будет выплевывать из буфера обмена скопированный туда линк. В случае необнаружения утилиты в заданном месте, вызывается утила zenity, рисующая матерные выражения в предупредительном окошке.
FILE=`xclip -o`
DOWNLOADER=$(gdialog --title "Download with... (\"`echo $FILE`\")" --radiolist "Downloaders" 60 100 10 1 wget on 2 axel*2 off 3 axel*4 off 2>&1)
Кладем скопированную ссылку в переменную FILE, а далее используем утилиту gdialog для рисования окошка:
При этом, в зависимости от выбора, переменной DOWNLOADER присваивается значение от 1 до 3, которое мы тут же и обрабатываем:
if [ $DOWNLOADER = "1" ]; then
wget "`echo $FILE`"
gdialog --title "Download complete" --msgbox "File: \"`echo $FILE`\"" 20 500
fi
if [ $DOWNLOADER = "2" ]; then
axel --num-connections=2 "`echo "$FILE"`"
gdialog --title "Download complete" --msgbox "File: \"`echo $FILE`\"" 20 500
fi
if [ $DOWNLOADER = "3" ]; then
axel --num-connections=4 "`echo "$FILE"`"
gdialog --title "Download complete" --msgbox "File: \"`echo $FILE`\"" 20 500
fi
В зависимости от значения DOWNLOADER качаем файл соответствующей качалкой, после чего выводим сообщение с заголовком «Download complete» и телом, состоящим из строки «File: "ссылка-на-файл"»
Конечно это очень упрощенный вариант, в котором много чего не предусмотрено, например — ссылка фактически вставляется не из того буфера, который CTRL+C/V, а из того который работает по выделению и средней мышке. То есть если скопировать в буфер линк, после чего выделить кусок текста, то линк уже не скачается. Но несмотря на недоработки, скрипт вполне рабочий и достаточно прост, как мне кааца, для понимания.
Коллекцию скриптов, куда более удачных чем мой, можно найти вот тут.
2009-04-12
Свои сочетания для Compose Key
Иногда мне хочется попонтоваться и поюзать в своей письменной речи всякие стильные фичи, например длинное тире "—", или даже так «—», а может даже напи́сать... ой, написа́ть слово с ударением! В этом здорово помогает линуксоидам такая хренотень как «Compose Key». «Compose Key» — это такая кнопка, после которой можно ввести сочетание других кнопок и получить какой-нибудь приятный результат. Например чтобы получить «—» надо нажать последовательно «Compose Key» и три раза «-». А чтобы ввести открывающую кавычку — «Compose Key» и два раза «<», закрывающую — «Compose Key» и два раза «>».
При этом, сам «Compose Key» на клавиатуре может быть любой ненужной кнопкой, в моем случае это правый CTRL, который сам по себе мне не нужен. Задается это в /etc/X11/xorg.conf, путем дописывания в секцию настройки клавиатуры. Примерно так:
Множество комбинаций с «Compose Key» описаны в инете и легко гуглятся, а все возможные комбинации описаны в файлике /usr/share/X11/locale/en_US.UTF-8/Compose, который можно поизучать в свободное время.
Однако, бывает так что начинает хотеться странного. Например долбежка «---» для тире меня не устраивает, мне хочется проставлять тире одиночным нажатием на минус.
Для того чтобы иметь возможность задавать пользовательские сочетания с «Compose Key», нужно совершить пару простых телодвижений.
Во-первых надо открыть или создать, если его не существует, файл ~/.profile и прописать туда две строки:
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
Во-вторых нужно создать файл ~/.XCompose и вписать в него первой строкой
include "/usr/share/X11/locale/en_US.UTF-8/Compose"
что применит все дефолтные настройки, а после дописать нужные комбинации. Например у меня дописаны:
<Multi_key> <0> <0>: "́" U0301 # ударение
<Multi_key> <minus> <space>:" — " # тире
<Multi_key> <less> <minus> : "←" U2190 # <-
<Multi_key> <minus> <less> : "←" U2190 # -<
<Multi_key> <minus> <greater> : "→" U2192 # ->
<Multi_key> <o> <underscore> <o> : "ಠ_ಠ"
и еще несколько забавных строк =)
После всего этого нужно перезагрузиться или перезапустить X-сервер. В дальнейшем можно менять файлик ~/.XCompose, изменения будут применяться для новозапущенных/перезапущенных приложений.
При этом, сам «Compose Key» на клавиатуре может быть любой ненужной кнопкой, в моем случае это правый CTRL, который сам по себе мне не нужен. Задается это в /etc/X11/xorg.conf, путем дописывания в секцию настройки клавиатуры. Примерно так:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru"
Option "XkbVariant" ",winkeys"
Option "XkbOptions" "grp:lwin_toggle,lv3:ralt_switch,grp_led:scroll,compose:rctrl"
EndSection
Множество комбинаций с «Compose Key» описаны в инете и легко гуглятся, а все возможные комбинации описаны в файлике /usr/share/X11/locale/en_US.UTF-8/Compose, который можно поизучать в свободное время.
Однако, бывает так что начинает хотеться странного. Например долбежка «---» для тире меня не устраивает, мне хочется проставлять тире одиночным нажатием на минус.
Для того чтобы иметь возможность задавать пользовательские сочетания с «Compose Key», нужно совершить пару простых телодвижений.
Во-первых надо открыть или создать, если его не существует, файл ~/.profile и прописать туда две строки:
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
Во-вторых нужно создать файл ~/.XCompose и вписать в него первой строкой
include "/usr/share/X11/locale/en_US.UTF-8/Compose"
что применит все дефолтные настройки, а после дописать нужные комбинации. Например у меня дописаны:
<Multi_key> <0> <0>: "́" U0301 # ударение
<Multi_key> <minus> <space>:" — " # тире
<Multi_key> <less> <minus> : "←" U2190 # <-
<Multi_key> <minus> <less> : "←" U2190 # -<
<Multi_key> <minus> <greater> : "→" U2192 # ->
<Multi_key> <o> <underscore> <o> : "ಠ_ಠ"
и еще несколько забавных строк =)
После всего этого нужно перезагрузиться или перезапустить X-сервер. В дальнейшем можно менять файлик ~/.XCompose, изменения будут применяться для новозапущенных/перезапущенных приложений.
Подписаться на:
Сообщения (Atom)