dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | grep -E "(image|headers)" | xargs sudo apt-get -y purge
http://tuxtweaks.com/2010/10/remove-old-kernels-in-ubuntu-with-one-command/
Веб разработка
четверг, 24 апреля 2014 г.
вторник, 29 октября 2013 г.
Конвертируем NEF в JPG
Просматривать NEF файлы на компьютере не всегда удобно, особенно это касается первичной отбраковки материала. Даже не на самом слабом компьютере каждое изображение прогружается несколько секунд перед отображением. Но нужна ли полная загрузка изображения для первичной отбраковки? Разумеется нет, и чтобы выполнять эту работу я рекомендую использовать следующий скрипт (который использует ImageMagick):
$ cat ~/nef_thumbnails
#!/bin/sh
# Andrew G. Saushkin
for i in *.NEF; do
if [ -e ${i%.*}.jpg -a x"$1" != xforce ] ; then
echo "$i -> ${i%.*}.jpg ... already exists skipping"
else
echo "$i -> ${i%.*}.jpg"
convert $i -units PixelsPerInch -density 72 -quality 100 -resize 1200 ${i%.*}.jpg
fi
done
Что дальше, брак обнаружен и удален. А удалять как правило проще всё те же файлы JPG. Как сделать так, чтобы удалив файлы JPG мы могли в дальнейшем удалить и "связанные" с ним файлы NEF? Попробуйте использовать следующий скрипт, который находит файлы NEF без файлов JPG и удаляет их также:
$ cat nef_clear
#!/bin/bash
read -p "Вы уверены, это уничтожит все файлы NEF не связанные с JPG в текущем каталоге? " -n 1 -r
echo # (optional) move to a new line
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
echo "... Отмена операции"
exit 1
fi
for i in *.NEF ; do
if [ ! -e ${i%.*}.jpg ] ; then
echo "Removing $i ..."
rm $i
fi;
done
$ cat ~/nef_thumbnails
#!/bin/sh
# Andrew G. Saushkin
for i in *.NEF; do
if [ -e ${i%.*}.jpg -a x"$1" != xforce ] ; then
echo "$i -> ${i%.*}.jpg ... already exists skipping"
else
echo "$i -> ${i%.*}.jpg"
convert $i -units PixelsPerInch -density 72 -quality 100 -resize 1200 ${i%.*}.jpg
fi
done
Обратите внимание, что скрипт без параметра force, в случае, если изображение для предпросмотра существует, то не будет создавать его вновь.
$ cat nef_clear
#!/bin/bash
read -p "Вы уверены, это уничтожит все файлы NEF не связанные с JPG в текущем каталоге? " -n 1 -r
echo # (optional) move to a new line
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
echo "... Отмена операции"
exit 1
fi
for i in *.NEF ; do
if [ ! -e ${i%.*}.jpg ] ; then
echo "Removing $i ..."
rm $i
fi;
done
среда, 23 октября 2013 г.
Сломался хром? Почини!
Сломался хром? Почини!
https://code.google.com/p/chromium/issues/detail?id=304017#c27
Как пересобрать пакет на примере гугл хрома:
https://code.google.com/p/chromium/issues/detail?id=304017#c27
Как пересобрать пакет на примере гугл хрома:
$ apt-get download google-chrome-stable $ dpkg-deb -R google-chrome-stable_30.0.1599.101-1_i386.deb 304017 $ sed -i 304017/DEBIAN/control \ -e 's/30.0.1599.101-1/30.0.1599.101-2~304017/' \ -e 's/lib32gcc1 (>= 1:4.1.1), lib32stdc++6 (>= 4.6), //' \ -e 's/libc6-i386 (>= 2.11), //' $ sudo chown root:root 304017/opt/google/chrome/chrome-sandbox $ sudo chmod 4755 304017/opt/google/chrome/chrome-sandbox $ dpkg-deb -b 304017 $ sudo dpkg -i 304017.deb
четверг, 29 августа 2013 г.
TimestampTZ в PostgreSQL
Причины использования и как правильно использовать timestamptz в PostgreSQL
http://justatheory.com/computers/databases/postgresql/use-timestamptz.html
http://justatheory.com/computers/databases/postgresql/use-timestamptz.html
воскресенье, 4 августа 2013 г.
воскресенье, 21 июля 2013 г.
Тестирование производительности БД PostgreSQL с использованием pgbench
Ниже представляю скрипт нагрузочного тестирования с использованием pgbench. Методология тестирования хорошо описана на странице http://wiki.postgresql.org/wiki/Pgbenchtesting, ниже я представил скрипт которым можно инициализировать базы с нужным скейл фактором с последующим выполнением нагрузочного тестирования на них.
Вот например диаграмма построенная на основе полученных данных для сервера (MEM 32Gb, 24 CORE, Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz (9.2.3 + perl)) с файловой системой ext4 без тюнинга, CentOS 6.4
По оси Y количество транзакций в секунду. По X скейл фактов в зависимости от размера оперативной памяти (1 - 0.1 памяти, 20 - 2 x MEM)
Вот например диаграмма построенная на основе полученных данных для сервера (MEM 32Gb, 24 CORE, Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz (9.2.3 + perl)) с файловой системой ext4 без тюнинга, CentOS 6.4
По оси Y количество транзакций в секунду. По X скейл фактов в зависимости от размера оперативной памяти (1 - 0.1 памяти, 20 - 2 x MEM)
суббота, 6 июля 2013 г.
Работа с кронтаб в CentOS
Любопытные вещи заметил при работе с кроном в CentOS.
1. Пришлось добавить пользователя в /etc/cron.allow чтобы начать пользоваться пользовательским кроном (в других дистрибутивах вроде бы по умолчанию разрешен) - может быть и к лучшему, просто особенность связанная с тем, что /etc/cron.deny нулевого размера в CentOS создается во время инсталляции, но поскольку уже давно не работал с RedHat эта особенность заставила потратить несколько минут своего времени.
2. Пришлось прописать переменные окружения в кронтаб файле (впрочем это подойдет и для другой ОС, просто в данном случае ОС была не локализована и часовой пояс отличался от моего):
LANG=ru_RU.UTF-8
LANGUAGE=ru
LC_CTYPE=ru_RU.UTF-8
MAILTO=ags@nospam.ru
CONTENT_TYPE="text/plain; charset=utf-8"
CONTENT_TRANSFER_ENCODING="8bit"
TZ=Europe/Moscow
1. Пришлось добавить пользователя в /etc/cron.allow чтобы начать пользоваться пользовательским кроном (в других дистрибутивах вроде бы по умолчанию разрешен) - может быть и к лучшему, просто особенность связанная с тем, что /etc/cron.deny нулевого размера в CentOS создается во время инсталляции, но поскольку уже давно не работал с RedHat эта особенность заставила потратить несколько минут своего времени.
2. Пришлось прописать переменные окружения в кронтаб файле (впрочем это подойдет и для другой ОС, просто в данном случае ОС была не локализована и часовой пояс отличался от моего):
LANG=ru_RU.UTF-8
LANGUAGE=ru
LC_CTYPE=ru_RU.UTF-8
MAILTO=ags@nospam.ru
CONTENT_TYPE="text/plain; charset=utf-8"
CONTENT_TRANSFER_ENCODING="8bit"
TZ=Europe/Moscow
понедельник, 24 июня 2013 г.
Устанавливаем Redmine 2.3 в CentOS 6.4 (Postgresql 9.2 backend)
В данной заметке, я расскажу, как установить Redmine 2.3 в CentOS 6.4. В качестве бэкенда будем использовать PostgreSQL (совсем не потому, что PostgreSQL лучше чем MySQL и даже не потому, что будущее MySQL несколько туманно в связи с приобретением MySQL Oracle, а просто потому, что последнее время я работаю только с PostgreSQL, поэтому лично для меня PostgreSQL ближе и роднее, вы же конечно можете использовать другой бэкенд, например MySQL).
Я предполагаю, что у вас уже установлен CentOS, в этой заметке я не останавливаюсь на настройке CentOS. Как установить последнюю версию PostgreSQL на CentOS вы можете узнать здесь
Данная заметка является модификацией статьи в которой я рассказываю как устанавливать redmine на ubuntu (кстати, там как раз, описывается установка совместно c mysql).
$ sudo mkdir -p /opt
$ cd /opt
$ sudo svn co http://svn.redmine.org/redmine/branches/2.3-stable redmine-2.3
$ sudo adduser --system -d /opt/redmine-2.3/ redmine
$ sudo chown -R root.root /opt/redmine-2.3/
$ cd redmine-2.3
$ sudo mkdir -p tmp tmp/pdf public/plugin_assets
Я предполагаю, что у вас уже установлен CentOS, в этой заметке я не останавливаюсь на настройке CentOS. Как установить последнюю версию PostgreSQL на CentOS вы можете узнать здесь
Данная заметка является модификацией статьи в которой я рассказываю как устанавливать redmine на ubuntu (кстати, там как раз, описывается установка совместно c mysql).
Подготавливаем структуру каталогов, создаем системного пользователя
$ sudo mkdir -p /opt
$ cd /opt
$ sudo svn co http://svn.redmine.org/redmine/branches/2.3-stable redmine-2.3
$ sudo adduser --system -d /opt/redmine-2.3/ redmine
$ sudo chown -R root.root /opt/redmine-2.3/
$ cd redmine-2.3
$ sudo mkdir -p tmp tmp/pdf public/plugin_assets
$ sudo chown -R redmine:redmine files log tmp public/plugin_assets
$ sudo chmod -R 755 files log tmp public/plugin_assets
Установка сервера Subversion в CentOS 6.4 используя протокол доступа WebDAV
Subversion - популярная система контроля версий исходного кода, в данной заметке я опишу, как установить subversion на сервер CentOS с доступом через WebDAV и разграничением доступа разных пользователей, к разным проектам.
Итак, выполняем последовательно:
1. Устанавливаем Subversion и Apache
yum install -y subversion mod_dav_svn
2. Модифицируем файл /etc/httpd/conf.d/subversion.conf добавляем следующую секцию:
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /etc/svn-auth-users
Require valid-user
SSLRequireSSL
AuthzSVNAccessFile /etc/subversion/authz
</Location>
Итак, выполняем последовательно:
1. Устанавливаем Subversion и Apache
yum install -y subversion mod_dav_svn
2. Модифицируем файл /etc/httpd/conf.d/subversion.conf добавляем следующую секцию:
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /etc/svn-auth-users
Require valid-user
SSLRequireSSL
AuthzSVNAccessFile /etc/subversion/authz
</Location>
Немного пояснения:
воскресенье, 23 июня 2013 г.
Настройка post-commit в Subversion для отправки почтовых сообщений в CentOS 6.4
Я надеюсь, что вы уже настроили SVN репозиторий с поддержкой WebDAV... Если нет, то самое время сделать это сейчас.
0. Подразумеваю, что настраивать будем для репозитория javacation, который находится в каталоге /var/www/svn/javacation
1. Забираем уже готовые скрипты, которые любезно предоставлены Apache Foundation
cd /var/www/svn/javacation
sudo svn co http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/
2. Скопируем файл конфигурации в каталог conf нашего репозитория (только для того, чтобы файлы конфигурации находились в одном месте, на самом деле его фактическое расположение может быть другое и даже более того, если вы используете один и тотже файл конфигурации для разных проектов, то возможно лучшим местом для этого файла окажется путь /etc/subversion)
sudo cp hook-scripts/mailer/mailer.conf.example ./conf/mailer.conf
3. Отредактируйте файл конфигурации mailer.conf
Снимите комментарий с параметра mail_command, в случае, если у вас настроен sendmail
mail_command = /usr/sbin/sendmail
или корректно настройте SMTP (smtp_hostname, smtp_username, smtp_password), в случае, если локальный MTA не настроен
Отредактируйте поля from_addr, to_addr и commit_subject_prefix:
from_addr = svn@javacation.ru
to_addr = ags@nospam.ru
commit_subject_prefix = [svn-%(repos_basename)s]
4. На этом этапе вы можете протестировать работоспособность скрипта post-commit например такой командой (где 10 это номер ревизии):
/var/www/svn/javacation/hook-scripts/mailer/mailer.py \
commit "/var/www/svn/javacation/" "10" /var/www/svn/javacation/conf/mailer.conf
Подписаться на:
Сообщения (Atom)