2010-03-30

Как удалить все пустые директории

Делаю инкрементальный бекап в ходе которого rsync выдает множество пустых папочек - мне пустые папочки не интересны - их нужно как то удалить. В bash это можно сделать следуюшим образом:

find . -type d | tac | xargs rmdir 2> /dev/null
 

Оставить комментарий

 
  2010-03-19

Как найти все жесткие ссылки на файл

Чтобы найти все жесткие ссылки на файл, сначала выполнием ls и смотрим какой у файла inode, затем скармливаем этот inode команде find:

> ls -li filetosearch.txt

9964445 -rwxrwxrwx  2 root root 1813 Sep 25 03:06 filetosearch.txt

> find /home -xdev -inum 9964445

отсюда

 

Оставить комментарий

 
  2010-03-18

SSH без пароля

Краткая инструкция как настроить доверительные отношение между двумя машинами по ssh. Мне она нравится тем что все команды выполнятся на одной машине.

Даны два компьютера server1 и server2, пользователей будут звать user1 и user2 соответственно.

Зaходим на server1

ssh-keygen -t rsa

выбираем имя файла по умолчанию - просто жмем enter
парольная фраза должна быть пустой если вы вы не хотите чтобы вместо пароля сервера спрашивалась парольная фраза ключа

создаем папочку .ssh на удаленной машине

ssh user2@server2 mkdir -p .ssh

добавляем ключ в конец файла

cat ~/.ssh/id_rsa.pub | ssh user2@server2 'cat >> .ssh/authorized_keys'

пробуем соединиться по ssh - если все сделано правильно - пароль при этом не должен спрашиваться.

Следует учесть что папка .ssh должна иметь права доступа 700 а файл с ключами 640 если это не так - нужно поправить
на моей системе файл с ключами называется authorized_keys2 в то время как обычно он называется authorized_keys

Когда пробовал выполять команды ssh получил stdin: is not a tty — проблема разрешилась удалением .bashrc из пользовательской папки.

Upd: как оказалось позже совсем удалять .bashrs не обязательно - теряются многие полезные настройки, достаточно закоментировать несколько строчек:

# Source global definitions
#if [ -f /etc/bashrc ]; then
#       . /etc/bashrc
#fi
 
 

Оставить комментарий

 
  2010-03-15

Как поставить модуль для Perl

Понадобилось установить на сервер перловый модуль File::RSyncP. При попытке поставить методом "в лоб" получил следующее:

Insecure dependency in require while running with -T switch at /usr/lib/perl5/5.8.8/Pod/Perldoc.pm line 1634.

Однако, как оказалось метод в лоб не всегда применим для перловых модулей и лучше использовать специальный "шелл":

Запускаем шелл:
perl -MCPAN -eshell

далее набираем:
install File::RSyncP

Нужный модуль автоматически скачается и установится.

 

Оставить комментарий

 
  2010-02-22

Как изменить внешний вид полосы прокрутки

Ответ - никак. Штатными средствами это не возможно. Однако, можно реализовать свою версию полосы прокрутки.

В выходные создал несколько новых тем для z.html.Scrollbar. По моему, получилось не дурно...

 

Коментариев: 7

 
  2010-02-03

Как сохранить изображение в ico

Потребовалось сделать favicon.ico, да как назло никакого софта для сохранения в ico не оказалось под рукой, даже премного-мной-уважаемый Photoshop не умеет сохранять в ico, пришлось импровизировать.

В PHPThumb обнаружил отличную функцию для сохранения GD ресурса в ICO. На основе этой функции сделал собственный мааааааленький скриптик для преобразования графических файлов в ico. В общем, инструмент получился действительно полезный - выкладываю его для общего пользования. Здесь исходник.

Поддерживает GIF, PNG и BMP.

Upd: для этих же целей есть офигительный сервис favicon.ru

Upd2: Бесплатный конкурент Фотошопа - Gimp прекрассно умеет сохранять в ico.

Upd3: Как оказалось гимп всё-же сохряняет ico с ошибкой - получается фигня, по крайней мере в Windows версии.

 

Коментариев: 16

 
  2010-01-11

Получаем ссылку на flv с YouTube

1. Открываем страницу на YouTube, например: http://www.youtube.com/watch?v=wacfZtY5uBk&feature=popular

2. Смотрим в исходный код, находим строчку вида: "t": "vjVQa1PpcFOnL1f--Szqe1o-3F_rYFR6nvcn2HqUqv8%3D" и строчку вида: "video_id": "wacfZtY5uBk"

3. параметры "t" и video_id используем чтобы получить финальный адрес ролика: http://www.youtube.com/get_video.php?t=[t]&video_id=[video_id]
в нашем случае это: http://www.youtube.com/get_video.php?t=vjVQa1PpcFOnL1f--Szqe1o-3F_rYFR6nvcn2HqUqv8%3D&video_id=wacfZtY5uBk

Рецепт взят отсюда.

 

Оставить комментарий

 
  2010-01-03

Русская локаль на Linode

Время от времени на сервере, который хоститься на linode появлялись сообщения вида:

perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "ru_RU.UTF-8"
    are supported and installed on your system.

Оказывается, нужно просто было поставить русскую локаль - разумеется на буржуйском хостинге она не стоит по умолчанию:

> sudo apt-get install language-pack-ru

после выполнения проверяем что все ОК:

> locale -a

...
en_ZA.utf8
en_ZW.utf8
POSIX
ru_RU.utf8
ru_UA.utf8

 

Оставить комментарий

 
  2009-12-13

Как настроить уведомления о коммите в SVN

Cкачиваем на сервер PERL скрипт http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/commit-email.pl.in

Сохраняем его где-нибудь на сервере где хранится ваш репозиторий с именем commit-email.pl и выставляем ему права на выполнение. В скрипте нужно заменить %SVN_BINDIR% на реальный путь - у меня это оказалось /usr/local/bin

Переименовываем в папочке hooks вашего репозитория post-commit.tmpl в post-commit, ставим ему права на выполнение.

Внутри post-commit уже есть вызов некоего mailer.py - его надо закоментировать.

Добавляем следующую строку

/usr/bin/perl [адрес к скрипту]/commit-email.pl --from noreply@emailfrom.com -s "SVN commit notification" "$REPOS" "$REV" email@tonotify1.com email@tonotify2.com

Разумеется, нужно выставить свои адреса доставки и путь к commit-email.pl

Если все настроено правильно при очередном коммите на почту свалится уведомление о том кто когда и что изменил в вашем проекте.

 

Коментариев: 2

 
  2009-12-10

Как поставить dav_svn если у вас cpanel

Потребовалось наладить работу в SVN через Apache. Но на беду на сервере стоит cpanel а это значит что поставить mod_dav_svn например, при помощи yum не удасться - он требует наличия модуля httpd - а Апач уже является частью cpanel которая клала на всякие там rpm пакеты...

Выход один - собирать ручками и настраивать Апач вручную. К счастью добрые люди сделали хорошие инструкции на этот случай

http://gnusys.net/kb/index.php/2009/04/installing-svn-on-cpanel-with-mod_dav_svn-support/

http://www.edugeek.net/forums/nix/26101-subversion-whm-cpanel-11-a.html

и уже в финале:

http://svnbook.red-bean.com/en/1.1/ch06s04.html

здесь можно глянуть как собственно репозиторий сделать:

http://kb.mediatemple.net/questions/143/Using+Subversion

 

Оставить комментарий