Опять же, полезный однострочник, для выковыривания списка реальных пользовательских учеток в Linux.
Как правило, в зависимости от дистрибутива, пользовательские аккаунты создаются с UID выше определнного (500, 1000). Те UID что меньше — как правило системные. Данный однострочник выводит пользовательские, с UID выше 500:
cat /etc/passwd| awk -F ":" '$3 > 500 {print $0}'
Рубрика: Linux
grep — сравнение двух файлов и вывод несовпадающих строк
Нашел архиполезную опцию grep.
Задача: сравнить два текстовых файла-списка, и выдать все строки, которые присутствуют только в одном из файлов.
Решение: grep -f ./file1 -vFx ./file2
Получаем на выходе все строки из файла file2, которых нет в file1. Строки которые есть в file1 не выводятся, соответственно.
Установка php 5.2 на CentOS6
Hello world!
Centos 6: FFMpeg — Сборка из исходников.
Нарыл отличный, рабочий и вменяемый мануал по установке FFMpeg на RHEL6 дистрибутивы.
Вот пока ссылка. Будет время — переведу и выложу.
Массовое обновление serial в зонах DNS bind.
Сегодня быстрый пост. Из серии, чтобы не забыть.
Недавно переживали перенос ДНС. Перенос был достаточно сложный, с консолидацией трех ДНС серверов в один и переезд с bind на PowerDNS. Но сейчас не об этом. Просто однострочник на sed для обновления serial в большом количестве зон bind:
sed 's/[0-9]\{10\}/2012071400/g' ./*
Данный однострочник заменит все 10-ти значные числа, на текущий номер зоны, который, напомню, по стандарту должен состоять из 10 цифр.
4 цифты — год, 2 цифры — месяц, 2 цифры день и последние две цифры номер изменения за день.
Есть подводный камень в использовании sed на FreeBSD. По умолчанию, с BSD поставляется BSD-sed, что логично, ибо BSD. Но большинство примеров в сети могут не работать или работать неправильно, ибо написаны под GNU версию SED. Решается установкой из портов gsed. Как вариант, можно попробовать изучить 2 версии sed, GNU и BSD вариант, но лично я особого смысла не вижу.
cd /usr/ports/textproc/gsed make && make install
Ну, и соответсвенно запускается
gsed 's/[0-9]\{10\}/2012071400/g' ./*
Вот такая вот заметочка…
curl — исправляем ошибку сертификата в CentOS 5
Столкнулся с проблемой. При попытке выполнить:
curl 'https://github.com'
Получил в плечи следующий вывод:
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). The default bundle is named curl-ca-bundle.crt; you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option.
Вариант обхода проблемы запуск команды с параметром -k :
curl -k 'https://github.com'
Однако при использовании изнутри скриптов, это может быть не всегда удобно. Решением является установка свежего ca-bundle сертификата с сайта curl. Для CentOS это будет выглядеть следующим образом:
mkdir /root/backup cp /etc/pki/tls/certs/ca-bundle.crt /root/backup/ curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt
Установка eAccelerator на Debian Squeeze
В репозиториях Debian отсутствует eAccelerator, по религиозным лицензионным соображениям. Официально рекомендуется использовать APC, однако eAccelerator привычнее мне и клиентосам. Будем ставить. Ниже изложен вест процесс. Читать далее
mysqldump — решение проблемы Got error: 29: File ‘./test/test.MYD’ not found (Errcode: 24) when using LOCK TABLES
Столкнулся с проблемой при бекапе сервера БД MySQL.
При попытке дампа базы с помощью:
mysqldump -Q -q -e -A -R --single-transaction --add-drop-table
постоянно получал ошибку: Got error: 29: File ‘./test/test.MYD’ not found (Errcode: 24) when using LOCK TABLES
Дальнейшее исследование вопроса показало, что ошибка возникает при большом количестве таблиц.
Решения два.
1. Увеличить значение open_files_limit
2. Добавить —single-transaction в параметры mysqldump, чтобы получить строку вида:
mysqldump -Q -q -e -A -R --single-transaction --add-drop-table
Блокировка контента через .htaccess
Периодически возникает необходимость заблокировать некоторые URL, часто из за проблем с DMCA и копирастами. Возможность убрать контент физически есть не всегда, например, если URL генерируется поисковым запросом. И вот тут на помощь приходит .htaccess
Примерный код блокировки выглядит следующим образом:
RewriteEngine On RewriteCond %{QUERY_STRING} .*illegal.* [NC] RewriteRule .* - [F,L,NC]
Таким образом, блокируются любые URL содержащие подстроку illegal.
CentOS: Установка Ruby on Rails + rvm + passenger + apache
Появилась необходимость установить RoR на CentOS. Поскольку в стандартных репозиториях CentOS ruby не первой свежести, пришлось изгаляться. Для установки нужной версии ruby будем использовать rvm (Ruby version manager). Читать далее