Обзор за неделю [2009-9]

Обзор интересного за прошедшую неделю

What uses your resources? [Что использует ресурсы вашей системы] // Tips4Linux.com

Which are your most-used Linux commands? [Какие Линукс команды вы чаще всего используете?] // Tips4Linux.com

Backup HDD To Remote Host [Резервное копирование жёсткого диска на удалённый сервер] // txt

Замер веса всех JPG в каталоге // ЛинСовет: Полезные Советы По Linux

Imagemagick. Создать из jpeg pdf // ЛинСовет: Полезные Советы По Linux // Правда, не очень понятно зачем это делать.

Российская общественность выступает против Windows // Linux.org.ru News

Как ограничить доступ к серверу только по SFTP // ЛинСовет: Полезные Советы По Linux

LAMP на ноутбуке

LAMP — это аббревиатура от Linux Apache MySQL PHP. То есть это полноценный Web-сервер. Так как ноутбук это мобильное устройство, а в моём случае это даже не ноутбук, а нетбук MSI Wind, то я его часто ношу с собой. Иногда между встречами образуется достаточно серьёзный промежуток времени и его хочется потратить с большей продуктивностью. Поэтому я и решил установить на нетбук LAMP. Установка LAMP описана очень подробно во многих источниках, но при установке у меня было одно маленькое требование, которое нигде, где я смотрел, не описано.

Читать дальше

Обзор за неделю [2009-8]

И вновь всё самое интересное из множества моих подписок.

Алиас для показа самых больших файлов и директорий в текущей директории // ЛинСовет: Полезные Советы По Linux;

Ограничение использования CPU каким-либо процессом // ЛинСовет: Полезные Советы По Linux;

Переключение на внешний монитор из командной строки // ЛинСовет: Полезные Советы По Linux;

List only directories from the command line [Получение только списка директорий из командной строки] // Tips4Linux.com;

How many files? [Узнать сколько файлов в директории из командной строки] // Tips4Linux.com;

Записки Плюшевого Крыса: Подсветка синтаксиса в nano // RuNIX.org — планета блогов о *NIX на русском языке.

Русская консоль в Ubuntu без доп. пакетов

Многие сталкивались с проблемой неправильного отображения русского языка в консоли Ubuntu.

Перепробовав несколько вариантов с форума я пришёл к наиболее приемлемому и простому.
Узнать

Установка GRUB

GRUB У меня есть старый компьютер на котором установлено два жёстких диска. Это компьютер используется для экспериментов и хранения старых данных. Несколько недель назад у меня появилась потребность кое-что отсканировать, поэтому я установил на один из жёстких дисков (hd0) Windows XP. Ставил на hd0 так как Ubuntu находилась на hd1, а устанавливать две ОС на один физический диск мне не очень хотелось. Только после установки до меня дошло что загрузчик от Ubuntu находился на том HDD на который я установил Windows, а следовательно программа установки Windows его удалила. Была, конечно, идея переустановить Ubuntu, но этого делать не хотелось, так как Ubuntu уже была настроена так как мне нужно, а настраивать её заново очень не хотелось.

В результате поиска в Интернете я нашёл очень простое, быстрое и элегантное решение:

  1. Загружаемся с Live CD;
  2. Монтируем жёсткий диск в произвольную папку (я примонтировал в /media/disk);
  3. Выполняем
    sudo grub-install /dev/hda --recheck --root-directory=/media/disk

    Опция recheck используется для того чтобы проверить корректность файла /boot/grub/device.map и если что исправить его.

После перезагрузки и извлечения LiveCD, я снова смог загрузится в установленную Ubuntu.

Обзор за неделю [2009-7]

Продолжаю вести обзоры интересных статей за неделю.

/bin/cat: /sys/block/hda/dev: No such file or directory // ЛинСовет: Полезные Советы По Linux // Статья повествует о том как человек поменял на сервере, находящегося под управлением Debian, материнскую плату, процессор и память, а потом заставил его работать без переустановки системы.

Full Circle Magazine на русском // Хабрахабр // На мой взгляд, там есть что можно почитать, но этого очень мало.

Смотрим видео в терминале // ЛинСовет: Полезные Советы По Linux // Теперь и на сервере можно смотреть видео.

JavaScript в Firefox/Wine работает быстрее чем в Firefox/Linux // Linux.org.ru News

Раскладка Ильи Бирмана

Сегодня один мой знакомый дизайнер рассказал об очень полезной, на мой взгляд, вещи — раскладка Ильи Бирмана. Это типографская раскладка которая позволят очень удобно печатать символы типа: « » [ ] { } € ® ™ © ↓ ↑ ← → ∞ ² ½ ³ ⅓ ¼ ‰ и так далее. Все эти символы я ввёл не переключаясь с русской раскладки клавиатуры и не прибегая к другим программам, правда удобно?

На сайте есть бинарные пакеты для Windows и Mac, а для Linux есть файлы и инструкции (аж два варианта: xkb-unicode и Rukbi ) о том что с ними нужно делать.

Я выбрал Ruckbi, так как описание по её установке мне больше понравилось.

