Архив

Архив раздела ‘FAQ’

Как запустить программу в Linux которая будет работать после выхода

1) Запустить программу «myprogram»
2) Нажать Ctrl+Z
~~~ [1]+ Stopped myprogram
3) Ввести команду (после процента номер который указан выше [1])
~~~ disown -h %1
4) Ввести (тот же номер):
~~~ bg 1
5) На экране появится [1]+ myprogram &

После выполненных действий можно смело выходить и программа продолжит работать.

Второй метод:
1) Создать новый screen и запустить программу там:
screen -S anyname

word2vec — бинарники под Windows x64

13 ноября 2015 Нет комментариев

Пришлось тут собрать себе word2vec под Windows на 64-х битную платформу. Столкнулся с рядом проблем, поскольку код писался под Linux. Было пару функций POSIX которые пришлось добавлять и Pthreads под Windows искать. Так что если кто-то не хочет мучиться бинарники под Windows (64 бит) в архиве (~350KB).

mysqladmin и Plesk

27 августа 2015 Нет комментариев

Дефолтный вызов не работет. Надо делать так:

mysqladmin -uadmin -p’cat /etc/psa/.psa.shadow’ pr

Categories: FAQ Tags:

Интернет во Франции (сентябрь 2014)

6 сентября 2014 Нет комментариев

Одно из самых выгодных предложений по мобильному интернету от Lebara Mobile. Стоимость СИМки – 5 Евро, далее за 15 Евро покупаете пакет на 5 Гбайт. После покупки СИМки требуется через сайт или по телефону поддержки активировать её, указав свои данные ФИО и адрес. Мы смогли это сделать даже по русскому паспорту по телефону, просто продиктовав их на слух. Далее после покупки пакета за 15 Евро активируете его по телефону как: *133*код_с_чека*# «вызов». Появится сообщение что у вас теперь 5000 Мбайт интернета. Далее потребуется получить настройки шлюза в интернет. Я это сделал через их сайт здесь: http://lebarafr.tweakker.com/choose — выбираете свой телефон и приходит СМС с настройками. Итого 5 Гбайт инета за 20 Евро. Купить саму симку от Lebara можно в многочисленных магазинах по продаже сигарет.

Дополнительная инфа по другим операторам собрана здесь: http://prepaidwithdata.wikia.com/wiki/France (частично устаревшая).

Categories: FAQ, Путешествия Tags:

Мобильный интернет на Канарах (Тенерифе, Испания, 2014 год)

25 января 2014 3 комментария

Перед поездкой на Тенерифе озаботился вопросом, за сколько можно купить СИМку для интернета, что бы вставить её в роутер и не знать проблем. Сайты основных кампаний показывали привлекательные тарифы и даже доступность LTE. Но по приезду оказалось что не все так просто. На острове работает 3 больших мобильных оператора: Vodafone, Orange и MoviStar. Однако как выяснилось все привлекательные тарифы предлагаются только на контрактной основе, то есть на длительный срок и при покупке смартфона. Для туристов все иначе. LTE тоже нет, только 3G. В итоге мы остановились на двух наиболее удобных тарифах:

  1. Movistar — платишь 20 Евро, далее по 2 евро в день. Будет выделено 500 Мб траффика в день. Выгодно если тратите много трафика и приехали на долгое время.
  2. Vodafone — 20 Евро стоит симка с 1.5 Гбайта траффика и возможно нам повезло но дали ещё 1.5 Гбайта в подарок. Итого 3 Гбайта за 20 Евро. В итоге остановились на этом тарифе.

В Orange цена была хуже чем в Vodafone, если не ошибаюсь 2 Гбайта за 34 Евро. Сравнить цены всех этих операторов можно сходив, например, в торговый центр GranSur (в городе Adeje, Torviskas), где все три оператора сидят на одном пятачке.

Как получить значение цифр с кнопок социальных сетей?

15 августа 2013 Нет комментариев

В данной заметке я расскажу как получить цифры с кнопок 6 популярных социальных сетей: Вконтакте, Facebook, Twitter, Google+, Мой мир (Mail.ru) и Одноклассники. Всё ниже написанное действительно на август 2013 года. Под катом приведен пример кода на PHP для получения данных в виде цифры.

