вторник, 15 апреля 2014 г.

Запуск jar файла как демона на примере H@H


Подготавливаем систему.

# apt-get update
# apt-get upgrade
Работаем на Debian Wheezy.
# cat /etc/debian_version
7.4
Устанавливаем OpenJDK Java runtime.
# apt-get install --no-install-recommends openjdk-7-jre
Создаём пользователя для системы, от его имени скачиваем и разворачиваем архив программы.
# useradd --create-home --shell /bin/bash hath
# passwd hath
# su - hath
$ mkdir hentai && cd hentai
$ wget http://hentaiathome.net/get/HentaiAtHome_1.2.0.zip
$ unzip HentaiAtHome_1.2.0.zip
$ ls
autostartgui.bat HentaiAtHome_1.2.0.zip HentaiAtHomeGUI.jar HentaiAtHome.jar sqlite-jdbc-3.7.2.jar

Первый старт необходимо выполнить в ручном режиме для ввода Client ID и Client Key.
$ java -jar HentaiAtHome.jar
2014-04-15T16:17:30Z [info] Started logging to data/log_out
2014-04-15T16:17:30Z [info] Started logging to data/log_err
2014-04-15T16:17:30Z [info] Hentai@Home 1.2.0 starting up
2014-04-15T16:17:30Z [info]
2014-04-15T16:17:30Z [info] Copyright (c) 2008-2012, E-Hentai.org - all rights reserved.
2014-04-15T16:17:30Z [info] This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v3 license.
2014-04-15T16:17:30Z [info]
2014-04-15T16:17:30Z [info] Before you can use this client, you will have to register it at http://hentaiathome.net/
2014-04-15T16:17:30Z [info] IMPORTANT: YOU NEED A SEPARATE IDENT FOR EACH CLIENT YOU WANT TO RUN.
2014-04-15T16:17:30Z [info] DO NOT ENTER AN IDENT THAT WAS ASSIGNED FOR A DIFFERENT CLIENT.
2014-04-15T16:17:30Z [info] After registering, enter your ID and Key below to start your client.
2014-04-15T16:17:30Z [info] (You will only have to do this once.)
Enter Client ID:
Enter Client Key:
...

На странице "Hentai@Home Clients" ждём обновление статуса на Online, после чего прерываем выполнение программы по CTRL+C.

Проверяем, что в каталоге появились новые файлы программы.
~/hentai$ ls
autostartgui.bat cache data downloaded hathdl HentaiAtHome_1.2.0.zip HentaiAtHomeGUI.jar HentaiAtHome.jar sqlite-jdbc-3.7.2.jar tmp
Завершаем сеанс пользователя hath
~/hentai$ exit
Создаём скрипт запуска программы как демона
# nano /etc/init.d/hentaiathome
Ниже приведён тест скрипта:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          hentaiathome
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Start/stop hentaiathome client
### END INIT INFO

NAME=hentaiathome
DAEMON=/usr/bin/java
USER=hath
DIR="/home/hath/hentai"
STOP_TIMEOUT=60
OPTIONS="-jar HentaiAtHome.jar "

export PATH="${PATH:+$PATH:}/sbin"

#[ -x $DAEMON ] || exit 0
. /lib/lsb/init-functions

start_daemon () {
        start-stop-daemon --start \
        --chuid $USER \
    --chdir $DIR \
    --background \
        --exec $DAEMON -- $OPTIONS || log_end_msg $?
        log_end_msg 0
}

case "$1" in
    start)
        log_daemon_msg "Starting hentaiathome client"
        start_daemon
        ;;
    stop)
        log_daemon_msg "Stopping hentaiathome client"
        start-stop-daemon --stop --quiet \
        --chdir $DIR \
            --exec $DAEMON --retry $STOP_TIMEOUT \
            --oknodo || log_end_msg $?
        log_end_msg 0
        ;;
    reload)
        log_daemon_msg "Reloading hentaiathome client"
        start-stop-daemon --stop --quiet \
        --chdir $DIR \
            --exec $DAEMON \
            --oknodo --signal 1 || log_end_msg $?
        log_end_msg 0
        ;;
    restart|force-reload)
        log_daemon_msg "Restarting hentaiathome client"
        start-stop-daemon --stop --quiet \
        --chdir $DIR \
            --exec $DAEMON --retry $STOP_TIMEOUT \
            --oknodo || log_end_msg $?
        start_daemon
        ;;
    status)
        status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
        ;;
    *)
        log_action_msg "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart|status}" || true
        exit 2
        ;;
esac

exit 0

Как вариант можно загрузить копию этого файла, выложенную на pastebin
# wget http://pastebin.com/download.php?i=1AWYwni7 -O- | tr -d '\r' >/etc/init.d/hentaiathome

При использовании команды без tr -d '\r'
# wget -O /etc/init.d/hentaiathome http://pastebin.com/download.php?i=1AWYwni7
Возможно появление ошибки вида:
# /etc/init.d/hentaiathome
-bash: /etc/init.d/hentaiathome: /bin/sh^M: bad interpreter: No such file or directory
Для её коррекции необходимо избавиться от неверных символов "возврата каретки", выполняем:
# sed -i 's/\r//' /etc/init.d/hentaiathome

Устанавливаем на файл права запуска, настраиваем запуск демона при загрузке операционной системы.
# chmod +x /etc/init.d/hentaiathome
# update-rc.d hentaiathome defaults
# service hentaiathome
[info] Usage: /etc/init.d/hentaiathome {start|stop|reload|force-reload|restart|status}.
# service hentaiathome start

Фишечки. Логи работы программы можно посмотреть здесь:
# tail -f /home/hath/hentai/data/log_out

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

Adobe Flash Player full offline installer

