Unity: как добавить иконку Skype в системный трей

http://blog.ronix.net.ua/2011/11/unity-kak-dobavit-ikonku-skype-v-sistemnyj-trej.html

Конвертируем образы Nero в обычные iso

Оказывается образы nrg от небезызвестной программы Nero это те же самые iso только с лишними трехсот килобайтами в начале файла в которых свой заголовок писанный на iso. Посему конвертирование nrg образов в iso становиться тривиальной задачей.

dd bs=1k if=bla.nrg of=bla.iso skip=300

ALTLinux E: Dynamic MMap ran out of room

Добавляем в файл: /etc/apt/apt.conf строку:

APT::Cache-Limit "128388608";

Centos: обновление python до версии 2.6

Ставим нужные пакеты:

sudo yum install httpd-devel gdbm-devel mysql mysql-server mysql-devel mysql-client 
sudo yum install readline-devel sqlite-devel openssl-devel ncurses-devel
sudo yum install apr-devel gcc make autoconf mod_ssl crypto-utils
sudo yum install bzip2-devel zlib-devel libjpeg libpng libxslt gettext
Ставим новый python

cd ~/sources
wget http://www.python.org/ftp/python/2.6.4/Python-2.6.4.tgz
tar xvfz Python-2.6.4.tgz
cd Python-2.6.4/
Собираем новый python

./configure --prefix=/opt/python2.6 --with-threads --enable-shared --with-zlib=/usr/include
make 
make install
Делаем python2.6 видимый для всех. Создаем файл /etc/ld.so.conf.d/opt-python2.6.conf и пишем в него

/opt/python2.6/lib
Делаем симлинк:

ln -s /opt/python2.6/lib/libpython2.6.so /usr/lib
ln -s /opt/python2.6/lib/libpython2.6.so.1.0 /usr/lib
ldconfig -v
Делаем симлинк на новую версию python.

ln -s /opt/python2.6/bin/python /usr/bin/python2.6
Ставим setuptools

cd ~/sources
wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg
sh setuptools-0.6c11-py2.6.egg --prefix=/opt/python2.6
Дальше уже можо ставить все что необходимо уже при помощи easy_install Пример:

/opt/python2.6/bin/easy_install pip

Создание образа флешки в VirtualBox

Вкратце о шагах:

  • добавить своего юзера в группу disk через sudo vi /etc/group или sudo usermod -a -G disk username
  • перегрузиться. Именно перегрузиться — для того чтобы сработало добавление прав нужен relogin
  • создать служебный файл vmdk — sudo VBoxManage internalcommands createrawvmdk -filename freenas.vmdk -rawdisk /dev/sdc

Ну вот и все, дальше подключаем диск в виртуальную машину в VirtualBox и наслаждаемся загрузкой с флешки

Копирование данных с помощью rsync + ssh

Очень часто бывает необходимо скопировать один или несколько файлов с одного сервера на другой. Использовать FTP-клиент для этого не всегда возможно(т.к. необходимо чтобы на машине получателе был запущен и настроен FTP-сервер). Можно скопировать файлы через SSH с помощью scp, благо, SSH-сервер практически на любой UNIX-системе устанавливается и запускается штатно, но возможности данной утилиты ограничены. Он не умеет делать докачку файлов, пропускать уже имеющиеся. Поэтому, для копирования файлов между серверами лучше всего использовать утилиту rsync.

Данная утилита умеет копировать файлы через ssh протокол, умеет отслеживать как изменился файл при копировании между источником и приёмником и копирует только изменившиеся данные. Кроме этого, rsync умеет сжимать данные при копировании, что позволяет экономить трафик. Rsync очень удобная утилита для синхронизации файлов между несколькими серверами. Утилита rsync должны находиться на обоих машинах и желательно, чтобы была доступна из путей «по-умолчанию»(в противном случае, можно использовать опцию, например, –rsync-path=/usr/local/bin/rsync чтобы указать, где rsync находится на удалённой машине).

Копирование данных выполняется следующей командой:

rsync –progress -avz -e ssh user@host:/path/on/server/ /directory/path/

или

