Unix

Після того, як я перейшов на MacBook Pro і почав забувати про Windows, захотілось більш швидшої роботи системи. Я розширив оперативку до 8Гб — прийшов час зробити щось з дисками. DVD я не користуюсь, то ж його можна викинути а через таку чудову штуку, як optibay встановити SSD. Як це зробити — є доволі багато статей в Інтернеті, знайдете.

До заміни я заміряв швидкість завантаження системи (45 сек.) та читанняя/запису:

Обновил один из серверов с Debian lenny до squeeze. Все прошло гладко, только вот на одном из старых сайтов (joomla 1.0) посыпалась куча deprecated функций PHP. Не хотел трогать код этого сайта, решил запустить для него отдельно PHP5.2 на том же сервере. Вот как это я реализовал.

Устанавливаем зависимости, скачиваем PHP5.2 и распаковываем архив:

aptitude install libxml2-dev libmysqlclient-dev libcurl4-gnutls-dev libpng12-dev libjpeg62-dev
cd /tmp
wget http://www.php.net/get/php-5.2.17.tar.gz/from/ru.php.net/mirror -O php-5.2.17.tar.gz
tar zxvf php-5.2.17.tar.gz
cd php-5.2.17

Из исходников собираем PHP5.2 и устанавливаем в /opt/php5.2:

./configure --prefix=/opt/php5.2 --with-config-file-path=/opt/php5.2 --with-mysqli --with-mysql --with-curl --with-gd --with-jpeg-dir --enable-cli --enable-fastcgi --enable-discard-path --enable-force-cgi-redirect
make
make install

Проверяем:

/opt/php5.2/bin/php -v
PHP 5.2.17 (cli) (built: Oct 22 2011 15:05:51)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

Запускать для этого сайта PHP5.2 будем через fastcgi.

aptitude install libapache2-mod-fastcgi
a2enmod cgi fastcgi actions
invoke-rc.d apache2 restart

Создадим исполняемый файл /opt/php5.2/bin/php-cgi, который содержит:

#!/bin/sh
PHPRC="/opt/php5.2/"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /opt/php5.2/bin/php-cgi

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


SetHandler application/x-httpd-php5

ScriptAlias /php52-cgi /usr/lib/cgi-bin/php52-cgi
Action application/x-httpd-php5 /php52-cgi
AddHandler application/x-httpd-php5 .php

Перезапустим Apache и проверяем что наш сайт уже использует PHP 5.2, когда все остальные 5.3

invoke-rc.d apache2 restart

Вже більше 7 років на домашньому комп’ютері у мене лише Linux. Спочатку я надавав перевагу KDE, проте пізніше повністю перейшов на GNOME. Що ж, для мене було цікавим прочитати та побачити нову версію — GNOME3. Запрошую: http://www.gnome3.org/

Обслуговую багато віддалених Linux маршрутизаторів, а проблема одна й та сама — не дає працівникам спокою соціальна мережа! 🙂 Потрібно заблокувати з використанням iptables. Найшов просте рішення:

# deny rules
$IPTABLES -A FORWARD -m string --string "odnoklassniki.ru" --algo kmp --to 65535 -j DROP
$IPTABLES -A FORWARD -m string --string "facebook.com" --algo kmp --to 65535 -j DROP
$IPTABLES -A FORWARD -m string --string "vkontakte.ru" --algo kmp --to 65535 -j DROP
$IPTABLES -A FORWARD -m string --string "vk.com" --algo kmp --to 65535 -j DROP

Усе дуже просто: необхідно заблокувати певним адресатам писати нам листи 🙂
Встановлено postfix, створюємо файл /etc/postfix/sender_access, куди заносимо наших небежених друзів:

user@bad.com REJECT

Створюємо базу:

postmap hash:sender_access

Прописуємо у конфіг main.cf

smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/sender_access

Та перезапускаємо! Тепер наш «товариш» отримає:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

me@it-sfera.com.ua
SMTP error from remote mail server after RCPT TO::
host postfix [192.168.22.13]: 554 5.7.1 :
Sender address rejected: Access denied

—— This is a copy of the message, including all the headers. ——

На своєму домашньому нетбуці я встановив останню версію Ubuntu 10.10. Чудово працює, усі пристрої розпізнав «з коробки». Також завівся і мій iPhone 3Gs, але не в режимі модема… А тут знадобилося вийти в інтернет через Utel.

Як змусити запрацювати модем? Необхідно встановити iPhone USB Ethernet Driver. У глобальній мережі Ви знайдете ось ці 3 пакунки:
dkms_2.1.1.2-3ubuntu1_all.deb
ipheth-dkms_1.0-1ubuntu1.1_all.deb
ipheth-utils_1.0-1ubuntu1.1_i386.deb

Після чого на iPhone для Utel прописуємо точку входу 3g.utel.ua і вмикаємо режим модему:

Інтернет запрацював на нетбуці, швидкість відмінна:

UPD: для мого тарифу Укртелеком заявляє швидкість 1024/256 і тішить, що саме так і є:

Сьогодні потрібно було обмежети для одного працівника (192.168.0.2) швидкість до 512 Кб/с на вхід та вихід. Допоміг ось такий скрипт:

#!/bin/bash
#
#  tc uses the following units when passed as a parameter.
#  kbps: Kilobytes per second
#  mbps: Megabytes per second
#  kbit: Kilobits per second
#  mbit: Megabits per second
#  bps: Bytes per second
#       Amounts of data can be specified in:
#       kb or k: Kilobytes
#       mb or m: Megabytes
#       mbit: Megabits
#       kbit: Kilobits
#  To get the byte figure from bits, divide the number by 8 bit
#
TC=/sbin/tc
IF=eth1                 # Interface
DNLD=512kbps        # DOWNLOAD Limit
UPLD=512kbps        # UPLOAD Limit
IP=192.168.0.2      # Host IP
U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32"

start() {

    $TC qdisc add dev $IF root handle 1: htb default 30
    $TC class add dev $IF parent 1: classid 1:1 htb rate $DNLD
    $TC class add dev $IF parent 1: classid 1:2 htb rate $UPLD
    $U32 match ip dst $IP/32 flowid 1:1
    $U32 match ip src $IP/32 flowid 1:2

}

stop() {

    $TC qdisc del dev $IF root

}

restart() {

    stop
    sleep 1
    start

}

show() {

    $TC -s qdisc ls dev $IF

}

case "$1" in

  start)

    echo -n "Starting bandwidth shaping: "
    start
    echo "done"
    ;;

  stop)

    echo -n "Stopping bandwidth shaping: "
    stop
    echo "done"
    ;;

  restart)

    echo -n "Restarting bandwidth shaping: "
    restart
    echo "done"
    ;;

  show)

    echo "Bandwidth shaping status for $IF:\n"
    show
    echo ""
    ;;

  *)

    pwd=$(pwd)
    echo "Usage: $(/usr/bin/dirname $pwd)/tc.bash {start|stop|restart|show}"
    ;;

esac

exit 0

Системный Администратор - 2010
Системный Администратор - 2010
В этом году решил тоже пройти тестирование в конкурсе «Системный Администратор — 2010». Вот результат:

Подведены итоги конкурса «Системный Администратор — 2010».

В этом году в конкурсе приняли участие более 47 тысяч системных администраторов. Если представить стадион, на котором проходили игры Чемпионата мира по футболу в этом году, то участники конкурса заняли бы все трибуны!

Из всех участников 10 процентов получили рейтинг Гуру. Еще 20% стали Профи, 18% — опытные и 22% — начинающие системные администраторы. Среднее время прохождения теста — около часа.

Поздравляем, Вы показали отличные знания, получив рейтинг Гуру!

Сьогодні необхідно було надіслати Email з прикріпленим файлом на віддаленному сервері, доступ до якого я Ваю лише по SSH. Виявилося усе банально просто:

  1. Встановити mutt (у мене він вже був встановленний)
  2. Надсилаємо з консолі
 mutt -s "TEST mail" -a /home/samael/nazia.sql.bz sss@domain.org < /tmp/email_text

де,

  • sss@domain.org — одержувач
  • /tmp/email_text — тіло повідомлення (читається з приговленого файла «/tmp/email_text»)
  • /home/samael/nazia.sql.bz — додаток (опція -a)
  • «Test mail» — тема повідомлення (опція -s)

Опишу настройку ZFS раздела на FreeBSD 8-STABLE, используя в качестве хранилища данных. Приобрел, для файлового сервера 1 Тб хард, теперь его нужно подключить к существующей системе.

ZFS — эта файловая система поддерживает большие объёмы данных изначально созданная в Sun Microsystems для операционной системы Solaris. Основное преимущество ZFS — это её полный контроль над физическими и логическими носителями. Зная, как именно расположены данные на дисках, ZFS способна обеспечить высокую скорость доступа к ним, контроль их целостности, а также минимизацию фрагментации данных. Это позволяет динамически выделять или освобождать дисковое пространство на одном или более носителях для логической файловой системы.

Для начала, прописываем загрузку модуля и старт ZFS при загрузке системы:

echo 'zfs_enable="YES"' >> /etc/rc.conf
echo 'zfs_load="YES"' >> /boot/loader.conf
kldload zfs

Теперь на новом разделе создаем ZFS файловую систему, включаем сжатие данных и указываем точку монтирования:

zpool create -m /mnt trank /dev/ad2
zfs create -o compression=gzip trank/media (включим компрессию для раздела media)
zfs set mountpoint=/mnt/media trank

Вот и все! Ничего не нужно прописывать в /etc/fstab