Flash Player offline installer скачать бесплатно без SMS
http://www.adobe.com/ru/products/flashplayer/distribution3.html

На странице представлены ссылки на актуальные версии полных установочных пакетов Adobe Flash Player под все поддерживаемые операционные системы.

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

Сброс btrfs scrub

ПК с тестовым разделом с ФС btrfs был выключен (причём штатно через halt, а не внезапным прекращением подачи электричества) во время запущенного процесса btrfs scrub. После включения компьютера повторно запустить btrfs scrub не удаётся.

Симптомы:

# btrfs scrub start /home
ERROR: scrub is already running.
To cancel use 'btrfs scrub cancel /home'.
To see the status use 'btrfs scrub status [-d] /home'.

# btrfs scrub cancel /home
ERROR: scrub cancel failed on /home: not running

# btrfs scrub status /home
scrub status for 06db95ec-33dd-4736-828e-81913cee76d6
    scrub started at Sun Apr 13 17:09:51 2014, running for 1862 seconds
    total bytes scrubbed: 402.19GiB with 0 errors
Обход проблемы:
# ls -l /var/lib/btrfs/scrub.status.*
-rw------- 1 root root 812 апр 13 17:40 /var/lib/btrfs/scrub.status.06db95ec-33dd-4736-828e-81913cee76d6

# rm -rf /var/lib/btrfs/scrub.status.*

# btrfs scrub start /home
scrub started on /home, fsid 06db95ec-33dd-4736-828e-81913cee76d6 (pid=6660)
В новых версиях btrfsprogs обещают добавить опцию форсированного старта -f, но в Debian Jessie такой пока нет.

Источник:
https://bugzilla.kernel.org/show_bug.cgi?id=66151

суббота, 12 апреля 2014 г.

Настройка Lighttpd "Grade A+" SSL Server Test от ssllabs.com

Настройки lighttpd для прохождения SSL теста ssllabs.com на A+.


/etc/lighttpd/conf-enabled/10-ssl.conf
$SERVER["socket"] == "0.0.0.0:443" {
ssl.engine = "enable"
ssl.ca-file = "/etc/lighttpd/pki/ca-certs.crt"
ssl.pemfile = "/etc/lighttpd/pki/ssl.crt"
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "enable"
ssl.use-compression = "disable"
ssl.honor-cipher-order = "enable"
ssl.cipher-list = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:RC4-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK"
}

#Включение HSTS
server.modules += ( "mod_setenv" )
$HTTP["host"] == "domain.net" {
$HTTP["scheme"] == "https" {
setenv.add-response-header = ("Strict-Transport-Security" => "max-age=31536000; includeSubDomains")
}
}
Информация по HSTS доступна на Wikipedia.

Перенос строк и другие настройки текстового редактора nano

Внести изменения в /etc/nanorc

#Разрешить перенос длинных строк для отображения их без прокрутки
set softwrap

#Разрешить установку курсора на позицию в тексте с помощью щелчка мышки
set mouse

#Выводить позицию курсора (строка, столбец, символ) в статусе. Без этого выводится только по CTRL+C
set const

#Уменьшим вдвое "размер тубуляции"
set tabsize 4

пятница, 11 апреля 2014 г.

Тестирование скорости доступа в Интернет из командной строки

Записка склеротика.

Используем wget для загрузки файла. Сам скаченный файл отправляем в /dev/null.

Пример работы ниже. Хорошая скорость на VPS, нравится.
 wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
--2014-04-11 15:08:47--  http://speedtest.wdc01.softlayer.com/downloads/test500.zip
Resolving speedtest.wdc01.softlayer.com (speedtest.wdc01.softlayer.com)... 208.43.102.250
Connecting to speedtest.wdc01.softlayer.com (speedtest.wdc01.softlayer.com)|208.43.102.250|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 524288000 (500M) [application/zip]
Saving to: `/dev/null'

100%[=====================================================================================================>] 524,288,000 98.1M/s   in 5.3s   

2014-04-11 15:08:52 (94.5 MB/s) - `/dev/null' saved [524288000/524288000]
Список тестов разного размера:
wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test10.zip
wget -O /dev/null http://download.thinkbroadband.com/10MB.zip

wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test100.zip
wget -O /dev/null http://download.thinkbroadband.com/100MB.zip

wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
wget -O /dev/null http://download.thinkbroadband.com/500MB.zip

wget -O /dev/null http://ipv4.download.thinkbroadband.com/1GB.zip

С поддержкой ipv6:
wget -O /dev/null http://ipv6.download.thinkbroadband.com/10MB.zip

wget -O /dev/null http://ipv6.download.thinkbroadband.com/100MB.zip

wget -O /dev/null http://ipv6.download.thinkbroadband.com/512MB.zip

wget -O /dev/null http://ipv6.download.thinkbroadband.com/1GB.zip

пятница, 7 марта 2014 г.

Список фильмов

  • В диких условиях
  • Че Гевара: Дневники мотоциклиста
  • Не зови волков
  • Простая история
  • Идущий по снегу
  • Белый рассвет
  • Молчаливая Флейта
  • Последний зверолов
  • Изгой
  • За пределами Рангуна
  • Всего одна жизнь
  • Красная палатка
  • День, когда всплыла рыба
  • Дерсу Узала
  • Вертикальный предел
  • Злой дух Ямбуя
  • Тень волка
  • Нанук с Севера
  • Быстрый бегун
  • Каньон
  • Иеремия Джонсон
  • Под северным сиянием
  • Выжить
  • На грани
  • Экспедиция на край Земли: Цена ошибки
  • Экспедиция на край Земли: Ловушка для дайвера
  • Открытые воды 2: Дрейф
  • Открытое море
  • Белый шквал
  • Новая земля
  • Нити
  • Парень и его пёс
  • Почтальон
  • Побег из Гулага