Единственное, что я бы добавил к этому описанию, так это от что нужно удалить из списка раскладок обычную русскую раскладку.

Теперь не придётся переключаться в IDE на английский для того чтобы ввести „[“, „]“, „{“, „}“! А ещё не нужно пользоваться OpenOffice.org или copypastecharacter.com для получения „«“ и „»“! Класс!

RTorrent – my way

В своей первой заметке в этом блоге я решил написать именно про RTorrent — клиент p2p сетей работающих по протоколу bitorrent. Потратив солидное количество времени на поиск нужных мне настроек и перерыв десятки мануалов хотелось бы облегчить жизнь идущим за мной энтузиастам.

Требования были следующие:
— автоматическая загрузка клиента при старте системы
— работа в фоновом режиме
— распределение контента по различным категориям(папкам) после окончания загрузки.
— информативный интерфейс(не графический)
— быстрый графический интерфейс
— наличие пакета в репозитарии Ubuntu
— умеренный расход оперативной памяти и т.д.

По всем этим параметрам подходил RTorrent. Поскольку я не очень большой любитель компилировать софт из исходников и не до конца избавился от microsoft-зависимости, выбрал самый простой путь — ставить из репозитория.
Нагуглил несколько сносных инструкций для установки. Инструкция №1, инструкция №2.

Если рассматривать весь процесс по шагам то выходит следующее:
Шаг 1. — установка

Ставим необходимые пакеты.

sudo apt-get install rtorrent screen apache2 php5-cgi php5-common php5-sqlite php5-xmlrpc sqlite unzip php5-curl

В случае использования только консольной версии без веб интерфейса необходимо установить только пакеты rtorrent, screen и все затребованные зависимостями пакеты.

Шаг 2. — конфигурация Rtorrent
В домашней директории пользователя необходимо создать файл конфигурации с названием .rtorrent.rc и определить там все необходимые параметры.
Мой файл конфигурации выглядит так:
(Все тонкости будуь описаны позже)

# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
min_peers = 1
max_peers = 1000

# Same as above but for seeding completed torrents (-1 = same as downloading)
min_peers_seed = 1
max_peers_seed = 100

# Maximum number of simultanious uploads per torrent.
#max_uploads = 15

# Global upload and download rate in KiB. «0» for unlimited.
download_rate = 800
upload_rate = 500

# Default directory to save the downloaded torrents.
directory = /media/raid/download/all/

# Default session directory. Make sure you don’t run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = /media/raid/rtorrent/