rsync –progress -avz /directory/path/ -e ssh user@host:/path/on/server/

при этом, ключ -a эквивалентен набору следующих ключей -rlptgoD -r – означает рекурсивное копирование директорий -l – копировать симлинки как симлинки -p – сохранять права доступа к файлам() -t – сохранять время (модификации) если поддерживается файловой системой -g – сохранять группу владельца файла -o – сохранять владельца файла -D – (эквивалентна опциям –devices –specials), то есть – «–devices» указывает rsync’у копировать символьные и блочные файлы на другой сервер и попробовать их пересоздать там. Эта опция игнорируется, если rsync запущен не от пользователя root. «–specials» – эта опция указывает rsync’у копировать специальные файлы, такие как именованные каналы и сокеты. -v – эта опция указывает команде rsync выдавать более подробную служебную информацию на старте. -z – эта опция указывает использовать сжатие при передаче данных. –progress — показывать ход выполнения копирования данных -e ssh – указывает rsync использовать протокол ssh.

Чтобы проверить работу rsync, может оказаться полезной опция -n – она заставляет rsync показать какие файлы и каталоги будут скопированы, но на самом деле никакого копирования не производит.

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

Скрипт для просмотра открытых табов в Firefox

Иногда требуется узнать какие вкладки оставлены открытыми в Firefox, запущенном на другой машине. Ниже представленный Perl-скрипт выводит из файла sessionstore.js список открытых табов в формате “url заголовок”: print_open_tabs.pl:

#!/usr/bin/perl

use strict;
use JSON;
binmode STDOUT, ":utf8";

  
   # Читаем содержимое в файл
   my $json_text = <>;
   # Преобразуем JSON-блок в хэш, предварительно убирая лидирующие скобки
   my $perl_scalar = from_json(substr($json_text,1,-1), {utf8 => 1});

   # Последовательно перебираем открытые окна и табы
   foreach my $windows_block (@{$perl_scalar->{windows}}){
       foreach my $tabs_block (@{$windows_block->{tabs}}){
           # выводим активные табы по их индексу
           if ($tabs_block->{"index"} > 0){
               my $idx = $tabs_block->{"index"}-1;
               print "$tabs_block->{entries}[$idx]{url}\t$tabs_block->{entries}[$idx]{title}\n";
           }
       }
   }
Пример использования:

./print_open_tabs.pl ~/.mozilla/firefox/*.default/sessionstore.js

Escape-последовательность для ssh

Многим известна escape-последовательность ^], используемая клиентом telnet для перехода в командный режим. Однако, не все знают о существовании escape-последовательности в ssh-клиенте. Если в вашем дистрибутиве она не включена по умолчанию, то это можно сделать добавив в файл конфигурации ssh_config следующую опцию:

   EscapeChar ~
Теперь вы можете:

   ~?  получить список всех команд клиента
   ~.  оборвать подвисшую сессию

Оптимизация отзывчивости десктоп-системы через использование cgroup в Linux

По заявлению одного из разработчиков из компании Red Hat добиться эффекта существенного повышения отзывчивости десктоп-систем в условиях большой фоновой нагрузки, связанной с запуском ресурсоемких задач, можно через использование cgroup без дополнительных патчей Linux-ядра (Linux-ядра). Более того утверждается что cgroup-метод работает даже лучше патча с привязкой групп планирования к TTY. Метод проверен на Linux-ядре 2.6.32. В /etc/rc.local добавляем:

   mkdir -p /dev/cgroup/cpu
   mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
   mkdir -m 0777 /dev/cgroup/cpu/user
В ~/.bashrc:

   if [ "$PS1" ] ; then  
        mkdir -m 0700 /dev/cgroup/cpu/user/$$
        echo $$ > /dev/cgroup/cpu/user/$$/tasks
   fi
Для автоматического удаления групп, в которых больше нет процессов: создать /usr/local/sbin/cgroup_clean

   #!/bin/sh
   rmdir /dev/cgroup/$1
в rc.local добавить:

   echo "1" > /dev/cgroup/cpu/user/notify_on_release
   echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
Истоник

Запуск PPTP сервера под Ubuntu