В инете распространены скрипты для PowerShell 2, использующие фреймворк. Однако этот способ у меня не заработал - выдавал ошибки типа "Invalid JSON primitive: Microsoft.Exchange.Management.SystemConfigurationTasks.DatabaseCopyStatusEntry."
Для таких страдальцев как я, нашелся отличный работающий скрипт конвертации: https://gist.github.com/mdnmdn/6936714
Скачать архивом (актуальность на момент поста): ConvertTo-JSON.zip
Клочки бумаги, на которых обычно ведутся записи, имеют обыкновение теряться, если их вовремя не подшить. Мысли на тему линукса, а может и не только его, - чтоб не забыть.
2015-11-26
2015-11-19
[решено] Падение производительности Veeam Backup на больших серверах
Долгое время не мог понять, почему Veeam Backup & Replication (6.5 на Win2008/R2) постепенно теряет производительность при бэкапе больших (>2TB) виртуальных машин. Скорость копирования падала с >100MB/c на старте задания до 1-2 MB спустя несколько часов.
Оказалось, дело в неправильной работе дискового кэша в Win 2008/R2 (говорят, в 2012м сервере это поправили, но я не проверял) - он раздувается до неприличных объемов и все начинает тупить и тормозить вплоть до остановки задания.
Для решения этой проблемы я использовал утилиту cacheset от Марка Руссиновича. Она позволяет выставить минимальный и максимальный размеры кэша, при этом раздутый кэш сдувается до установленных лимитов. Однако, как выяснилось, эти лимиты через какое-то время снова сбрасываются, поэтому данную утилиту я запихал в шедулер:
c:\bin\cacheset 1024 100000
где 1024 - минимальный размер кэша в KB, 100000 - максимальный.
Запуск этой команды раз в час обеспечил решение проблемы.
Скачать: с офиц. сайта, отсюда
Оказалось, дело в неправильной работе дискового кэша в Win 2008/R2 (говорят, в 2012м сервере это поправили, но я не проверял) - он раздувается до неприличных объемов и все начинает тупить и тормозить вплоть до остановки задания.
Для решения этой проблемы я использовал утилиту cacheset от Марка Руссиновича. Она позволяет выставить минимальный и максимальный размеры кэша, при этом раздутый кэш сдувается до установленных лимитов. Однако, как выяснилось, эти лимиты через какое-то время снова сбрасываются, поэтому данную утилиту я запихал в шедулер:
c:\bin\cacheset 1024 100000
где 1024 - минимальный размер кэша в KB, 100000 - максимальный.
Запуск этой команды раз в час обеспечил решение проблемы.
Скачать: с офиц. сайта, отсюда
2015-09-19
Настройка многомониторной конфигурации с выводом звука на ТВ/ресивер
Сегодня опишу свою конфигурацию игрового компа, а вернее - схему подключения с тремя мониторами и двумя звуковыми картами.
2015-07-17
Как убить процесс по имени в винде
С помощью powershell - легко и просто:
Get-Process -Name имя_процесса | Stop-Process -force
имя_процесса - может содержать маску,
-force - предотвращает появление диалога с подтверждением
Get-Process -Name имя_процесса | Stop-Process -force
имя_процесса - может содержать маску,
-force - предотвращает появление диалога с подтверждением
2015-06-27
EncFSMP: монтирование EncFS под windows
Это просто праздник какой-то! Кого-то достала невозможность использования EncFS (виртуальная файловая система с шифрованием данных) под виндой и появилась софтина, свободная как птица и РАБОЧАЯ, МАТЬ ЕЕ!!! Качать тут: EncFSMP
2015-06-03
Как скопировать файлы с атрибутами безопасности в Windows
Для того чтобы скопировать файлы со всеми NTFS-атрибутами (при миграции файлсервера, например), можно воспользоваться утилитой robocopy, входящей в Windows 2003 Resource Kit Tools (входит в состав w2k8_R2)
Примеры использования:
Или
/COPYALL - копировать все атрибуты
/E - рекурсивно
/R:1000000000 - миллион повторных попыток копирования для заблокированных файлов (значение по умолчанию, используется при неуказании ключа). После каждой попытки таймаут 30 секунд!
/Z - использовать журнал возобновления на случай потери сетевого соединения
Справка по синтаксису: PDF, MSDN.
robocopy C:\folder D:\folder /COPYALL /E /R:1000000000
Или
robocopy \\server\share C:\folder /COPYALL /E /R:1000000000 /Z
/COPYALL - копировать все атрибуты
/E - рекурсивно
/R:1000000000 - миллион повторных попыток копирования для заблокированных файлов (значение по умолчанию, используется при неуказании ключа). После каждой попытки таймаут 30 секунд!
/Z - использовать журнал возобновления на случай потери сетевого соединения
Справка по синтаксису: PDF, MSDN.
2015-05-25
blogger.сom ч.2: как изменить стиль картинок?
Этот вопрос парил меня реально многие годы =) В блоггере изображения вставляются неким скриптом, при этом можно довольно легко и просто выбрать один из четырех размеров (мелкий, средний, большой, оригинальный) и выравнивание - по левому или правому краям, или по центру. Вопрос был в том, как изменить эти, назовем их "пресеты", чтобы, к примеру, изображение можно было в один клик сделать в ширину блога.
Посмотрим как выглядят картинки, вставленные в мой основной блог.
Как можно видеть, изображение (в данном случае среднего размера) имеет по мимо всего прочего белую окантовку (сама картинка в оригинале кончается черной рамкой). Разумеется мне не пришло бы в голову растягивать во всю ширину именно эту - вертикальную картинку, но для горизонтальных иногда хочется это сделать. Убрав, заодно, ненужную белую рамку.
Собственно, что нужно сделать. Так как стили, применяемые на картинки, зависят от темы, то универсального решения, которое можно было бы скопипастить - нет. Однако его довольно просто получить, используя инструменты разработчика, которые сейчас есть в любом уважающем себя браузере. Например в хроме, который использую я.
Откроем пост с картинкой. Если вы юзаете хром, то достаточно тыкнуть правой мышкой на картинку и выбрать "просмотр кода элемента", чтобы открыть такое окно (кликабельно):
Из полезного мы видим в первую очередь набор применяемых стилей справа. Из критичного в данном случае - padding и box-shadow, которые реализуют белую рамку и эффект тени. Эти стили нужно переназначить. Второе полезное - кусочек width="289" в самом коде страницы. Это ширина, которая устанавливается при выборе средней ширины картинки при ее вставке. Скажу что для большого размера эта ширина равна 640, и именно ее я менял.
Собственно теперь мой стиль:
Поясню. Первая строка обозначает элемент который мы будем менять - это тег
с классом "post_body" (его можно увидеть при исследовании стилей) и содержащий атрибут width="640". То есть все стили, которые мы будем применять, будут распространяться только на картинки, для которых в редакторе, при вставке, мы выберем большой размер.
(Фактически мы таким образом можем задать аж 3 абсолютно разных стиля, "забиндив" их на 3 "пресетовых" размера.)
Дальше мы меняем свойство padding - убирая внешние отступы от картинки и с ними - белую рамку.
Еще дальше мы убираем тень (box-shadow), выставляя ее значения в нули.
Параметр width - ширина, которая равна ширине моей колонки.
height: auto - высота устанавливается автоматически, так чтобы картинка не меняя пропорций.
Посмотрим как выглядят картинки, вставленные в мой основной блог.
Как можно видеть, изображение (в данном случае среднего размера) имеет по мимо всего прочего белую окантовку (сама картинка в оригинале кончается черной рамкой). Разумеется мне не пришло бы в голову растягивать во всю ширину именно эту - вертикальную картинку, но для горизонтальных иногда хочется это сделать. Убрав, заодно, ненужную белую рамку.
Собственно, что нужно сделать. Так как стили, применяемые на картинки, зависят от темы, то универсального решения, которое можно было бы скопипастить - нет. Однако его довольно просто получить, используя инструменты разработчика, которые сейчас есть в любом уважающем себя браузере. Например в хроме, который использую я.
Откроем пост с картинкой. Если вы юзаете хром, то достаточно тыкнуть правой мышкой на картинку и выбрать "просмотр кода элемента", чтобы открыть такое окно (кликабельно):
Из полезного мы видим в первую очередь набор применяемых стилей справа. Из критичного в данном случае - padding и box-shadow, которые реализуют белую рамку и эффект тени. Эти стили нужно переназначить. Второе полезное - кусочек width="289" в самом коде страницы. Это ширина, которая устанавливается при выборе средней ширины картинки при ее вставке. Скажу что для большого размера эта ширина равна 640, и именно ее я менял.
Собственно теперь мой стиль:
.post-body img[width="640"] {
padding: 0px!important;
box-shadow: 0px 0px 0px rgba(0, 0, 0, .5)!important;
width: 710px!important;
height: auto!important;
position: relative;
left: -34px;
}
Поясню. Первая строка обозначает элемент который мы будем менять - это тег
(Фактически мы таким образом можем задать аж 3 абсолютно разных стиля, "забиндив" их на 3 "пресетовых" размера.)
Дальше мы меняем свойство padding - убирая внешние отступы от картинки и с ними - белую рамку.
Еще дальше мы убираем тень (box-shadow), выставляя ее значения в нули.
Параметр width - ширина, которая равна ширине моей колонки.
height: auto - высота устанавливается автоматически, так чтобы картинка не меняя пропорций.
position: relative - выставляем относительное позиционирование.... тут я приторможу и поясню...
Штука в том, что если посмотреть на мой бложик, на его центральную колонку, в котором расположены посты, то можно увидеть, что текст не прилегает вплотную к краям этой области. Иными словами для центральной области задан отступ, и если просто взять картинку, отключить ее отступы и выставить ширину равную ширине "постовой"! области блога, то картинка "съедет" вправо на ширину общего отступа колонки. Конечно можно убрать этот отступ вовсе, но тогда левый край текста будет также прилегать к границе колонки, что будет выглядеть убого. Поэтому для картинок и только для них нужно задать относительное смещение, и первый шаг для этого - параметр position: relative. А дальше добавляем...
left: -34px - методом проб и ошибок выясненное значение, при котором картинка ширины бложика ложится ровно по краям колонки.
Замечу, что в стиле я добавляю параметр !important, чтобы стиль перекрыл дефолтно заданные значения (вроде это необходимо только для параметров ширины и высоты, но другим параметров от этого дополнения хуже не будет)
И в завершение хочу сказать ,что таким образом "докопаться" можно не только до картинок. Например я применяю подобный стиль для встраивания слайдшоу пикасы.
2015-05-23
blogger.com ч.1: меняем оформление цитат
Блог в котором я живу
называется "стили говно, 2 года править"
В общем есть пара триксов, на тему "как заставить блоггер ком выглядить не так стремно", и для начала мне захотелось исправить выделение цитат. На просторах инета я нашел отличный рецепт, результат работы которого можно видеть выше.
Переходим в настройки блога, выбираем "шаблон" и тыкаем кнопку "настроить":
Переходим в настройки блога, выбираем "шаблон" и тыкаем кнопку "настроить":
.tr_bq {
border-left: 4px solid #2288bb;
margin: 1.5em 10px;
padding: 0.5em 10px;
quotes: "\201C""\201D""\2018""\2019";
}
.tr_bq:before {
color: #2288bb;
content: open-quote;
font-size: 4em;
line-height: 0.1em;
margin-right: 0.25em;
vertical-align: -0.4em;
}
.tr_bq:after {
color: #2288bb;
content: close-quote;
font-size: 4em;
line-height: 0.1em;
margin-left: 0.25em;
vertical-align: -0.4em;
}
Можно поиграться с цветом:
- строчка "border-left: 4px solid #2288bb;" - это левая полоска, ее толщина, стиль и цвет
- строчки "color: #2288bb;" в последующих двух разделах - это цвета открывающих и закрывающих кавычек, их лучше менять вместе =)
2015-05-07
Как вернуть Brocade FC Switch в фабрику
Чтобы вернуть в фабрику свич, который был долго выключен и не захотел подсосаться обратно, нужно залезть на него через telnet или ssh и выполнить:
Это вернет свичу дефолтный конфиг и перезагрузит его. После загрузки свич должен вернуться в фабрику, где ему прольется фабричный конфиг.
Выполнять на свой страх и риск, убедитесь в наличии бэкапа конфига! =)
switchdisable cfgdisable cfgclear cfgsave configdefault fastboot
Это вернет свичу дефолтный конфиг и перезагрузит его. После загрузки свич должен вернуться в фабрику, где ему прольется фабричный конфиг.
Выполнять на свой страх и риск, убедитесь в наличии бэкапа конфига! =)
2015-04-11
Как отключить срабатывание нажатия Alt без удержания
Иными словами меня запарило так называемое Alt-меню. А именно ситуация, когда прожимается Alt+Shift, набирается текст и ВДРУГ выясняется, что комбинация-то и не сработала. При этом нажатый и отпущенный уже альт все равно вызвал меню, и гора текста, напечатанная после, сработала как хоткеи, и текущий софт навыполнял кучу бессмысленных и беспощадных операций.
Короче избавиться от этой веселухи можно с помощью программы AutoHotkey, которая вообще некислый комбаин по настройке хоткеев, но чтобы справиться с конкретной проблемой нужно после установки этой софтинки создать файлик "Autohotkey.ahk", написать в нем строчку
~LAlt Up:: return
После чего запустить этот файл и не забыть кинуть ярлык на него в автозагрузку.
2015-04-03
Что мешает Windows уснуть? Как посмотреть что мешает спящему режиму
Консоль с повышенными правами, в нее:powercfg /requests
Тайна раскрыта, остается разуметь вывод. В моем случае в демонтулзе был зацеплен исошник с сетевой шары.
2015-03-30
Как отключить форматирование текста в Skype
Как известно, скайп использует замену текста, обрамленного, например, звездочками. Если обрамить что-то звездочками *вот так*, то на выходе получится полужирное вот так. Чтобы отключить эту функцию, достаточно в любой чат написать команду:
/setupkey *Lib/Conversation/EnableWiki 0
Скайп на нее скажет:
setupkey: [*Lib/Conversation/EnableWiki] now '0'
Больше эта фигня не потревожит =)
2015-03-03
Симлинки: Возвращение. Синхронизация сейвов игр между компами
В своем старом посте, посвященном вопросу переноса музыки на андроидных девайсах, я уже упоминал симлинки. Теперь появился повод рассказать как с их помощью я синхронизирую сейвы игр (на самом деле не только их) между несколькими компами, причем между компами с разными операционками. Рассказывать и показывать буду на примере Baldur's Gate Enhanced Edition (далее BG:EE) - эта игра хоть и стимовская, но не подерживает Steam Cloud, так что пример вышел более чем жизненный.2015-02-02
Работа с историей скайпа
Давно искал утилиту для работы с историей скайпа и вот нашел. Называется Skyperious. Графическая, удобная, под винду и линух, умеет объединять несколько баз данных скайпа в одно целое - в общем збс софтина. Без регистрации и смс =) Выкладываю архив версии от 2014-05-08, чисто на всякий случай.
2015-01-10
Настройка прозрачного прокси через Tor
Долгое время я не чувствовал необходимости обходить великий и ужасный реестр заблокированных сайтов, но вот и до меня дошла беда - мой любимый провайдер выпилил нахрен лостфильм. По этому поводу сегодня я расскажу как настроить тор в качестве прокси и использовать его в связке с хромом (выбор браузера не принципиален).
Я рассмотрю два случая и начну с более простого и обыденного.
Снимаем галку Show this window on startup, затем тыкаем кнопку Settings и переходим во вкладку Sharing:
Выбираем опцию Run as client only, если не хотим пропускать через себя чужой трафик для повышения общей скорости tor-сети. OK
В главном окне нажимаем Hide, чтобы свернуть программу в трей. При перезапуске винды тор стартует автоматически. Переходим к настройке браузера.
Перезапускаю прокси
Готово, теперь остается настроить браузер. Настройка идентична уже описанной, отличается только настройкой самой прокси:
Я рассмотрю два случая и начну с более простого и обыденного.
Настройка прокси на локальном компе с Windows
Если у нас есть просто комп с виндой, то первым делом идем сюда: https://www.torproject.org/download/download.html.en, разворачиваем раздел Microsoft Windows и качаем Vidalia Relay Bundle. После установки и запуска появится следующее окно:
Выбираем опцию Run as client only, если не хотим пропускать через себя чужой трафик для повышения общей скорости tor-сети. OK
В главном окне нажимаем Hide, чтобы свернуть программу в трей. При перезапуске винды тор стартует автоматически. Переходим к настройке браузера.
Настройка браузера на примере Google Chrome
Для работы с прокси в Хроме я использую расширение FoxyProxy Standard, существующее для Хрома, Файрфокса и ИЕ.
Заходим в настройки:
Здесь нужно выбрать в верхнем меню Use proxies based on their pre-defined patterns and priorities - эта опция позволит не работать через прокси все время, а автоматически включать ее на определенных сайтах. Тут же нажимаем Add New Proxy.
На первой вкладке вводим имя прокси, например Local Tor:
На второй вкладке вводим:
Host IP Address: 127.0.0.1
Port: 9050
SOCKS Proxy: ставим галку
SOCKS v4/v4a: выбираем
Переходим на третью вкладку, тут будем добавлять сайты, на которые нужно ходить через прокси.
Нажимаем Add new pattern. Добавим лостфильм.
Pattern name: LostLilm
URL pattern: *lostfilm.tv*
(Для паттернов используются обыкновенные маски, таким образом запись *lostfilm.tv* означает все ссылки, в которых встречается адрес сайта.)
Нажимаем Save в окне редактирования паттерна, потом еще раз - в окне Proxy Settings. Теперь кроме Default Proxy у нас появилась наша - Local Tor.
Теперь при попытке зайти на лостфильм фоксипрокси автоматически заставит браузер использовать наш тор и никакой реестр нам больше не страшен.
Для того чтобы добавить другие сайты, нужно отредактировать созданную прокси - Local Tor, перейдя в третью вкладку и добавив новый паттерн.
Настройка TOR на отдельном компе для проксирования нескольких домашних компьютеров
Эта часть не для всех, но так как у меня дома 2 компа и сводобный неттоп, то я решил - чего бы не использовать последний в качестве прокси? Я развернул на нем платформу виртуализации внутри которой сделал виртуалку, но это совершенно не принципиально - будем считать что это просто отдельный комп.
Первым делом я накатил туда Ubuntu 14.04 в минимальной серверной конфигурации. Дальше установил тор и дополнительную проксятину:
apt-get install tor tor-geoipdb privoxy
Бэкаплю конфиг прокси и создаю новый
mv /etc/privoxy/config /etc/privoxy/config.backup
vi /etc/privoxy/config
В конфиг пишу:
|
/etc/init.d/privoxy restart
Готово, теперь остается настроить браузер. Настройка идентична уже описанной, отличается только настройкой самой прокси:
IP - теперь указываем IP сервера с тором, у меня это 192.168.1.6
Порт: 8118 - порт указан в конфиге прокси на сервере
SOСKS proxy - отключаем.
Все, теперь, уважаемые читатели, вы знаете как настроить тор в качестве прокси на локальном компе или на выделенном сервере с убунтой на борту =)
2014-10-03
Смена часовых поясов в XP средствами GPO
Все админы, наверное, готовятся сейчас к предстоящему переезду в новые часовые пояса. И основная проблема - это XP, которая местами еще осталась, и для которой отсутствуют патчи от MS.
Для московского региона я состряпал скрипт, который предлагаю скачать: tzdata_xp_patch_moscow_time.7z
Архив включает экспортированный из реестра 2003го сервера набор новых зон и VBS-скрипт:
Как можно понять, скрипт проверяет версию ядра Windows и если она равна 5.1 (это ядро используется в XP), то сначала импортируется reg-файл с зонами, а после выставляется дефолтная - Russian Standard Time.
Стоит учитывать, что данный "патч" можно установить заранее, как и официальный, так как новая зона до 26го октября имеет "летнее время", компенсируя час разницы.
При желании скрипт можно легко модифицировать, изменив проверку ядра системы, или имя текущей зоны, и запустить средствами GPO.
Все зоны лежат в реестре: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones], имя зоны = имени "папки" реестра.
UPD.:
Тестирование показало, что скрипт идеально работает при запуске руками, но какого-то хрена не выполняется как Startup-скрипт из GPO. Изрядно поебавшись, кажется прихожу к решению:
Для московского региона я состряпал скрипт, который предлагаю скачать: tzdata_xp_patch_moscow_time.7z
Архив включает экспортированный из реестра 2003го сервера набор новых зон и VBS-скрипт:
strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colOperatingSystem = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystem ServicePack = objOperatingSystem.ServicePackMajorVersion Version = objOperatingSystem.Version Next IF Mid(Version,1,3)="5.1" Then Set oShell = WScript.CreateObject ("WScript.Shell") oShell.run "regedit /s tzdata_w2k3_zone_list.reg" oShell.run "control.exe timedate.cpl,,/z Russian Standard Time" ELSE 'DO NOTHING 'Set oShell = WScript.CreateObject ("WScript.Shell") 'oShell.run "regedit /s tzdata_w2k3_zone_list.reg" 'oShell.run "control.exe timedate.cpl,,/z Russian Standard Time" END IF
Как можно понять, скрипт проверяет версию ядра Windows и если она равна 5.1 (это ядро используется в XP), то сначала импортируется reg-файл с зонами, а после выставляется дефолтная - Russian Standard Time.
Стоит учитывать, что данный "патч" можно установить заранее, как и официальный, так как новая зона до 26го октября имеет "летнее время", компенсируя час разницы.
При желании скрипт можно легко модифицировать, изменив проверку ядра системы, или имя текущей зоны, и запустить средствами GPO.
Все зоны лежат в реестре: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones], имя зоны = имени "папки" реестра.
UPD.:
Тестирование показало, что скрипт идеально работает при запуске руками, но какого-то хрена не выполняется как Startup-скрипт из GPO. Изрядно поебавшись, кажется прихожу к решению:
- заменить VBS-скрипт следующим двухстрочным CMD:
regedit /s tzdata_w2k3_zone_list.reg
control timedate.cpl,,/z Russian Standard Time - Применить на политику WMI-фильтр:
SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "5.1%" AND ProductType = 1
В целом это решение видится даже более правильным, хотя до сих пор WMI-фильтрами мне пользоваться не доводилось, почему и в голову сразу не пришло.
2014-09-12
VMware tools в Slackware - что делать, если не работают poweroff, reboot
Если тулзы установлены корректно (определяются как запущенные в консоли управления, отдают информацию о гостевой системе), но при этом гостевая машина не реагирует на попытки выключить или перезагрузить ее - следует снести скрипт:
/etc/vmware-tools/scripts/vmware/network
Проверено на 14й слаке и ESXI 5.0
/etc/vmware-tools/scripts/vmware/network
Проверено на 14й слаке и ESXI 5.0
2014-08-15
Отправка триггеров Zabbix на удаленный Syslog-сервер
Захотелось хранить историю триггеров не только на самом заббиксе, но и копировать их, ради пущей надежности, на удаленный сислог. Сделать это оказалось не так сложно.
(все настройки справедливы для ubuntu 12.04)
Первым делом в каталоге /usr/local/share/zabbix/alertscripts/ создаем скрипт zabbix_logger.sh:
Меняем ему владельца и делаем исполняемым:
Теперь этот скрипт готов получать сообщения от заббикса и писать их заголовки ($2 в скрипте) в локальный сислог под тегом ZABBIX.
После перезапуска rsyslog'а все сообщения тегированные строкой "ZABBIX" отправятся на нужный сервер, где при помощи LogAnalyzer'а обретут вот такой вот вид:
(все настройки справедливы для ubuntu 12.04)
Первым делом в каталоге /usr/local/share/zabbix/alertscripts/ создаем скрипт zabbix_logger.sh:
#!/bin/bash /usr/bin/logger -t ZABBIX $2
Меняем ему владельца и делаем исполняемым:
cd /usr/local/share/zabbix/alertscripts/ chown zabbix:zabbix ./zabbix_logger.sh chmod +x zabbix_logger.sh
Теперь этот скрипт готов получать сообщения от заббикса и писать их заголовки ($2 в скрипте) в локальный сислог под тегом ZABBIX.
Настроим сам заббикс.
Первым делом добавим новую медию:
Чтобы все триггеры вызывали наш скрипт, добавим эту медию к учетке администратора:
Теперь все триггеры пишутся в локальный сислог. Однако у нас используется отдельный сислог-сервер, поэтому пришлось создать файл /etc/rsyslog.d/20-zabbix.conf, содержащий одну строчку:
:syslogtag,contains,"ZABBIX" @192.168.1.9
После перезапуска rsyslog'а все сообщения тегированные строкой "ZABBIX" отправятся на нужный сервер, где при помощи LogAnalyzer'а обретут вот такой вот вид:
2014-07-04
Драйвер Dualshock 3, альтернатива Motionjoy и DS3 Tool
Преамбула
Как человек, руки которого привыкли к джойстикам от Sony, я долгое время использовал драйвер MotionJoy для подключения геймпада Dualshock 3 к компу. Драйвер выполнял казалось бы все необходимые функции - позволял подключать геймпад по USB или через Bluetooth, и определять его как XInput-совместимый, что позволяло использовать дуалшок для игр в стиме, например. Однако у моушнджоя при этом всплыли 3 недостатка:- После рестарта винды нужно вручную запустить софт DS3 Tool,
- После старта DS3 Tool приходилось залезать в конфигурацию кнопок и сбрасывать все на дефолт,
- При уходе винды в спящий режим Motionjoy ронял ее в BSOD.
Если первую проблему можно обойти автозагрузкой, а вторая, возможно, вообще возникла только у меня (по крайней мере о ней я ни от кого не слышал), то третья проблема легко гуглится, а ее решение заключается, по отзывам, только в корректном извлечении юсб-устройства после работы. Кроме того встречаются раздраженные отзывы о плохой поддержке, кривом коде (sic!) и невозможности удалить драйвера Motionjoy иначе как вручную. В общем все это (конечно, BSOD'ы в первую очередь) побудили меня поискать альтернативу. И это оказалось несложно.
Драйвер
На форуме steam я нашел развернутый отзыв-инструкцию о "SCP DS Drivers" - альтернативном драйвере, который также поддерживает работу через USB/Bluetooth. Скачать драйвер можно из темы на форуме pcsx.net тут (вроде как там выкладываются свежие версии и лежит инструкция по установке), или вот здесь скачать проверенную лично мной версию (в архиве также находятся оригинальные драйвера геймпада xbox).Инструкция по установке:
- Установить оригинальные драйвера геймпада xbox,
- Скачать архив и распаковать в Program Files (или в другое место, откуда этот драйвер будет в дальнейшем работать),
- Подключить геймпад по USB,
- (если необходимо) подключить Bluetooth-донгл,
- Дождаться установки дефолтных драйверов Windows,
- Запустить ScpDriver.exe,
- Для XP/Vista - поставить галку Force Install, для Win7/8 - не ставить,
- Жмякнуть Install и подождать пока в лог напишется что все прошло успешно:
После этого геймпад заработает как XInput-совместимый, а если был подключен Bluetooth-донгл, то можно отключить геймпад от USB - он сам переключится на воздух.
Спаривание геймпада с воздухом осуществляется подключением по USB во время работы сервиса, один донгл держит до 4х геймпадов. Для отключения геймпада нужно на 2 секунды зажать L1+R1+PS.
Скачать драйвер: Dualshock Driver - SCP-DS-Driver-Package-1.2.2.175.7z
Последняя версия драйвера: http://forums.pcsx2.net/Thread-XInput-Wrapper-for-DS3-and-Play-com-USB-Dual-DS2-Controller
2014-05-23
Мультикаст рестрим на коленке
Появилась задача - обеспечить каждому сотруднику возможность посмотреть проходящую видеоконференцию. Так как количество сотрудников однозначно превышало количество лицензий Codian на подключение - пришлось собрать на коленке рестримилку.
Рестрим
В качестве софта был взят vlc под linux, экспериментальным путем запущенный вот с такими параметрами:vlc -vvv rtsp://codian_server/conf_h264_g711u_256000__Supaconf \ --sout "#transcode{\ threads=6,\ vcodec=h264,\ vb=1024,\ scale=0,\ acodec=mp4a,\ ab=64,\ channels=2,\ samplerate=44100,\ venc=x264{preset=ultrafast,aud,profile=baseline,level=30,keyint=30,ref=1}\ }:http{mux=flv,dst=:8080/stream}" --sout-keepДанный вариант запускает на рестрим, доступный по адресу: http://рестримилка:8080/stream. Стрим вещается с кодеками h264/aac в контейнере flv и понимается онлайн-плеером Video.js (http://www.videojs.com/), который можно поставить прямо на рестримящий сервер. Для воспроизведения потребуется IE не менее 9го или любой другой современный браузер. Ну или можно использовать тот же самый VLC на клиентских компах, а лучше - портабельный (полностью распакованный) vlc на сетевой шаре с ярлыком, в котором прописан путь к рестриму.
Такой вариант рестримилки в моем случае при шести ядрах тянул 300 подключений не напрягаясь - загрузка процессора не превышала 20%. Однако трафик, поэтому...
Балансировка нагрузки
Еще более наколеночное и тупое решение - поднять пару серверов, которые будут захватывать стрим с основного рестримящего сервера и отдавать его без перекодировки.
!#/bin/sh while true; do /usr/bin/vlc --play-and-exit \ -vvv http://restream-root-server:8080/stream \ --sout "#standard{access=http,mux=flv,dst=:8080/stream}" sleep 2 done
Этот скрипт будет пытаться достучаться до рестримящего сервера и подхватить поток. Когда поток подхватится - vlc начнет его рестрим (тот же адрес - :8080/stream) В случае прерывания потока vlc схлопнется и продолжатся попытки нащупать поток.
Подняв 2 или сколько потребуется серверов, добавляем все их в DNS с одним именем, получив примитивную Round Robin балансировку. Также для каждой такой DNS-записи следует указать небольшое время кэширования на клиентах - TTL (в Windows для этого нужно включить Advanced-режим отображения: View - Advanced).
После этого настраиваем клиентский плеер на адрес http://общий_адрес:8080/stream
После этого настраиваем клиентский плеер на адрес http://общий_адрес:8080/stream
Подписаться на:
Сообщения (Atom)


