Привезли наконец-то двухпортовую серверную сетевую карту Supermicro AOC-SG-i2 Dual Gigabit i82575EB. Поставил, заодно и конвертер 5.25″ ODD Bay to 3.5″ HDD Bay прикрутил. Улучшить конфигурацию можно, разве что, поставив Remote Access Card (KVM-over-IP). Ну, либо дискретную видяху, один свободный слот остался. Только кому она на сервере нужна? Нужды в HTPC при наличии Popcorn Hour особо нет, к тому же видеокарту мощностью больше 25 Вт не поставить. Да и без Remote Access Card обойдусь, наверное. Что бы еще прикрутить?
Из архива раздела:
*nix
rsync — Automated backup script (with snapshots)
Решил немного упростить задачу резервного копирования при помощи rsync и написал для этого небольшой скрипт на bash. Да, знаю, уже есть несколько решений, упрощающих backup при помощи rsync, но для того, чтобы выполнить требуемую задачу, все равно пришлось бы писать для этого свою обвязку. Потому было принято решение написать что-то свое, максимально упрощающее задачу бэкапа и сопутствующих этому действий, таких как генерация ключа для авторизации по ssh, а так же его копирование на backup-сервер.
Следующий скрипт позволяет читать список копирумых каталогов из текстового файла, применять маску исключений, задаваемую в текстовом файле, а так же опционально делать snapshot’ы, содержащие измененные, либо удаленные файлы. Тем самым, появляется возможность откатиться на старые версии файлов, случайно удаленных, к примеру, либо ошибочно измененных. При этом сохраняется полная изначальная структура каталогов, что позволяет легко найти требуемый файл. Snapshot’ы хранятся в каталогах со следующей маской в имени: ‘год-месяц-день.XXчXXм’. Есть возможность авто-ротации snapshot’ов.
backup.sh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | #!/bin/sh # -------------------------------------------- # Automated backup script # Written by ZeroChaos # Version 1.1, 2012-01-14 # Site: http://zerolab.net/ # -------------------------------------------- # NOTE: Exclude spaces in the variable FOLDER! # -------------------------------------------- # set -e # -------------------------------------------- begin of [Configurable settings] # Use SSH for sync export RSYNC_RSH="ssh -c arcfour -o Compression=no -x" # Remote account USER="zerochaos" HOST="zerolab.net" REMOTEHOST="${USER}@${HOST}" # Enable or disable snapshot SNAPSHOT="true" # Auto-rotate (days) SDAYS="15" # Destination folder, snapshot directory DEST_point="/home/zerochaos/www/" SDIR="snapshot" SNAPSHOT_dir="${DEST_point}${SDIR}/`date +'%Y-%m-%d.%Hh%Mm'`" # Take the list from the same folder where the script is called DIR=$(dirname "$0") LISTFOLDERS=$DIR/backup.txt LISTEXCLUDES=$DIR/exclude.txt STRDEL="# begin of [do not delete this string]" # -------------------------------------------- end of [Configurable settings] # -------------------------------------------- begin of [Do not touch this section] # If no arguments if [ $# = 0 ]; then while read FOLDER; do if [ -n "$FOLDER" ] && [ "$FOLDER" != "$STRDEL" ]; then FOLDERNAME="`echo "$FOLDER" | awk -F/ '{ print $NF }'`" # Options for rsync if [ $SNAPSHOT = "true" ]; then OPTIONS="-Sazq --bwlimit=3840 --delete --exclude-from=$LISTEXCLUDES --backup --backup-dir=$SNAPSHOT_dir/$FOLDERNAME" else OPTIONS="-Sazq --bwlimit=3840 --delete --exclude-from=$LISTEXCLUDES" fi # Sync rsync $OPTIONS "${FOLDER}/" $REMOTEHOST:"${DEST_point}${FOLDERNAME}/" fi done < $LISTFOLDERS # Snapshot auto-rotate if [ $SNAPSHOT = "true" ]; then ssh $REMOTEHOST "find ${DEST_point}${SDIR}/ -type d -mtime +$SDAYS -exec rm -r {} \;" >/dev/null 2>&1 fi fi # Generate public/private rsa key pair ssh_keygen() { ssh-keygen -t rsa -b 4096 } # Copy your public key on a remote machine ssh_copy_id() { ID_FILE="${HOME}/.ssh/id_rsa.pub" if [ x$SSH_AUTH_SOCK != x ] && ssh-add -L >/dev/null 2>&1; then GET_ID="$GET_ID ssh-add -L" fi if [ -z "`eval $GET_ID`" ] && [ -r "${ID_FILE}" ]; then GET_ID="cat ${ID_FILE}" fi if [ -z "`eval $GET_ID`" ]; then echo "$0: ERROR: No identities found" >&2 exit 1 fi { eval "$GET_ID" ; } | ssh ${REMOTEHOST%:} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1 } ME=$(basename "$0") print_help() { echo echo "Usage: $ME [OPTION...]" echo echo "Options:" echo " -g Generate public/private rsa key pair:" echo " ssh-keygen -t rsa -b 4096" echo " -c Copy your public key on a remote machine:" echo " ssh-copy-id $REMOTEHOST" echo " -h Help." echo echo "Example: $ME -gc" echo "Use both options, generate & copy." echo } while getopts ":gch" opt; do case $opt in g) ssh_keygen; ;; c) ssh_copy_id; ;; h) print_help; ;; *) echo "Wrong option"; echo "For help, use: $ME -h"; exit 1 ;; esac done # -------------------------------------------- end of [Do not touch this section] |
Сохраните содержимое в файл backup.sh и дайте права на выполнение:
1 | chmod -x backup.sh |
Положите файлы backup.txt и exclude.txt рядом со скриптом. Формат файлов представлен ниже.
backup.txt:
1 2 3 4 5 | # begin of [do not delete this string] /home/zerochaos/www/msilab.net /home/zerochaos/www/ruslab.net /home/zerochaos/www/zerolab.net # end of [do not delete this string] |
exclude.txt:
1 2 3 4 5 6 | temp/summ/checks/* temp/sess/* temp/tmp/* template_cache/* cache/* logs/* |
Параметры, поддающиеся настройке в backup.sh, вынесены в отдельную секцию и снабжены соответствующими комментариями. Для связи с backup-сервером будем использовать протокол ssh, для авторизации воспользуемся беспарольным вариантом, т.е. авторизацией по ключу. Для этого сгенерируем пару public/private rsa key. Выполним скрипт с ключом -g:
1 | backup.sh -g |
Отвечаем на заданные вопросы и переходим к копированию открытого ключа на удаленный сервер. Для этого выполним скрипт с ключом -c:
1 | backup.sh -c |
Вводим пароль пользователя, под которым будет происходить дальнейшая авторизация по ключу во время резервного копирования. Две команды выше можно объединить в одну, тогда операции будут выполнены последовательно:
1 | backup.sh -gc |
Остается добавить скрипт в cron:
1 2 | #minute hour mday month wday command 00 1 * * * sh /scripts/backup.sh |
Вот и все, настраивайте список копируемых каталогов, список исключений, конечную директорию и параметры создания снапшотов. Надеюсь этот скрипт окажется для многих полезным и сэкономит много времени и сил. Всегда делайте backup’ы.
{ Нет комментариев }
HP ProLiant MicroServer N40L with 8GB Memory
Вот она! Домашняя серверная, ужатая до минимума. Наконец-то нормальная лаба с гипервизором на борту. HP ProLiant MicroServer N40L. 8ГБ оперативы, 4 корзины под HDD + 1, полученная с помощью конвертера 5.25″ ODD Bay to 3.5″ HDD Bay. Поддерживаются диски до 4ТБ, в теории можно собрать хранилище на 20ТБ (+ еще на eSata можно один повесить, получится 24ТБ o_O). Но, думаю, ограничусь 5×3ТБ, когда диски подешевеют, а случится это, похоже, не скоро, долго еще спекулировать будут.
Nook Touch — System backup on the OS X

1. Скачайте noogie.img
2. Введите в терминале:
1 | diskutil list |
или
1 | df -h |
И ищите свою карту памяти.
3. Размонтируйте карту памяти:
1 | diskutil unmountDisk /dev/disk# |
Где # — номер устройства, не используйте при размонтировании disk#s# (где s — slice). После чего будет сообщение об успешном размонтировании всех томов карты памяти.
4. Разворачиваем образ на карту памяти:
1 | dd if=noogie.img of=/dev/rdisk# bs=1m |
5. Загрузите свой NOOK Touch со вставленной только что приготовленной картой памяти. Подключите Nook по USB к компьютеру.
6. Введите в терминале:
1 | diskutil list |
или
1 | df -h |
И ищите карту памяти Nook.
7. Размонтируйте карту памяти:
1 | diskutil unmountDisk /dev/disk# |
8. Снимите образ:
1 2 | cd ~/Desktop dd if=/dev/rdisk# of=nook_touch_backup.img bs=1m |
Где # — запомненный ранее номер устройства.
После чего получите образ с именем nook_touch_backup.img на своем рабочем столе. Удостоверьтесь, что размер образа получился 1958739968 байт.
Для восстановления из образа:
1 | dd if=nook_touch_backup.img of=/dev/rdisk# bs=1m |
{ Комментариев - 3 }
ASUS RT-N16 — покупка, обзор, впечатления
Мультифункциональный беспроводной гигабитный маршрутизатор с поддержкой стандарта 802.11n, сегодня я немного пройдусь по этому флагману линейки беспроводных роутеров от фирмы ASUS. Не буду ходить вокруг да около, но продукт был мною куплен отчасти из гиковского любопытства, отчасти на замену моему ASUS WL-500W, который проработал у меня не так уж и много, всего каких-то 9 месяцев, отработав при этом безупречно — полугодовой аптайм тому подтверждение. Надо отдать должное инженерам ASUSTeK, что-что, а сетевое оборудование они делают хорошо, потому особое внимание и было уделено новой продукции этой же фирмы. Что же привлекло меня в этой новинке? Давайте посмотрим.
iptables в двух словах. Основы и пример конфига
iptables тема объемная и с наскоку в ней разобраться рядовому пользователю непросто. Как ни крути, но без чтения полного мануала по iptables попросту не обойтись. Пример конфига конечно поможет, но немного, без знания основ трудно будет понять как работают цепочки правил. Не хотелось бы лезть в эти дебри, для этого есть хорошо переведенная документация. Так как меня не раз уже просили привести пример, я так и поступлю, пример будет с подробными комментариями, но для полного осознания что и как работает, обязательно обратитесь к манам по iptables. Впрочем, а почему нет? Небольшую вводную я все-таки дам. ;)
{ Комментариев - 2 }
3proxy — компактный, зараза, но мощный. Установка и настройка 3proxy
Захотелось мне тут с работы получить доступ к своим двум локальным сетям, доступным из дома. Простой и легковесный прокси-сервер с авторизацией — неплохое решение, на мой взгляд. 3proxy многоплатформенный компактный прокси-сервер, просто находка, ну не ставить же для таких простых задач SQUID, в самом деле. Вот об установке и настройке 3proxy на домашнем сервере мы и поговорим сегодня. Постарался сделать комментарии в конфиге как можно более подробными.
Настройка nginx от начала и до конца. Ubuntu/Debian. nginx + PHP + spawn-fcgi + XCache. Пошаговая инструкция
Apache хороший веб-сервер, распространенный, легко настраиваемый, но потребляющий немереное количество ресурсов сервера. Рано или поздно веб-мастера начинают задумываться о переходе на более легковесный веб-сервер, как правило это те, у кого высоконагруженные проекты, либо обладатели VDS/VPS серверов с ограниченными ресурсами. О настройке хорошо известного, который находится у многих на слуху, веб-сервера nginx с поддержкой PHP, я и хотел бы сегодня поговорить. Необходимо развеять миф у новичков о сложности настройки связки nginx + PHP. Не все так страшно, как многие это представляют. Сегодня я наглядно покажу начинающим администраторам, как собрать самую свежую версию nginx + spawn-fcgi.
Так как nginx не имеет своего модуля для работы с PHP, а сам PHP по умолчанию не может работать в режиме FastCGI, то для связи с nginx нужен посредник, в нашем случае посредником будет выступать spawn-fcgi.
Стоит немного пояснить, зачем это нужно. Само по себе создание процесса FastCGI прямо в веб-сервере имеет несколько недостатков: процесс FastCGI может быть запущен только локально, имеет те же права, что и веб-сервер, а так же имеет ту же base-dir, что и веб-сервер.
Как только Вы начнете использовать отдельный FastCGI сервер, чтобы снять нагрузку с веб-сервера, Вы сможете контролировать процесс FastCGI внешними программами, такими как spawn-fcgi.
spawn-fcgi используется, чтобы запустить FastCGI процесс в своём окружении, выставить ему user-id, group-id и сменить корневую директорию (chroot).
Приступим.
{ Комментариев - 9 }
Wine 1.1.5 — установка из исходников в Ubuntu
Вышел очередной релиз Wine 1.1.5, но в бинарном виде до сих пор доступна только версия 1.0. Остаётся только установить из исходников, этот мини-HowTo для совсем новичков, которые никогда не устанавливали программы из исходных кодов. Сейчас Вы увидите, что в этом нет ничего сложного, приступим.
{ Комментариев - 5 }
Настройка DNS сервера bind9. Ubuntu/Debian. Пошаговая инструкция
Сегодня мы поговорим о настройке, пожалуй, самого популярного DNS сервера bind9. Следуйте инструкции, и у Вас всё получится, в этом нет ничего сложного. В этом примере Вы увидите как формируются файлы зон и проследите процесс простой настройки, не вдаваясь при этом в подробности. Это лишь небольшое HowTo, призванное помочь Вам понять принцип работы DNS сервера. Если же Вы настраиваете DNS сервер на шлюзе в сегменте Вашей локальной сети, то в конце статьи Вы увидите как сделать Ваш DNS сервер кэширующим, что позволит существенно сократить время повторного запроса к NS серверам, ведь посещённые адреса будут браться из Вашего локального кэша. Ну что ж, приступим.




