# Watch a directory for new to rrents, and stop those that have been
# deleted.
schedule=watch_directory_1,5,10,»load_start=/media/raid/download/links/all/*.torrent,d.set_directory=/media/raid/download/all/,d.set_custom1=/media/raid/soft/»
schedule=watch_directory_2,5,10,»load_start=/media/raid/download/links/soft/*.torrent,d.set_directory=/media/raid/download/soft/,d.set_custom1=/media/raid/soft/»

on_finished = move_complete,»execute=mv,-u,$d.get_base_path=,$d.get_custom1= ;d.set_directory=$d.get_custom1=»

#schedule =watch_directory,5,5,load_start=/media/raid/download/links/*.torrent

schedule = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
schedule = low_diskspace,5,60,close_low_diskspace=1000M

# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.

# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,»stop_on_ratio=200,200M,2000″

# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no

# Port range to use for listening.
port_range = 6890-6900

# Start opening ports at a random position within the port range.
port_random = yes

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
check_hash = yes

# Set whetever the client should try to connect to UDP trackers.
use_udp_trackers = yes

# Alternative calls to bind and ip that should handle dynamic ip’s.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
encryption = allow_incoming,try_outgoing,enable_retry

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to «disable» (completely disable DHT), «off» (do not start DHT),
# «auto» (start and stop DHT as needed), or «on» (start DHT immediately).
# The default is «off». For DHT to work, a session directory must be defined.
#
dht = auto

# UDP port to use for DHT.
#
dht_port = 6901

# Enable peer exchange (for torrents not marked private)
#
peer_exchange = yes

#
# Do not modify the following parameters unless you know what you’re doing.
#

# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10

# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100

# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10
scgi_port = localhost:5000
safe_sync = yes

Шаг 3. — конфигурация screen
Для непрерывной работы Rtorrenta нам потребуется использовать консольный оконный менеджер — SCREEN

Для загрузки rtorrenta при старте системы я использовал скрипт с сайта разработчика.
Мне пришлось его немного подправить(правил ключи для запуска screen), в моём варианте скрипт выглядит так:

#!/bin/sh
#############
######
#############
# This script depends on screen.
# For the stop function to work, you must set an
# explicit session directory using ABSOLUTE paths (no, ~ is not absolute) in your rtorrent.rc.
# If you typically just start rtorrent with just «rtorrent» on the
# command line, all you need to change is the «user» option.
# Attach to the screen session as your user with
# «screen -dr rtorrent». Change «rtorrent» with srnname option.
# Licensed under the GPLv2 by lostnihilist: lostnihilist _at_ gmail _dot_ com
##############
######
##############

#######################
##Start Configuration##
#######################
# You can specify your configuration in a different file
# (so that it is saved with upgrades, saved in your home directory,
# or whateve reason you want to)
# by commenting out/deleting the configuration lines and placing them
# in a text file (say /home/user/.rtorrent.init.conf) exactly as you would
# have written them here (you can leave the comments if you desire
# and then uncommenting the following line correcting the path/filename
# for the one you used. note the space after the «.».
# . /etc/rtorrent.init.conf

#Do not put a space on either side of the equal signs e.g.
# user = user
# will not work
# system user to run as
user=»vini»

# the system group to run as, not implemented, see d_start for beginning implementation
# group=`id -ng «$user»`

# the full path to the filename where you store your rtorrent configuration
config=»`su -c ‘echo $HOME’ $user`/.rtorrent.rc»

# set of options to run with
options=»»

# default directory for screen, needs to be an absolute path
base=»`su -c ‘echo $HOME’ $user`»

# name of screen session
srnname=»rtorrent»

# file to log to (makes for easier debugging if something goes wrong)
logfile=»/var/log/rtorrentInit.log»
#######################
###END CONFIGURATION###
#######################
PATH=/usr/bin:/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
DESC=»rtorrent»
NAME=rtorrent
DAEMON=$NAME
SCRIPTNAME=/etc/init.d/$NAME

checkcnfg() {
exists=0
for i in `echo «$PATH» | tr ‘:’ ‘\n’` ; do
if [ -f $i/$NAME ] ; then
exists=1
break
fi
done
if [ $exists -eq 0 ] ; then
echo «cannot find rtorrent binary in PATH $PATH» | tee -a «$logfile» >&2
exit 3
fi
if ! [ -r «${config}» ] ; then
echo «cannot find readable config ${config}. check that it is there and permissions are appropriat$
exit 3
fi
session=`getsession «$config»`
if ! [ -d «${session}» ] ; then
echo «cannot find readable session directory ${session} from config ${config}. check permissions» $
exit 3
fi
}

d_start() {
[ -d «${base}» ] && cd «${base}»
stty stop undef && stty start undef
su -c «screen -ls | grep -sq «\.${srnname}[[:space:]]» » ${user} || su -c «screen -dmUSfa ${srnname} 2>&$
# this works for the screen command, but starting rtorrent below adopts screen session gid
# even if it is not the screen session we started (e.g. running under an undesirable gid
#su -c «screen -ls | grep -sq «\.${srnname}[[:space:]]» » ${user} || su -c «sg \»$group\» -c \»screen -f$
su -c «screen -S «${srnname}» -X screen rtorrent ${options} 2>&1 1>/dev/null» ${user} | tee -a «$logfile$
}

d_stop() {
session=`getsession «$config»`
if ! [ -s ${session}/rtorrent.lock ] ; then
return
fi
pid=`cat ${session}/rtorrent.lock | awk -F: ‘{print($2)}’ | sed «s/[^0-9]//g»`
if ps -A | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn’t belong to another process
kill -s INT ${pid}
fi
}

getsession() {
session=`cat «$1» | grep «^[[:space:]]*session[[:space:]]*=» | sed «s/^[[:space:]]*session[[:space:]]*$
echo $session
}

checkcnfg

case «$1» in
start)
echo -n «Starting $DESC: $NAME»
d_start
echo «.»
;;
stop)
echo -n «Stopping $DESC: $NAME»
d_stop
echo «.»
;;
restart|force-reload)
echo -n «Restarting $DESC: $NAME»
d_stop
sleep 1
d_start
echo «.»
;;
*)
echo «Usage: $SCRIPTNAME {start|stop|restart|force-reload}» >&2
exit 1
;;
esac

exit 0

Следующие 2 шага будут дописаны позже!

Шаг 4. — прикручивание веб интерфейса

Шаг 5. — оживление rtorrent после падения по CRON

Обзор общих записей [2009-6]

У общих записей из Google Reader есть один очень негативный момент — по ним невозможно искать! А в них оседает очень много интересной информации, которую тупо перепечатывать в блог не очень хочется. После очередного поиска в общих записях нужной мне статьи я решил, что было бы удобно сделать в блоге обзор того что за какой-то период времени в них попало. Думаю, что в качестве периода лучше всего выбрать неделю. Итак, встречайте первый обзор моих общих записей из Google Reader.

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

F10 и консоль в Ubuntu

Многие при работе в консоли сталкивались с тем, что функциональная клавиша F10 не работает. Для себя эту проблему я решил довольно просто

Открыв консоль стандартным способом Приложения-Стандартные-Терминал.
Открываем меню Edit-Keyboard Shortcuts
Окно терминала
и там отмечаем пункт Disable menu shortcut key

Окно терминала

После всего проделанного пользоваться mc стало гораздо удобнее!

Материалы распространяются под лицензией Creative Commons: Атрибуция — Некоммерческое использование — С сохранением условий (Attribution-NonCommercial-ShareAlike) 3.0 Unported.
Рейтинг@Mail.ru