Допустим у вас есть URL-странички, для которой вы хотите получить количество «лайков» в соц. сетях.
Для примера будем использовать URL: http://amvnews.ru/index.php?go=Files&in=view&id=3248
Так же вам понадобится закодированное значение Encoded URL: http%3A%2F%2Famvnews.ru%2Findex.php%3Fgo%3DFiles%26in%3Dview%26id%3D3248 — в PHP для его получения используется функция urlencode($url);

Список URL по которым можно получить лайки для заданных соцсетей

1) Вконтакте (vk.com)
URL: http://vk.com/share.php?act=count&index=1&url=[Encoded URL]
Пример: http://vk.com/share.php?act=count&index=1&url=http%3A%2F%2Famvnews.ru%2Findex.php%3Fgo%3DFiles%26in%3Dview%26id%3D3248
Требуемое значение: второй параметр у функции VK.Share.count(1, [нужная циферка]);

2) Facebook
URL: http://graph.facebook.com/?ids=[Encoded URL]
Пример: http://graph.facebook.com/?ids=http%3A%2F%2Famvnews.ru%2Findex.php%3Fgo%3DFiles%26in%3Dview%26id%3D3248
Требуемое значение: цифра напротив «shares»

3) Twitter
URL: http://urls.api.twitter.com/1/urls/count.json?url=[Encoded URL]
Пример: http://urls.api.twitter.com/1/urls/count.json?url=http%3A%2F%2Famvnews.ru%2Findex.php%3Fgo%3DFiles%26in%3Dview%26id%3D3248
Требуемое значение: цифра напротив «count»

4) Google+
URL: https://plusone.google.com/_/+1/fastbutton?url=[Encoded URL]
Пример: https://plusone.google.com/_/+1/fastbutton?url=http%3A%2F%2Famvnews.ru%2Findex.php%3Fgo%3DFiles%26in%3Dview%26id%3D3248
Требуемое значение: у Google все немного сложнее, так как у него нет готово API для получения цифры. Значение ищите в области кода
<script type="text/javascript">window.__SSR = {c: [нужная циферка] ,a:'bubble' .

5) Мой мир (Mail.ru)
URL: http://connect.mail.ru/share_count?func=mrc__shareInit&url_list=[Encoded URL]
Пример: http://connect.mail.ru/share_count?func=mrc__shareInit&url_list=http%3A%2F%2Famvnews.ru%2Findex.php%3Fgo%3DFiles%26in%3Dview%26id%3D3248
Требуемое значение: цифра напротив «shares»

6) Одноклассники
URL: http://www.odnoklassniki.ru/dk?st.cmd=extOneClickLike&uid=odklocs0&ref=[Encoded URL]
Пример: http://www.odnoklassniki.ru/dk?st.cmd=extOneClickLike&uid=odklocs0&ref=http%3A%2F%2Famvnews.ru%2Findex.php%3Fgo%3DFiles%26in%3Dview%26id%3D3248
Требуемое значение: второй параметр функции ODKL.updateCountOC('odklocs0','[нужная циферка]','0','0');
Читать далее…

Список баз данных с размером

В консоли на сервере (из под root) набираете: mysql, а там:

SELECT table_schema "Data Base Name", sum( data_length + index_length) / 1024 / 1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema;

Выведется табличка со всеми базами данными с их размером такого вида:

Пофиксить БД

mysqlcheck -acroae --auto-repair --optimize [bdname]
mysqlcheck -acroae --auto-repair --optimize --all-databases

Categories: FAQ Tags:

Для тех кто столкнулся с вирусом km0ae9gr6m

Если у вас есть сайт и вы обнаружили, что кто-то непостижимым образом дописывает в конец файлов JS или PHP кусок javascript’а с тегами /*km0ae9gr6m*/…/*qhk6sa6g1c*/, то источник вашей проблемы это уязвимость в Plesk-панели! Злоумышленник меняет файлы через FileManager встроенный в Плеск. Вы можете убедиться в этом посмотрев ActionLog, где будет много разных заходов в Plesk с разных IP. У меня это выглядело как-то так:

85.221.166.199 user [2012-06-21 17:32:34] 'CP User Login' ('Contact Name': '' => 'name')
188.134.45.0 user [2012-06-22 20:41:18] 'CP User Login' ('Contact Name': '' => 'name')
85.117.53.120 user [2012-06-24 02:53:27] 'CP User Login' ('Contact Name': '' => 'name')
203.179.95.45 user [2012-06-27 05:36:37] 'CP User Login' ('Contact Name': '' => 'name')
46.121.12.88 user [2012-06-27 12:20:59] 'CP User Login' ('Contact Name': '' => 'name')
188.134.45.0 user [2012-06-28 03:10:12] 'CP User Login' ('Contact Name': '' => 'name')
58.186.192.176 user [2012-06-30 15:00:53] 'CP User Login' ('Contact Name': '' => 'name')
182.186.199.223 user [2012-06-30 15:00:53] 'CP User Login' ('Contact Name': '' => 'name')
119.155.16.97 user [2012-06-30 15:00:53] 'CP User Login' ('Contact Name': '' => 'name')
111.95.140.224 user [2012-06-30 15:00:53] 'CP User Login' ('Contact Name': '' => 'name')

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

Что делать?
1) Обновить панель до последней версии включая все апдейты.
2) Поменять все пароли для всех пользователей панели включая админа.
3) Найти все зараженные файлы:
cd /var/www/vhosts
grep -rl --include=*.{php,js,html,htm} "km0ae9gr6m" *

4) Пофиксить их
5) Можно также проверить файлы которые менялись за последние несколько суток:
find ./ -name '*.*' -mtime -7 -print

На всякий случай некоторое время после, следить кто именно заходит через Plesk на ваш сайт. Полезные ссылки (на инглише):
http://blog.unmaskparasites.com/2012/06/22/runforestrun-and-pseudo-random-domains/#comment-19257
http://forum.parallels.com/showthread.php?p=630300#post630300

Посмотреть список измененных файлов за последние сутки

Иногда при поиске подозрительных вещей полезно посмотреть список измененных файлов за некоторое время (например, за последние сутки). Под Linux сделать это можно следующей командой:
find ./ -mtime -1 -print — поиск в текущей директории файлов измененных за последние сутки
find ./ -mtime -7 -print — поиск в текущей директории файлов за последнюю неделю
find ./ -name '*.js' -mtime -7 -print — поиск в текущей директории файлов за последнюю неделю с расширением js
find ../dir/ -name '*.php' -exec grep -nH keyword {} \; — найти слово keyword в содержимом php-файлов папки ../dir/ и вывести только имена файлов с номером строчки
find -maxdepth 1 -type f |wc -l — посчитать число файлов в текцщей директории
grep -r --include=*.php "super_text" ~/ — найти заданный super_text во всех PHP файлах в домашней директории
find ./ -name '*.js' -mtime -7 -printf "%u %P %t" — поиск в текущей директории файлов за последнюю неделю с расширением js и выводом в спец формате

Categories: FAQ Tags:

Найти вирусы, руткиты и трояны на Linux-сервере

В данном случае решение приводится под CentOS:
1. Скачать последнюю версию rkhunter: http://sourceforge.net/projects/rkhunter/files/
2. tar zxfv rkhunter-1.4.0.tar.gz
3. cd rkhunter
4. ./installer.sh
5. rkhunter --propupd
6. rkhunter --update
7. rkhunter --check — запуск проверки

Далее анализируем LOG: /var/log/rkhunter.log Ищем следующие строчки:

[17:12:14] Rootkit checks...
[17:12:14] Rootkits checked : 315
[17:12:14] Possible rootkits: 2
[17:12:14] Rootkit names : SHV4 Rootkit, SHV5 Rootkit

Далее ищем рецепт лечения.

Categories: FAQ Tags:

Просмотр нужных процессов под Linux

Посмотреть процессы с заданным именем:
ps ax | grep [h]ttpd
Посмотреть количество процессов с заданным именем:
ps ax | grep -c [h]ttpd

Categories: FAQ Tags:

Как записать видео с сайта webvybory2012.ru

На данный момент предложено два варианта.

Номер 1: С использованием средства захвата экрана, как пример FastStone Capture.
http://freehabr.ru/blog/2802.html

Номер 2: Запись видео напрямую из потока. Более правильно и качественно, но более сложно для реализации:
http://habrahabr.ru/blogs/e_gov/139292/

Categories: FAQ Tags:

Использование NeroAAC для кодирования под Linux

26 февраля 2012 Нет комментариев

Те, кто сталкивался с кодированием видео для он-лайна на своих серверах под Linux наверняка в курсе, что средства FFMPEG для кодирования звука в AAC, а именно библиотека libfaac дает ужасное качество на низких битрейтах. Работа над ней была заброшена несколько лет назад и она не поддерживает профиль HE. Ища выход из сложившейся ситуации оказалось, что все не так плохо и для этих целей можно использовать neroAAC (само собой только для личных целей, читайте лицензию ^_^), который дает потрясающие результаты даже для битрейтов вроде 32кбпс.

1) Качаем последнюю версию отсюда: http://www.nero.com/eng/release-notes-nerodigital-nero-aac-codec.html
2) Находим в архиве linux/neroAacEnc и копируем на сервер
3) Устанавливаем: install –D –m755 linux/neroAacEnc /usr/bin/

Предположим раньше мы кодировали так:
/usr/bin/ffmpeg -i "input.mp4" -pass 1 -vcodec libx264 –vpre hq -f mp4 -b 400k -bt 400k -an "tmp.mp4"
/usr/bin/ffmpeg -i "input.mp4" -pass 2 -vcodec libx264 –vpre hq -f mp4 -b 400k -bt 400k -acodec libfaac -ab 128k -ac 2 -async 1 "tmp2.mp4"
/usr/bin/qt-faststart "tmp2.mp4" "out.mp4"

Теперь это будет выглядеть так:
/usr/bin/ffmpeg -i "input.mp4" -pass 1 -vcodec libx264 –vpre hq -f mp4 -b 400k -bt 400k -an "tmp.mp4"
/usr/bin/ffmpeg -i "input.mp4" -pass 2 -vcodec libx264 –vpre hq -f mp4 -b 400k -bt 400k -an "tmp2.mp4"
/usr/bin/ffmpeg -i "input.mp4" -acodec pcm_s16le -vn "audio1.wav"
/usr/bin/neroAacEnc -br 65536 -2pass -if "audio1.wav" -of "audio1.aac"
/usr/bin/ffmpeg -i "input.mp4" -i "audio1.aac" -acodec copy -vcodec copy -f mp4 "tmp3.mp4"
/usr/bin/qt-faststart "tmp3.mp4" "out.mp4"

Пояснения построчно:
1) Первый проход кодирования видео (без звука)

2) Второй проход кодирования видео (без звука)

3) Вытаскиваем звуковую дорожку из видео в несжатом виде

4) Кодируем звуковую дорожку в AAC-формат

5) Собираем звук и видео в единый файл без перекодирования

6) Переносим метаданные в начало файла

Profit!

Как поместить свой элемент поверх видео Youtube

Например, следующим образом можно убрать сточку с навигацией от Youtube:

<div>
<div style="z-index: 1">
<object width="500" height="309">
<param name="wmode" value="transparent"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/fAYMgOh1y9Q?rel=0&autoplay=1&loop=1&border=0&showinfo=0&color1=0xffffff&color2=0xffffff&disablekb=1&wmode=opaque" type="application/x-shockwave-flash" width="500" height="309" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"></embed>
</object>
</div>
<div style="position: relative; bottom: 30px; z-index: 2; background: #FFFFFF; width: 500px; height: 30px;">
</div>
</div>

На что нужно обратить внимание:
1)      wmode: transparent и параметр wmode=opaque
2)      z-index у видео Youtube должен быть меньше чем у элемента, который вы размещаете поверх
3)      position: relative; bottom: 30px; у стиля DIV, который располагается поверх видео. Число пикселей и направление сдвига выбираете сами.
Читать далее…

Categories: FAQ Tags: