Общие сведения о работе в терминале. (admin posted on февраля 29, 2012 )

Выключение и перезагрузка.
Управление задачами (процессами).

Общие сведения о работе в терминале.
&nbsp
&nbsp
Когда вы регистрируетесь в системе Linux, выполняется проверка имени
пользователя и пароля, определяется набор переменных окружения и запускается
интерпретатор команд, который чаще называют оболочкой. В большинстве
дистрибутивов Linux по умолчанию применяются оболочки sh
или bash. Существуют и другие оболочки, однако
они менее распространены, но при необходимости можно легко сменить оболочку
по умолчанию, или запускать ее из командной строки по мере надобности.
&nbsp
&nbsp
Команда Linux — это строка символов из имени команды и аргументов,
разделенных пробелами. Аргументы предоставляют команде дополнительные
параметры, определяющие ее поведение. Например, команда
echo 12345
выведет на экран строку символов 12345, введенных в качестве аргумента команды.
Команды, являющиеся частью оболочки называются встроенными. Естественно,
они могут отличаться для различных оболочек. Но есть и команды, не зависящие
от используемой оболочки, и представляющие собой отдельные программные модули,
стандартные для выбранного вами дистрибутива Linux. В качестве аргументов командам
передаются ключи или опции, состоящие из тире и одного или нескольких
символов. Пример такой команды:
ls -l
При использовании нескольких ключей, их можно объединить. Ниже приведенные варианты
команд идентичны :
ls -l -d
ls -ld
&nbsp &nbsp
При работе в командной строке Linux необходимо придерживаться некоторых
правил.
&nbsp
&nbsp
Во-первых, не забывайте, что строчные и
заглавные буквы для Linux — это разные символы. В Windows каталог
TEMP и каталог Temp — это один и тот же каталог, в Linux — это два разных.
Это же касается команд, их ключей, имен пользователей ,паролей и т.п.
Консольные команды
ps -a
и
ps -A
выдадут вам разные результаты.
&nbsp
&nbsp
Во-вторых, практически по всем командам можно получить справку, задав в командной
строке ключ —help.
ps —help
&nbsp
&nbsp
&nbsp
выдаст вам справку по команде ps ( работа со списком процессов).
&nbsp
По многим командам можно получить дополнительную справку при использовании
man — встроенной справочной системы.
man ps &nbsp
&nbsp
- выдаст подробную информацию по команде ps
&nbsp
&nbsp
В-третьих, результат некоторых команд зависит от ваших прав в системе.
Для получения прав root используйте команду su.
Эта команда позволяет
сменить текущего пользователя. Если пользователь не задан, то подразумевается
root.
&nbsp
Для начинающего линуксоида (и не только
начинающего) большим подспорьем может стать и файловый менеджер mc
, очень похожий на FAR или Norton Commander.
Сейчас он включается практически во все дистрибутивы Linux, хотя по умолчанию
не всегда устанавливается. Очень
рекомендую установить.
Как управлять выводом на экран.
&nbsp
Для просмотра текста, ушедшего за пределы видимости экрана используются
комбинации клавиш SHIFT и
PAGE UP
или PAGE DOWN (в зависимости
от направления просмотра).
Для приостановки вывода на экран -
CTRL-S, отмена приостановки — CTRL-Q
&nbspДля вывода большого объема текста на экран в постраничном режиме
используется команда less, в цепочке с основной
командой. Объясню на примере. Пусть у нас есть
текстовый файл mytxt размером на 10 экранов. Для вывода текста на экран
(стандартный вывод) можно воспользоваться
командой cat
cat mytxt
После выполнения этой команды вы увидите быстро
промелькнувший текст и последний (десятый) экран вывода. Можно, конечно,
воспользоваться комбинациями клавиш SHIFT-PAGEDOUN
или SHIFT-PAGEUP
для просмотра текста, но можно воспользоваться и less.
cat mytxt | less
Символ | означает объединение в цепочку
выполнения команды выдачи текста cat и команды
управления постраничным выводом less. В результате, после отображения на
экране первой страницы текста , вывод будет приостановлен до нажатия
PAGE DOWN или ENTER
(построчное перемещение). Для завершения постраничного вывода нажмите
клавишу Q.
&nbsp
В цепочки можно объединять несколько
команд. Например,  вам понадобилось вывести на экран в постраничном режиме все
строки, содержащие слово mail.
Для поиска можно воспользоваться командой
grep
Итоговая цепочка из трех команд:
cat mytxt | grep mail | less
&nbsp
Для большинства дистрибутивов Linux вместо
less можно использовать
more.
Иногда удобно использовать одновременно несколько терминалов, переключаясь
между ними (например смотрите логи в одном окне и правите конфигурационный файл
в другом).
Для переключения используется комбинация клавиш
CTRL — ALT — F1…F6
(от первого терминала до 6-го). Для переключения в графическую оболочку
используется CTRL-ALT-F7.
Чтобы запустить еще один графический сервер на этом же компьютере,
используйте команду startx 1 — :1. Чтобы перейти
во второй графический
терминал, нажмите Alt+F8., а чтобы вернуться
в первый — Alt+F7. Таким образом
можно открывать до 64 графических терминалов. (startx 2 — :2 и т.д).
Для завершения сеанса работы с терминалом
используется команда exit.
&nbsp &nbsp
Вы можете создать журнал своей консольной сессии, в котором будет отображено
все, что вы вводили с клавиатуры, и все, что выдавалось на экран терминала.
Для этого используется команда
script
Чтобы прекратить запись в журнал введите exit.
Как перезагрузить или выключить компьютер.
&nbsp
Одно и то же действие в Linux часто можно
выполнить несколькими способами. Стандартно для перезагрузки или выключения
компьютера используется shutdown.
Команда имеет много опций, позволяющих выполнить перезагрузку в определенное время, быструю перезагрузку
без проверки файловой системы, имитировать и отменять уже запущенный
(ждущий своего времени) процесс
перезагрузки.
Полный список опций можно получить по
shutdown —help
Для немедленной перезагрузки (restart) команда будет выглядеть так:
shutdown -r now
&nbsp
Для выключения питания (halt):
shutdown -h now
В большинстве дистрибутивов можно использовать короткие команды:
reboot — перезагрузка
halt — выключение
Можно также воспользоваться изменением уровня запуска системы командой
init , позволяющей управлять запуском и
завершением процессов в системе с использованием скриптов, хранящихся в
/etc/inittab.
Уровень 0 — выключение, уровень 6 — перезагрузка. Соответственно
для выключения:
init 0
для перезагрузки:
init 6
Команду init можно использовать для изменения уровней запуска
системы.
Уровни:
1 — Однопользовательский режим. Доступ разрешен пользователю root.
2 — Многопользовательский режим без поддержки сетевых функций.
3 — С поддержкой сети.
4 — Зарезервировано.
5 — С использованием графической оболочки.
&nbsp &nbsp
Если вам нужно завершить графическую оболочку (например, инсталляция некоторых приложений
требует ее закрытия) введите:
init 3
&nbsp &nbsp
Графическая оболочка закроется и система перейдет на уровень запуска 3. Для
возврата на уровень 5 введите:
init 5
&nbsp &nbsp
Уровень запуска системы по умолчанию определяется значением initdefault
из /etc/inittab. Для запуска системы с поддержкой графической оболочки она выглядит так:
id:5:initdefault:
Если 5 заменить на 3, то графическая оболочка при старте системы запускаться не будет. И для любителей опасных экспериментов -
не стоит устанавливать уровень запуска 0 и 6 в качестве уровня по умолчанию. Думаю, понятно почему.
Управление задачами (процессами).
&nbsp &nbsp
Посмотреть список задач в Linux можно с помощью команды ps. Если ее запустить
без всяких параметров, то она выдает список процессов, запущенных в текущем сеансе
пользователя. Полный список опций можно получить стандартно — выполнив
ps —help
. Примеры использования:
Список всех процессов, запущенных в системе:
ps -A — выдаст список процессов с идентификаторами
( PID ) и их именами
или:
ps -ax — выдаст тот же список процессов, но с полной строкой запуска
список задач, порожденных пользователем user:
ps -U user
список задач, связанных с текущим терминалом:
ps T
список задач, связанных с терминалом N:
ps t ttyN
Если список задач большой, а нас интересует состояние одной или нескольких
задач, можно воспользоваться grep:
ps -U root | grep ppp — выдать список задач, содержащих «ppp» в имени
&nbsp &nbsp Для получения сведений об использовании ресурсов компьютера можно
воспользоваться командой top

В верхней части окна выводятся суммарные данные о состоянии системы -
текущее время,
время с момента загрузки системы, число пользователей в системе,
число процессов в разных состояниях,
данные об использовании процессора и памяти.
Ниже выводится таблица, характеризующая отдельные процессы.
Число строк, отображаемых в этой таблице, определяется размером окна.
Содержимое окна обновляется каждые 3 секунды. Нажатие клавиши h
выводит справку по командам, которые позволяют изменить формат отображаемых данных
и управлять некоторыми параметрами процессов в системе:
s или d — изменить
интервал обновления окна.
z — цветное/черно-белое отображение
n или # — количество отображаемых
процессов
Можно отсортировать список процессов по использованию процессора
(P), памяти (M),
времени выполнения (T) и т.п.
&nbsp &nbsp Однако, есть и более полезные команды, которые позволяют управлять
процессами в интерактивном режиме:
k — снять ( kill ) задачу. По этой команде будет
запрошен идентификатор процесса ( PID ), после ввода которого, процесс будет
завершен.
r — изменить текущий приоритет задачи (renice).
Как и при выполнении предыдущей команды, будет запрошен PID, и затем, новое значение
приоритета (отображается в колонке NI). Диапазон значений приоритетов — от минус 20
(наивысший) до плюс 19. Отрицательные значения и 0 может устанавливать только
пользователь root.
&nbsp &nbsp Для выхода из top нажмите q
Команда kill
&nbsp &nbsp Эти же действия (принудительное завершение процесса и изменение его приоритета)
можно выполнить и без команды top.
&nbsp &nbsp Процессы в Linux имеют возможность обмениваться
так называемыми «сигналами» с ядром и другими процессами. При получении сигнала
процессом, управление передается подпрограмме его обработки, или ядру, если такой подпрограммы
нет. В Linux имеется команда kill, которая позволяет послать заданному процессу
любой сигнал. Список сигналов можно получить по команде:
kill -l
В результате выполнения этой команды вы увидите список номеров и названий сигналов.
Для того, чтобы послать определенный сигнал выбранному процессу, нужно ввести:
kill номер PID выбранного процесса
Например, нам нужно завершить работу приложения Midnight Commander (mc).
Определим идентификатор процесса mc:
ps -A | grep mc
Пусть PID= 11597.
Посылаем сигнал SIGQUIT (номер 3):
kill -3 11597
После чего процесс mc обработает сигнал GIGQUIT и нормально завершится.
Однако, если mc «завис», то, естественно,
завершиться он не сможет, поскольку подпрограмма обработки сигнала SIGQUIT не получит
управления. В таких случаях используется сигнал под номером 9 (SIGKILL), обрабатываемый
ядром операционной системы, и принудительно завершающий указанный процесс:
kill -9 11597
Если в команде kill номер сигнала не задан, то используется SIGKILL, т.е предыдущую
команду можно было ввести как kill PID:
kill 11597
&nbsp &nbsp При завершении процесса завершаются и порожденные им процессы.
&nbsp &nbsp Для завершения процесса по имени используется команда killall:
killall mc — завершить процесс, в имени которого есть «mc»
killall -u user — завершить процессы, порожденные пользователем user
Команды nice и renice
&nbsp &nbsp Для изменения приоритета процессов используются команды nice и renice. При
запуске процесса, его приоритет задается значением родительского процесса, например,
терминала xterm или командной оболочки shell. Команда nice позволяет запустить
процесс с приоритетом, равным сумме родительского (например 8) и числа, задаваемого
в качестве опции команды nice:
nice — команда
nice -4 mc — запустит mc с приоритетом = 8+4=12
Команда renice используется для изменения приоритета уже запущенного процесса:
renice -p PID
renice 4 -p 11597 — установить значение приоритета для процесса
mc (PID=11597) равным 4.
После выполнения, renice выдаст строку результата:
11597: old priority 12, new priority 4 — старый приоритет 12, новый приоритет 4
Задание нулевого и отрицательного числа приоритета возможно только с правами root.
В начало страницы | На главную страницу сайта.

Это правило удобно использовать при составлении скриптов, когда следующая команда должна быть выполнена только в случае успешного выполнения предыдущей команды. (admin posted on февраля 29, 2012 )

Например:
mkdir -p mydir1 ; cp myfile1 ./mydir1/ && rm ./myfile1
Данная команда создаёт в текущем каталоге подкаталог с названием mydir1, копирует файл с названием myfile1 из текущего каталога в подкаталог mydir1 и если копирование прошло успешно, удаляет копию файла myfile1 в текущем каталоге. Ключ -p в команде mkdir используется для того, чтобы команда mkdir не выдавала сообщение об ошибке в случае, если каталог mydir1 уже существует.
3. Перенаправление вывода команды в файл.
Для перенаправления вывода команды в файл используется запись вида >имя_файла или >>имя_файла. Например:
echo «Однажды, в студёную зимнюю пору» >poetry.txt
echo «Я из лесу вышел, был сильный мороз.» >>poetry.txt
Первая команда создаст в текущем каталоге файл с названием poetry.txt (либо, если файл с таким названием уже существует, удалит его и создаст новый файл с таким названием)  и запишет в этот файл строку текста, являющуюся первой строкой стихотворения.
Вторая команда, если файл с названием poetry.txt не существует, создаст такой файл, а если файл существует, то откроет его для записи, и запишет в его конец вторую строку стихотворения.
Посмотреть содержимое файла можно командой
cat poetry.txt
Чтобы вывести в файл сообщения об ошибках, используется запись вида 2>имя_файла и 2>>имя_файла соответственно, где 2 — это номер стандартного потока ошибок stderr.
Таким образом, вывод программы можно, например, перенаправить в один файл, а сообщения
об ошибках  — в другой файл. Например:
(find /etc | grep local) >tmp.out 2>tmp.err
И наоборот — для того, чтобы вывод из обоих потоков перенаправить в один файл используется запись вида &>имя_файла или &>>имя_файла.
Чтобы указать в качестве имени файла один из этих потоков, используется запись вида 1>&2 или 2>&1.
4. Перенаправление ввода команды из файла.
Для того, чтобы взять содержимое текстового файла в качестве ввода для команды, используется запись вида <имя_файла.
Кроме того, некоторые команды, например cat или awk, используют знак минус как специальное имя для обозначения стандартного потока ввода.
5. Перенаправление вывода команды на ввод другой команды.
Для перенаправления вывода команды на ввод другой команды используется механизм каналов. Для этого две команды объединяются при помощи символа вертикальной черты |. На клавиатуре PC этот символ расположен рядом с клавишей "забой" (Backspace), что расположена над клавишей "ввод" (Enter).
Например:
find /etc 2>/dev/null | grep local
Команда find /etc 2>/dev/null выведет список всех файлов и каталогов в каталоге /etc и всех файлов в подкаталогах каталога /etc. Вывод сообщений об ошибках этой команды будет перенаправлен на так называемое нулевое устройство, то будет выведен в никуда.
Вывод этой команды перенаправляется на вход канала, выход которого соединяется с потоком ввода команды grep local.
Команда grep local отфильтрует данные потока ввода и выведет только те строки, которые содержат local.
6. Перенаправление вывода в никуда
Чтобы перенаправить поток вывода в никуда, используется специальный файл
устройства /dev/null. Например, следующая команда может быть
использована для поиска в файловой системе файла с названием имя_файла, при этом сообщения об ошибках выводиться на экран не будут.
find / | grep имя_файла 2>/dev/null
7. Именованые каналы.
Канал также можно создать, подобно файлу или каталогу, и присвоить ему название, для того, чтобы перенаправлять в него вывод нескольких команд. Такие каналы называются именованными каналами или pipes.
Чтобы создать именованный канал используется команда mkfifo либо команда mknod с типом файла p. Например:
mkfifo mypipe1
mknod mypipe2 p
Первая команда создаст в текущем каталоге именованный канал с названием mypipe1, вторая — именованный канал с названием mypipe2.
Попробуем использовать канал mypipe1 для поиска файлов в каталогах /usr/share и /usr/local/share файлов и каталогов в названии которых встречается font.
find /usr/share >mypipe1 &
find /usr/local/share >mypipe1 &
cat mypipe1 | grep font | less
Вывод первых двух команд перенаправляется в именованный канал mypipe1. При этом обе команды запускаются на исполнение в фоновом режиме. Это делается с помощью символа & в конце строки.
Третья команда состоит из трёх команд, вывод которых перенаправляется в поток ввода следующей команды:
Команда cat mypipe1 выводит содержимое файла, в данном случае это именованный канал mypipe1.
Команда grep font выводит только строки, содержащие font.
Команда less испольуется для того, чтобы вывод можно было удобно просматривать. Завершение работы команды less — клавиша q.
У именованных каналов есть одно ограничение. Мы можем перенаправить в именованный канал вывод нескольких команд, но лишь одна команда может читать данные из именованного канала.
8. Перенаправление вывода в несколько файлов.
Чтобы перенаправить вывод команды в несколько файлов используется команда tee.  Эта команда выводит данные из потока ввода в поток вывода и дублирует эти данные в указанные файлы. Например:
echo «Тест команды tee.» | tee file1 file2
Эта команда выведет строку «Тест команды tee.» на терминал и в файлы file1 и file2.
9. Перенаправление вывода на другой терминал.
Для перенаправления вывода на другой терминал, в linux используются псевдотерминалы. При открытии новой текстовой консоли, создаётся специальный файл устройства в директории /dev/pts с названием файла в виде порядкового номера псевдотерминала. Перенаправив вывод программы в файл выбранного псевдотерминала, можно отделить, например, сообщения об ошибках исполняемой программы от вывода stdout. Например:
echo «Вывод на псевдотерминал №0.» >/dev/pts/0
find /etc 2>/dev/pts/0 | grep xxxx >/dev/pts/1
Подробнее о псевдотерминалах см. man pty и man pts.
10. Вывод содержимого файла.
Чтобы вывести содержимое файла на терминал, используется утилита cat:
cat myfile.txt
Если файл достаточно большой, то его содержимое удобно просматривать постранично, подобно справочным страницам man. Это делается с помощью утилиты less (выход из режима просмотра — клавиша Q):
cat README | less
Чтобы просмотреть дамп бинарного файла, используется утилита hex:
hex `which hex` | less
Данная команда предоставляет постраничный просмотр дампа бинарного файла самой утилиты hex, путь к которой определяется утилитой which.
11. Ввод из командной строки в файл.
Для быстрого создания текстового файла можно воспользоваться средствами утилиты cat, выводящей содержимое файла на терминал:
cat — >myfile.txt
Завершение редактирования осуществляется вводом символа EOF (End Of File — конец файла). Чтобы ввести символ EOF, следует нажать клавиши Ctrl+D.
12. Выполнение команд из файла.
Для того, чтобы выполнить команды, записанные в текстовый файл, можно запустить из командной строки оболочку shell, указав ей в качестве аргумента имя файла. Например:
cat — >myscript.sh
#!/bin/sh
ls -l
echo «Hello, World!»
# Нажмите Ctrl+D, чтобы завершить ввод в файл myscript.sh
sh myscript.sh
В данном примере будет создан текстовый файл, представляющий собою shell-скрипт, содержащий две команды. Первая выводит на терминал содержимое текущего каталога, а вторая выводит на терминал надпись «Hello, World!».
Первой строкой файла является запись комментария в специальном формате,
которая указывает командной оболочке shell путь к интерпретатору
содержимого файла, и таким образом, этот скрипт можно сделать
исполняемым файлом, добавив в его свойства атрибут x:
chmod +x myscript.sh
./myscript.sh
Командой sh myscript.sh запускается командная оболочка shell, которой в качестве аргумента указан файл скрипта myscript.sh.
13. Вывод управляющих символов и символов по кодам.
Каждому символу соответствует определённый код, например — код ASCII. И соответственно символы можно выводить, используя соответствующие им коды. Например:
echo -e «x48 x65 x6C x6C x6F x21″
Эта команда выведет на терминал строку «H e l l o !». Я намеренно вставил пробелы между кодами символов для лучшей читаемости. Каждый символ представлен своим ASCII-кодом в шестандцатеричном виде. Ключ -e команды echo нужен для того, чтобы задействовать при выводе распознавание управляющих символов.
Для вывода символов по кодам в восьмеричном виде используется запись символа вида Z, где Z — это восьмеричный код символа в диапазоне от 0 до 177. Например, вывод строки «H e l l o !» в восьмеричных кодах:
echo -e «110 145 154 154 157 41″
Таким образом можно выводить на терминал управляющие последовательности. Например, символ табуляции t или символ перевода строки n.
echo -e «tОднажды, в студённую зимнюю поруntЯ из лесу вышел, был сильный мороз…»
А также для вывода управляющих последовательностей эмулируемого терминала. Например в режиме эмуляции терминала VT-100, следующая команда очистит экран:
echo -en «33c»
С помощью ключа -n команды echo при выводе строки на терминал не будет добавлен символ перевода строки n.
14. Запуск сессии shell с перенаправлением стандартных потоков.
Новая сессию shell можно запустить из командной строки также, как любую другую команду. Это делается с помощью команды sh.
Чтобы завершить сессию используется команда exit.
При запуске новой shell-сессии можно перенаправить поток вывода команды на поток ввода stdin новой сессии. При этом, когда перенаправленный поток будет завершён, сессия будет завершена. Например:
echo «ls -l /dev/fd/» | sh
Данная команда запускает новую сессию shell, в которой будет выполнена команда, выводящая на терминал информацию о псевдофайлах символьных ссылок на стандартные потоки ввода-вывода.
При этом можно перенаправить, например, вывод ошибок всех команд, выполняемых в новой сессии, в файл:
echo «ls -l /dev/fd/» | sh 2>errors.log
15. Замена символов при выводе.
Для замены символов в тексте, выводимом на терминал, используется команда tr. Например:
echo -e «мамаnпапа» | tr мп пм
С помощью данной команды при выводе строки символы м и п будут заменены символами п и м соответственно, и таким образом вместо
мама
папа
будет выведено
папа
мама
Для того, чтобы символы при выводе не заменить, а удалить, при вызове  tr используется ключ -d:
echo -e «абраnкадnабра» | tr -d «n»
Данная команда выводит строку, из которой при выводе удаляются символы переноса строки.
16. Построчное объединение файлов.
Иногда возникает необходимость обработать с помощью одного скрипта строки из нескольких файлов. Проще всего это сделать, предварительно объединив обрабатываемые файлы построчно. Это делается с помощью команды paste. Например:
ls -1 ~ >file1.txt
ls -1 /etc >file2.txt
paste file1.txt file2.txt | awk ‘/e/{print};’ -
Данная последовательность команд создаёт в текущем каталоге два файла с названиями file1.txt и file2.txt. Затем выводит их содержимое, объединяя их построчно с разделителем по умолчанию (символ табуляции), и вывод перенаправляется на стандартный ввод скрипта на языке интерпретатора AWK, который выводит все строки, содержащие латинскую букву e.
Для того, чтобы использовать другой символ в качестве разделителя, команда paste вызывается с ключом -d:
paste -d»n» file1.txt file2.txt | awk ‘/e/{print};’ -
В данной команде те же файлы будут объединены с использованием в качестве разделителя символа переноса строки, то есть так:
1 строка файла file1.txt
1 строка файла file2.txt
2 строка файла file1.txt
2 строка файла file2.txt
3 строка файла file1.txt
3 строка файла file2.txt

Автор: Андрей Шаройко

Места распределились следующим образом: (admin posted on февраля 29, 2012 )

31.5% — CentOS;
26.6% — Debian GNU/Linux;
16.8% — Red Hat Enterprise Linux;
10.1% — Ubuntu;
7.8% — Fedora;
4.7% — SUSE;
2.2% — Gentoo;
0.2% — Mandriva;
0.1% — Turbo Linux.

Составители отчета отмечают, что получившиеся в результате автоматизированной проверки данные значительно отличаются от состояния рейтинга DistroWatch (CentOS на 14 месте, Debian на 6, RHEL на 27, Ubuntu на 1, Fedora на 2) и индекса популярности на основе анализа числа поисковых запросов Google, измеряющих в основном активность пользовательского контингента. Метод W3Techs базируется на изучении программного обеспечения, обслуживающего миллион крупнейших сайтов в сети (по рейтингу Alexa), при этом в статистике учитываются только домены второго уровня.
Дополнительная статистика по использованию CentOS:
При рассмотрении всех операционных систем CentOS используется на 9.7% из исследованных сайтов;
Данные об используемых совместно с CentOS http-серверах выглядят следующим образом (указан процент от общего числа web-сайтов):
14.9% — Apache;
12.2% — Tomcat;
8.0% — Yahoo Traffic Server;
0.2% — Nginx;
0.1% — Lighttpd.
Популярность CentOS в зависимости от размера сайта:
9.7% — миллион крупнейших сайтов;
9.9% — сто тысяч крупнейших сайтов;
8.6% — десять тысяч крупнейших сайтов;
6.6% — тысяча крупнейших сайтов.
Статистика по смене дистрибутивов:
4.86% ранее использовавших Red Hat теперь используют CentOS (обратный отток с CentOS на Red Hat — 1.03%),
1.49% использовавших Fedora теперь используют CentOS (обратный отток 0.23%);
0.64% использовавших Debian теперь используют CentOS (обратный отток 0.62%);
0.26% использовавших Ubuntu теперь используют CentOS (обратный отток 0.42%);
0.17% использовавших SUSE теперь используют CentOS (обратный отток 0.05%);
Из других отчетов можно отметить:
Сравнение популярности систем управления контентом:
57% — WordPress
11.1% — Joomla;
6.5% — Drupal;
6.3% — vBulletin;
3.1% — Typo3;
2.9% — Blogger;
2.3% — phpBB.
Распределение операционных систем на серверах: 67.1% — Unix-подобные ОС, 32.9% — Windows;
Популярность http-серверов:
70.2% — Apache;
20.5% — Microsoft-IIS
5.1% — Nginx;
0.9% — LiteSpeed;
0.6% — Google HTTP Server;
0.6% — Tomcat;
0.6% — Lighttpd.
Популярность JavaScript-библиотек:
69.2% — JQuery;
15.1% — Prototype;
14.0% — MooTools;
10.4% — Script.aculo.us;
7.0% — ASP.NET Ajax;
7.0% — YUI Library;
1.7% — Spry;
0.4% — Dojo;
0.2% — Ext JS
Популярность языков программирования для создания web-приложений:
74.6% — PHP;
23.9% — ASP.NET;
3.8% — Java;
1.4% — ColdFusion;
1.2% — Perl;
0.5% — Ruby;
0.3% — Python.
www.opennet.ru

На днях решил повозиться с WordPress’ом, поэтому решил завести на ноуте небольшой web-сервер. Когда-то раньше уже доводилось устанавливать апач и прочее (MySQL, PHP) и в windows, и в ubuntu, но это было давно и неправда. (admin posted on февраля 29, 2012 )

Итак, процесс установки того, что принято называть LAMP, в ubuntu 8.10 занимает всего несколько минут.
Сначала идем в Меню/Система/Администрирование/Программа управления пакетами Synaptic. Там в меню Правка (Edit) находим пункт Отметить пакеты для задачи (Mark Packages by Task)

и выбираем LAMP.

Далее вводим там же (в Synaptic’е) в поиск phpmyadmin и отмечаем его для установки. Теперь осталось нажать на кнопку Применить (Apply) и подождать, пока ubuntu скачает нужные пакеты и установит их.
В процессе установки потребуется задать пароль для пользователя root в MySQL (ввести что-нибудь и запомнить) и указать phpmyadmin’у сервер для конфигурации (выбрать apache2).
Когда установка будет завершена, можно проверить работоспособность сервера. Для этого вводим в браузере:

http://localhost/

Если все в порядке, то должно отобразиться радостное приветствие апача:
It works!
Если этого не произошло, начинаем курить гугл =)
phpmyadmin можно найти по адресу:

http://localhost/phpmyadmin

Туда ввести имя пользователя root и пароль, указанный при установке.
На этом процесс установки сервера можно считать завершенным. Дальше можно только слегка его поднастроить.
Прежде всего можно изменить корневую папку для сервера. По умолчанию используется каталог /var/www, что не очень удобно (хотя никто не запрещает). Неплохо было бы перенести папку сервера в свою домашнюю директорию (/home/%username%).
Для этого выполняем в терминале (копируем шаблон конфигурационного файла):
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/test0
Здесь test0 — собственно имя папки (может быть любым), предварительно созданной (например, введя mkdir ~/sites/test0).
Теперь открываем этот конфиг для редактирования:
sudo gedit /etc/apache2/sites-available/test0
В этом файле нужно добавить строку
ServerName test0
и заменить все пути, указанные по умолчанию (/var/www), на новые, например такие:
/home/%username%/sites/test0/
Здесь же можно включить mod_rewrite, выставив везде:
AllowOverride All
Далее в терминале надо выполнить:
sudo a2enmod rewrite
Потом редактируем /etc/hosts:
sudo gedit /etc/hosts
Добавляем к localhost новый test0, отделив его TAB’ом:
127.0.0.1 localhost test0
Включаем test0:
sudo a2ensite test0
Остается только перезапустить apache:
sudo /etc/init.d/apache2 restart
Остается только проверить права у каталога test0, используя команду chmod.
Вроде ничего не забыл =)
После проделанных манипуляций можно скачивать WordPress и распаковывать его в созданный каталог. Для «домашнего» использования этого должно быть достаточно. Созданный web-сервер можно использовать для опытов с PHP, MySQL, опробовать CMS’ы. В общем, вещь в хозяйстве весьма полезная для тех, кто любит изучать что-то новое.
P.S. Мне даже довелось использовать подобный сервер для выполнения лабораторных работ по финансовому анализу =)
P.P.S. Сам идею нашел здесь.

COMMENTS: No Comments »

TAGS:, , , ,

CATEGORIES: Новости

- выбор комплектующих (admin posted on февраля 29, 2012 )

- выбор и установка операционной системы
- настройка сети
- настройка прикладных программ
Mini server — условное название сервера за основу которого взят простой персональный компьютер, проще сказать это домашний сервер, причем его роль может выполнять как простой стационарный компьютер так и неттоп, ноутбук и даже нетбук. Главная цель mini server показать максимальные возможности mini систем, как со стороны стоимости оборудования так и со стороны производительности. Сделанный сервер своими руками не уступает по качеству многим хостинг компаниям и даже во много привосходит некоторые фирмы.
Для чего нужен сервер — в первую очередь сервер нужен для организации и коллективной работы в сети. Как основы для mini server я выделил несколько типов серверов:
- Игровой сервер
- Web сервер
- Файловый сервер
- Сервер доступа
Игровой сервер — Games
Установив на Ваш компьютер необходимое программное обеспечение, настроив его и подключив к интернету, Вы получаете игровой сервер. Пользователи, желающие играть на Вашем сервере, так же должны установить на своём компьютере соответствующее программное обеспечение — клиент. Клиенты, зная IP адрес вашего сервера, смогут подключиться к нему и войти в игру.
 

Администратору не обязательно быть рядом с сервером, в большинстве случаев, все сервера управляются удаленно, через локальную сеть или интернет. Надо учитывать тот факт, что администратор может управлять сервером практически с любого компьютера, т.к. сервер ограничивает доступ клиентам на уровне проверки имени и пароля.
Читать далее >>>
Web сервер — Web
Выполняет функцию хостинга, в собранном сервере своими руками мы можем поместить сайт, например с PHP и базой данных SQL, привязать IP нашего домашнего сервера к имени нашего домена, запустить почтовый ящик для нашего сайта. Удаленное администратирование нашего сервера осуществляется с применением панели управления хостингом ISPconfig, которая построена на открытом исходном коде, и упрощает работу администратора сервера построенного на Linux системах. Панель ISPconfig 3 способна управлять несколькими серверами с одной панели управления и разделять пользователей между собой, таким образом можно вести отдельный учет каждого из клиентов с индивидуальными настройками и правами.

На приведенном рисунке изображен самый простой вид хостинга, в котором управление осуществляется удаленно — через интернет, при обращении к одному главному серверу который уже в свою очередь управляет другими. Такая схема помогает разгрузить главный сервер и контролировать нагрузку между другими.
Главная задача такого сервера заключается в предоставлении места под web сайт, это в том случае, если мы говорим о паре сайтов и одном пользователе, а если Ваш сервер своими руками рассчитан на несколько сайтов и пользователей, лучше задуматься о виртуальном сервере, в данном случае нам необходимо полное управление сервером, желательно удаленное, например супер пользователь или администратор web сервера должен иметь полный контроль за пользователями и их сайтами, а так же за их ресурсами. К ресурсам лучше отнести дополнительные возможности, например поддержку PHP, баз данных SQL, создание дополнительных пользователей для FTP доступа к сайту, и самый важный момент это полностью изолировать друг от друга пользователей и их ресурсов, что бы вести общий учет за каждым в отдельности. На моем mini-servere с этой задачей отлично справляется панель управления хостингом ISPconfig и его работу Вы наблюдаете на примере этого сайта и это не хостинг, а простой домашний сервер.
Читать далее >>>
Файловый сервер — файловый
В сети для хранения большого объема информации существуют файловые сервера. Другими словами это большой диск, подключенный к сети. Для обмена файлами между FTP клиентом и файловым сервером используется одноименный протокол FTP (File Transfer Protocol — протокол передачи файлов). Именно на этот протокол в сетях приходится самая большая часть трафика, т.к. с помощью ее мы можем загружать документы, фильмы, картинки, дистрибутивы программ, музыкальные файлы. Именно по этому протоколу мы можем: загрузить страницы нашего сайта в интернете, связать компьютеры между собой для обмена файлами (открываем общий доступ к файлам). Файловый сервер предусматривает авторизацию пользователей для ограничения использования ресурсов, если в этом есть необходимость. Как правило, файловый сервер своими руками не сильно зависит от мощности самого сервера (частота процессора, размера оперативной памяти) и для его роли вполне подойдет устаревший компьютер с увеличенным объемом дискового пространства. Именно HDD (жесткий диск) является самой неотъемлемой и главной частью нашего файловые сервера, как правило, в таких серверах HDD не один. Большим интересом является наличие поддержки RAID массива, именно эта функция позволяет производить независимую копию ваших данных, и ощутимо уменьшает возможность их потери. Такой вид защиты широко применяется не только на файловых серверах, но и во многих других, но взяв во внимание тот факт, что протокол FTP применяется и на других, как главный из протоколов обмена файлами в большинстве серверов. Наличие RAID массива является гарантией сохранности наших данных.

Структурная схема сети ничем не отличается от структуры игрового сервер и наша связь с файловым сервером, так же может работать как в локальной, так и интернет сети.
Читать далее >>>
Сервер доступа — router
Данный вид сети чаще всего называется маршрутизацией, в этом случае сервер своими руками выполняет функцию проводника интернета, в нем преобладает наличие нескольких сетевых карт (в дальнейшем сетевые карты будем называть как INTERNET и LAN). Сам домашний сервер подключается к интернету через карту INTERNET а вторая LAN карта подключается в локальную сеть, где необходимо раздать интернет. Задача самого сервера в этом случае направить трафик именно тем адресам компьютеров (клиентов), которым это необходимо. Сервер доступа может ограничивать возможности клиентов, например если у нас есть необходимость дать выход в интернет только на определенные компьютеры, а другие в этой же сети используются только как локальные. Такая функция ограничения сетевых возможностей клиента называется Фаерволом (Firewall).

Ограничения могут быть, как по скорости так и по разрешению доступа клиента в интернет. Самый простой пример это полный запрет на доступ в интернет, так же может быть частичным доступом, ограниченный на уровне портов, а значит можно отдельно запретить доступ в интернет не только компьютеру, но и отдельной программе на этого компьютера. Как и компьютер, каждая программа имеет свой адрес в сети. Компьютерный адрес принято называть IP адресом, тогда как адрес клиент-программы принято называть портом.
Читать далее >>>
Это основная статья сайта www.mini-server.ru проекта mini server всего лишь в сжато отвечает на вопрос для чего нужен сервер, поэтому, каждый подраздел ведет на одну из страниц отдельной категории, для демонстрации самого яркого примера работы одного из видов mini server. Данная страница находится в постоянном обновлении, как и весь сайт, для этого у каждого материала Вы найдете даты последних изменений.
Обновлено 21.10.2011 21:49

Приветствую, уважаемый читатель. Сегодня я хочу рассказать о том как настроить свой собственный веб сервер на базе ОС Ubuntu и разместить на нем свой сайт.  Надеюсь статья будет Вам полезна и вы поделитесь ей с окружающими.  Настройка сервера не так сложна как кажется на первый взгляд. Нужно иметь н (admin posted on февраля 29, 2012 )

1. Краткий обзор
В этой статье я преследую несколько вещей:
Мы используем для установки  Ubuntu Server. Почему? Потому что Я обычно используют Ubuntu из-за ее простоты в использовании и простом администрировании. Ubuntu имеет довольно большое и очень активное сообщество благодаря которому можно получить поддержку..
Мы установим OpenSSH сервер. Это позволит Вам управлять вашим сервером с удаленного компьютера.
LAMP (Linux, Apache, MySQL, и PHP) так же будет установлен. Это основная составляющая работы ващего сайта. Apache является самым распространенным веб-сервером на Unix систем, это то.
Мы установим брандмауэр для защиты сервера от несанкционированного доступа.
Для работы с этим руководством, вам понадобится:
Компьютер для использования в качестве сервера. Для наших целей подойдет любой, даже не производительный компьютер, главное что бы не был совсем древним.
Устройство для записи дисков и чистый компакт-диск. Для того что бы записать операционную систему для последующей установки
Время. Весь процесс может занять много времени, особенно если вы столкнетесь с проблемами.
Вы можете спросить, зачем нам собственный выделенный сервер? Есть несколько причин: вы сможете тестировать свои проекты  и самое главное вы узнаете много нового о Linux / Unix системах.
Ну а теперь приступим непосредственно к работе с нашим сервером.
2. Скачать Ubuntu Server
Прежде всего, нам понадобиться дистрибутив с операционной системой Ubuntu. Скачать его можно с сайта http://www.ubuntu.com/ ,
Вам будет предложены два варианта ОС: «Desktop Edition» и »Server Edition». Поскольку мы ведем речь о сервере, то выбираем «Server Edition» далее выберите версию актуальную на сегодняшний день выберите «Ubuntu 10.10 LTS».  Далее, выберите место нахождения из выпадающего списка и жмем «Начать загрузку».

Теперь нужно записать ISO (файл, который вы скачали) на пустой CD. Если вы не знаете, как это сделать, есть
отличное руководство на  HTTPS://help.ubuntu.com /community/BurningIsoHowto
3. Установка Ubuntu Server
Теперь, когда вы скачали и записали ISO образ на диск, приступим к установке Ubuntu на ваш сервер. Загрузитесь с компакт-диска. В большинстве современных компьютеров, это произойдет по умолчанию, если диск есть в приводе.. Если этого не произойдет, то вам необходимо включить загрузку с диска в BIOS. Для этого сразу после включения нажмите: для  ноутбука, это F12, для большинства стационарных компьютеров это Del. Все зависит от вашего компьютера.  Как сделать установку с компакт-диска можете посмотреть в книжке для вашей материнской платы. – все зависит от производителя BIOS. Хорошо сделали? Теперь, когда вы загрузились в Ubuntu, вы должны увидеть следующий экран:

Выберите язык и нажмите ввод. Теперь вы увидите такой экран:

Выберите «Установить Ubuntu Server», и нажмите Enter!
Теперь программа установки предложит вам определить вашу раскладку клавиатуры. Лично я отказываюсь, потому что проще выбрать английскую раскладку из списка — просто следуйте инструкциям на экране.
После того как вы закончили с раскладкой клавиатуры, вы увидите кучу экранов загрузки, которые говорят нам : «Обнаружение CD-ROM диски», и так далее. Они должны проходить быстро и без проблем. В время мелькания этих экранов программа установки попытается автоматически настроить сеть. В большинстве случаев, все настроится отлично. Однако, если что то не получиться не так, просто следуйте инструкциям на экране, чтобы все настроить как нужно именно вам. После вас попросят ввести имя хоста.

Далее система предлагает вам установить часовой пояс для. Для меня это меня подойдет Европа, в частности Урал Выберите тот который больше подходит вам.
Далее система предложит вам разбить существующий жесткий диск на разделы выберите автоматически использовать весь диск.

Теперь нужно выбрать диск, который необходимо разбить. Чаще всего только один диск будет доступен, однако, для более специализированных систем, используют не один диск. Выберите тот, который относится к вам.

Программа спросит вас о том, действительно ли вы хотите записать изменения на диск. Выберите «Да» и нажмите ввод. После чего программа установки отформатирует диск и установить разделов. Теперь система начинает установку. Пока идет установка веб-сервера, вы можете сходить покурить или выпить чашечку кофе, так как процесс установки может затянуться до часа. Все зависит от вашей системы. Иногда вам может показаться что система попросту зависла не беспокойтесь -  все идет как надо Однако, если он установка замерла на определенном участке и не продвигается вперед больше часа то действительно зависла система.

После установки системы вам необходимо настроить учетную запись под которой вы будете входить в систему. Во-первых, ввести свое полное имя и нажать «Продолжить».

Далее необходимо ввести имя пользователя, как правило, оно заполняется автоматически вашим именем, которое вы ввели на прошлом шаге.

Следом поступит предложение ввести пароль. Очень важно, что бы вы выбирали надежный пароль, иначе вы стате под угрозу безопасность вашего сервера. Я рекомендую использовать цифры, строчные  заглавные буквы.. НЕ используйте пароль короче 7 символов.

Повторно введите пароль, чтобы убедиться, что вы ввели его правильно.
Система попытается настроить «Менеджер пакетов”. Выберите пункт «Продолжить», оставив поле пустым
На следующем шаге система производит сканирование серверов в поиске обновлений и настройки конфигурации

После завершения поиска обновлений и настройки вам будет предложено несколько вариантов для установки серверного программного обеспечения.
Обязательно выберите OpenSSH сервер и нажмите Space, а не ENTER. Если вы нажмите ввод, установка будет продолжаться без установки сервера OpenSSH.
Теперь программа установки, установит выбранное программное обеспечение и другие компоненты системы

Наконец, установка будет завершена. Извлеките компакт-диск и нажмите ввод. Компьютер перезагрузится. Если все пойдет хорошо, вы увидите экран, которая выглядит примерно так:

Поздравляем! Вы только что установили Ubuntu сервер, и настало время, чтобы превратить этот компьютер в веб-сервер.
4. Обновление программного обеспечения сервера
Прежде чем идти дальше, мы должны убедиться, что ваш сервер обновлен. Чтобы сделать это, вам необходимо: Войти. Во-первых, введите имя пользователя (Тот, который вы выбрали ранее), нажмите клавишу ВВОД, а затем введите пароль. Когда  вы вводите пароль, вы увидите, что ничего не происходит, не появляются звездочки. Не волнуйтесь, все это сделано для безопасности вашего сервера. После того как в введете пароль нажмите Enter,
и ваш экран должен выглядеть примерно так как показано ниже:

Вводим команды:
sudo aptitude update && sudo aptitude dist-upgrade
Система спросит пароль, введите его. Для продолжения выполнения нашей команды выбирите “Y” и нажмите Enter. На экране вы увидите примерно следующее:

Ваша система загружает и устанавливает последние и актуальные обновления на день установки. Это займет некоторое время в зависимости от скорости вашего Интернет соединения. После того как установка закончиться, необходимо перезагрузить компьютер.
Для этого, введите:
sudo shutdown -r now
5. Установка Apache, MySQL, PHP
Вот мы и подошли к самому интересному. Для того чтобы наш сайт был доступен из сети Интернет, нам необходимо установить веб-сервер Apache, сервер баз данный MySQL и поддержку PHP
Приступим!
Установка программ на Ubuntu сильно отличается от установки программы на Windows или OS X, в том, что Ubuntu будет скачивать и устанавливать программы для вас с помощью простых команды. Это потому, что Ubuntu имеет Package Manager, который управляет почти всеми программами в системе. Все, что мы должны сделать, это сказать менеджер пакетов.
Достаточно просто сказать системе что мы хотим установить Apache, MySQL, PHP, введя для этого:
sudo aptitude install apache2 php5-mysql libapache2-mod-php5 mysql-server
И нажмите Enter.
Система будет загружать и устанавливать те программы которые мы указали со всеми зависимостями.

Во время процесса установки, MySQL Вас попросят ввести пароль. Установите его

После этого вы имеете полноценный рабочий веб-сервер. Чтобы проверить это, во-первых найти IP сервера, набрав:
  ifconfig | grep inet

Он как правило идет первым в строке. В моем случае, это 192.168.177.129. Теперь, когда вы знаете IP, откройте веб-браузер и укажите в нем IP вашего сервера. Если вы видите «Она работает!»  То все идет очень хорошо. Веб-сервер работает отлично

Однако мы еще не закончили.
Теперь откройте файл конфигурации:
  Sudo Nano / etc/apache2/apache2.conf
Выделите вниз (стрелка вниз), до “ServerTokens Full” и изменить его следующим образом: «ServerTokens Prod»

Теперь, прокрутите вниз немного дальше и изменените «ServerSignature Оn» до «ServerSignature Off»

Теперь сохраните изменения комбинацией клавиш Control-O и выйдите из редактора Control-X.  Теперь, н для PHP. Сначала создайте резервную копию оригинального файла конфигурации PHP:
  Sudo CP / etc/php5/apache2/php.ini / etc/php5/apache2/php.ini.bak
Открыть файл конфигурации:
  Sudo Nano / etc/php5/apache2/php.ini
Изменение «expose_php = ON» на «expose_php = Off»

Снова нажмите Control-O и Control-X. Теперь обновите файлы конфигурации перезагрузкой Apache:
  sudo /etc/init.d/apache2 restart
Настройки Apache, MySQL, PHP закончены
6. Утановка брандмауэра
Теперь мы более тщательно обезопасим наш сервер путем установки брандмауэра Shorewall,
Для его установки введите:
  sudo aptitude install shorewall
По умолчанию, Shorewall устанавливается без правил, что означает полный доступ. Нам это не нужном.
Вместо этого, мы собираемся блокировать все соединения из вне, кроме порта 80 (HTTP) и порт 22 (SSH).
Во-первых, копруем конфигурацию  в каталог Shorewall:
  sudo cp /usr/share/doc/shorewall-common/examples/one-interface/* /etc/shorewall/
Теперь откройте » rules » файл:
  sudo nano /etc/shorewall/rules
Добавьте эти строки над “#LAST LINE”:
  HTTP/ACCEPT net $FW
SSH/ACCEPT net $FW

Затем нажмите Control-O и Control-X. Ваш брандмауэр теперь настроен на прием только HTTP и SSH трафик. Последнее, что нам нужно сделать, заставить Shorewall стартовать при загрузке нашего веб-сервера.
Для этого открываем основной конфигурационный файл Shorewall:
  sudo nano /etc/shorewall/shorewall.conf
Прокрутите вниз до «STARTUP_ENABLED = No» и измените его на «STARTUP_ENABLED = Yes»

Нажмите Control-O и Control-X. Теперь откройте  файл конфигурации Shorewall по умолчанию:
  sudo nano /etc/default/shorewall
И изменение » startup=0 » до » startup=1 «. Нажмите Control-O и Control-X.
И запустите свой брандмауэр:
 sudo /etc/init.d/shorewall start
Поздравляем! Ваш брандмауэр установлен и стоит на защите вашего сервера.
7. Добавить свой сайт на веб-сервер
Теперь когда у нас все настроено вам наверное не терпиться разместить на своей веб-сервере сайт.
По умолчанию, все файлы вашего сайта должны быть в папке «/VAR /WWW /». Однако, мы не можем пок ничего записать в эту папку.
Давайте все изменим таким образом:
sudo usermod -g www-data [ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ]
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www
Что же мы сделали? Мы создали группу www-data, и сделали папку для сайта, чтобы члены этой группы могли записывать туда данные.
Теперь, вы будете входить в ваш сервер, используя SFTP (не путать с FTPS). Вот некоторые клиенты, которые поддерживают SFTP:
WinSCP (Windows, бесплатно), FileZilla (Windows, Linux, OS X, бесплатно),
Подключитесь к серверу, используя имя пользователя и пароль. Далее просто перейдите в  /VAR /WWW

Вы можете добавлять файлы в эту папку (/VAR/WWW), и они будут отображаться на вашем сервере при просмотре его через браузер.
Почему мы используем SFTP вместо FTP. Главным образом, потому что SFTP уже встроено в OpenSSH (который вы установили ранее). И данный протокол более безопсен, чем FTP, а также затрудняет получить злоумышленникам доступ к вашим полномочиям на сервере.
8. Управление сервером удаленно
Для удаленного доступа к своему серверу вам понадобиться SSH клиент. Для Windows рекомендую программу Putty. Для остальных операционных систем возможно использование обычного терминала, просто откройте терминал и введите «SSH  you@yourip». Для Putty, выберите SSH, и поставьте ваш IP, имя пользователя и пароль, при запуске программы. Зайдя удаленно вы увидите что то на подобии этого:

С помощью этих программ вы можете, находясь в любой точке мира, делать все тоже самое что делали бы непосредственно имея под рукой сервер.
9. Вот и все!
Теперь у вас есть полностью функциональный веб-сервера. Надеюсь, моя статья принесла вам немного знаний и оказалась полезной.

1. Имя хоста и RDNS (admin posted on февраля 29, 2012 )

Перед тем, как настраивать почтовый сервер, вам стоит убедиться, что на вашем хостинге правильно настроены названия хоста и RDNS. RDNS позволяет идентифицировать легитимность сервера, и уменьшает шанс того, что ваши письма будут классифицированы, как спам существующими спам-фильтрами.
Для примера, я буду использовать названия доменов domen1.com и domen2.ru. Оба этих домена должны быть зарегистрированы и иметь соответствующие ДНС записи (в частности MX записи, необходимые для корректного функционирования почтового сервера)
Проверим имя хоста:
hostname -f
Если оно отличается от доменного имени вашего будущего сервера — требуется его поменять.
Для этого отредактируем два файла:
sudo nano /etc/hostname
Замените существующее имя на mail.domen1.com.
И второй файл:
sudo nano /etc/hosts
Так же убедитесь, что старое название хоста изменено на новое.
После изменения названия хоста — перегрузите вашу систему.
Теперь снова проверим имя хоста:
hostname -f
На экран выводится:
mail.domen1.com
Замечательно. Первый шаг выполнен.
Теперь нужно проверить RDNS (reverse DNS). У разных провайдеров это настраивается по разному, в зависимости от особенностей реализации панели управления.
Вы должны прописать соответствие вашего внешнего IP-адреса имени почтового сервера, например mail.domen1.com — 231.123.134.12
Проверить настройки RDNS просто. Установите пакет dnsutils.
sudo aptitude install dnsutils
После установки, выполните проверку:
dig -x 231.123.134.12
Если вывод имеет такие строки,
dig -x 231.123.134.12


;; QUESTION SECTION:
;231.123.134.12.in-addr.arpa. IN PTR
;; ANSWER SECTION:
231.123.134.12.in-addr.arpa. 3477 IN PTR mail.domen1.com.
то все нормально. Можем продолжать.
2. Настройка места физического расположения почты на сервере
Самый простой способ настроить место для хранения почты — создать пользователя vmail с соответствующей группой и назначить ему специфичный userID.
Конечно, в будущем мы настроим MySQL для обеспечения работы сервера с многочисленными пользователями и доменами, но почта не будет храниться в базе данных. База будет использоваться только для поиска соответствующих пользователей и определения деталей доставки почты.
Пользователь vmail создается как обычно, но с некоторым отличием: мы указываем, что пользователь не может логиниться в систему.
Для начала создадим группу vmail:
sudo groupadd -g 5000 vmail
Это команда создает группу vmail и присваивает ее GID (group ID) 5000.
Затем создаем пользователя vmail:
sudo useradd -s /usr/sbin/nologin -g vmail -u 5000 vmail -d /home/vmail -m
Эта команда создает пользователя vmail, чтобы он не мог логиниться в систему, присваивает его группе vmail, а так же создает ему домашнюю директорию /home/vmail
3. Установка сервера Postfix и MySQL
Выполните команду:
sudo aptitude install postfix postfix-mysql mysql-server postfix-tls libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl telnet mailx
Эта команда дополнительно к Postfix и MySQL установит пакеты mailx и telnet, которые будут очень удобны в процессе тестирования настроек.
В процессе установки MySQL сервера потребуется установить (и подтвердить) пароль для администратора (пользователь root).
В процессе установки Postfix сервера вначале система выведет на экран окно с информацией, после чего потребуется выбрать пункт 'Internet Site'.

На следующем окне

введите имя вашего почтового домена mail.domen1.com.
Можно протестировать установку почтового сервера. Для этого отправим себе с него постовое сообщение.
Выполните команду:
mail address@example.com
address@example.com должен быть реальным действующим адресом, который вы можете проверить на предмет новой почты.
После нажатия на клавишу ввода потребуется ввести тему сообщения. После следующего нажатия — текст письма. Тест письма любой, можно сколько угодно пользоваться клавишей ввода. Признаком окончания тела письма является символ точки с начала новой строки, с последующим нажатием на клавишу ввод.
Далее система спросит адрес для копий письма, последний ввод, — и письмо отправлено.
mail adress@example.com
Subject: test email from domen1.com
Это, собственно
письмо
с уважением,
Я
.
Cc:
Удобная штучка для отсылки писем в терминале, да? Рекомендую! Это пакет mailx, который мы установили чуть ранее.
Проверяйте ящик adress@example.com. Пришло письмо? Замечательно! Можем двигаться дальше.
4. Настройка базы данных MySQL
Далее будет много текстового ввода в терминале — не пугаемся. Всегда можно воспользоваться копированием через буфер обмена
Для начала создадим базу данных с оригинальным названием — mail.
mysqladmin -u root -p create mail
В процессе выполнения команды система вас попросит ввести пароль администратора MySQL (вы его ввели при инсталляции MySQL).
Далее залогинимся в MySQL и создадим несколько таблиц.
mysql -u root -p
Для начала создадим пользователя БД, для наших целей…
CREATE USER ‘mailadmin’@'localhost’ IDENTIFIED BY ‘MyPasswordHere’;
Замените MyPasswordHere на свой собственный пароль.
Далее, дадим этому пользователю необходимые привелегии: SELECT, INSERT, UPDATE, DELETE.
FLUSH PRIVILEGES;
GRANT SELECT, INSERT, UPDATE, DELETE ON `mail` . * TO ‘mailadmin’@'localhost’;
FLUSH PRIVILEGES;
Теперь мы можем выбрать нашу БД mail и создать необходимые таблицы.
USE mail;
Необходимо создать три таблицы для хранения почтовых доменов, пользователей и деталей доставки сообщений (форвардинг сообщений).
Таблица доменов. В Mysql введите следующие команды:
CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain)
)
TYPE=MyISAM;
Не забываем вводить точку с запятой (;) в конце команды SQL, иначе она не будет выполнена.
Таблица пользователей. Как раньше, введите в MySQL:
CREATE TABLE users (
email varchar(80) NOT NULL,
password varchar(20) NOT NULL,
PRIMARY KEY (email)
)
TYPE=MyISAM;
Таблица форвардинга:
CREATE TABLE forwards (
source varchar(80) NOT NULL,
destination TEXT NOT NULL,
PRIMARY KEY (source)
)
TYPE=MyISAM;
Теперь можно выйти из MySQL:
quit;
Вы вернулись обратно в командную строку терминала.
Не волнуйтесь, что при создании таблицы пользователей поле пароля определено как текстовое. При создании пароля, мы его зашифруем перед записью в таблицу.
5. Настройка Postfix для использования базы данных MySQL
Для того, чтобы Postfix мог использовать таблицы MySQL, необходимо создать несколько настроечных файлов.
Каждый из этих файлов достаточно прост: он содержит название БД, имя, пароль, SQL-запрос и название хоста. Эти файлы подсказывают Postfix-у, как выбирать данные из созданных нами ранее таблиц.
Домены.
Создадим текстовый файл:
sudo nano /etc/postfix/mysql-domains.cf
Введем следующие строки:
user = mailadmin
password = MyPasswordHere
dbname = mail
query = SELECT domain AS virtual FROM domains WHERE domain=’%s’
hosts = 127.0.0.1
Помним: MyPasswordHere надо заменить на введенный при создании пользователя БД mailadmin пароль.
Форвардинг.
Создаем файл:
sudo nano /etc/postfix/mysql-forwards.cf
Заполняем его:
user = mailadmin
password = MyPasswordHere
dbname = mail
query = SELECT destination FROM forwards WHERE source=’%s’
hosts = 127.0.0.1
Почтовые ящики.
Каждый домен имеет множество различных почтовых ящиков. Этот скрипт получает правильные характеристики почтового ящика.
sudo nano /etc/postfix/mysql-mailboxes.cf
Содержимое:
user = mailadmin
password = MyPasswordHere
dbname = mail
query = SELECT CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/') FROM users WHERE email=’%s’
hosts = 127.0.0.1
E-Mail адреса.
И наконец создадим файл адресов.
sudo nano /etc/postfix/mysql-email.cf
Содержимое:
user = mailadmin
password = MyPasswordHere
dbname = mail
query = SELECT email FROM users WHERE email=’%s’
hosts = 127.0.0.1
с файлами все.
Эти четыре файла позволят Postfix-у получить доступ к информации в базе данных mail и присвоить корректные данные каждому письму.
Полномочия на файлы
Да, чуть не забыл. Необходимо еще установить правильный доступ к этим файлам:
sudo chmod o= /etc/postfix/mysql-*
(другие группы не имеют доступа к файлам.
И сменим владельца:
sudo chgrp postfix /etc/postfix/mysql-*
Postfix должен иметь к ним доступ.
Настройки Postfix
Отредактируем файл настроек Postfix:
sudo nano /etc/postfix/main.cf
Обычно нижняя часть файла выглядит так:
myhostname = mail.domen1.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination =
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
Убедитесь, что mydestination не сделано присвоение.
Добавим ссылки на созданные файлы настроек, чтобы Postfix использовал их в процессе работы. В конец файла добавьте строки:
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-forwards.cf, mysql:/etc/postfix/mysql-email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
6. Безопасное соединение — настраиваем Saslauthd
Saslauthd требуется для того, чтобы устанавливать безопасные соединения с вашим почтовым сервером.
Saslauthd
Посмотрим основной файл настроек программы:
sudo nano /etc/default/saslauthd
Первым делом надо установить автоматический запуск демона (поменяйте значение на 'yes'. По умолчанию стоит 'no'):
# Should saslauthd run automatically on startup? (default: no)
START=yes
Далее нужно изменить некоторые опции в конце файла. По умолчанию они выглядят так:
#
# Example for postfix users: «-c -m /var/spool/postfix/var/run/saslauthd»
OPTIONS=»-c -m /var/run/saslauthd»
Изменим их следующим образом (мы же запускаем Postfix):
#
# Example for postfix users: «-c -m /var/spool/postfix/var/run/saslauthd»
OPTIONS=»-c -m /var/spool/postfix/var/run/saslauthd -r»
Кстати…Мы только что указали каталог, который не существует в природе. Непорядок. Устраним это:
sudo mkdir -p /var/spool/postfix/var/run/saslauthd
MySQL
Мы же используем MySQL для хранения наших идентификационных данных. Точнее не наших, а пользователей сервера. Значит процесс авторизации должен знать, где брать данные.
Создадим два файла, чтобы процесс мог получить доступ к базе данных и добыть необходимую ему информацию:
sudo nano /etc/pam.d/smtp
Добавим в этот файл следующий текст:
auth required pam_mysql.so user=mailadmin passwd=MyPasswordHere host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=mailadmin passwd=MyPasswordHere host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
Это позволит процессу авторизации иметь доступ к БД для проверки пароля и e-mail-а.
И второй файл:
sudo nano /etc/postfix/sasl/smtpd.conf
Его содержимое следующее:
pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mailadmin
sql_passwd: MyPasswordHere
sql_database: mail
sql_select: select password from users where email = ‘%u’
По моему, тут ничего особо не надо пояснять, текст говорит сам за себя.
Для того, чтобы Postfix мог получить доступ к процессу Saslauthd, добавим пользователя Postfix в группу Saslauthd (Это же Лииинукс!!!) ).
sudo adduser postfix sasl
Поменяли кучу настроек. Время перезапустить демоны:
sudo /etc/init.d/postfix restart
sudo /etc/init.d/saslauthd restart
Создаем SSL-сертификат
Создадим сертификат безопасности. По умолчанию он будет создан в каталоге /etc/ssl/certs.
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/certs/mailcert.pem
В процессе создания, вам зададут несколько вопросов. Ответить можно, например так:
Country Name — RU
State or Province -
Locality name — Moscow
Organisation Name — MyGreat Company
Organisational Unit Name — Mail
Hostname — mail.domen1.com
Email address — admin@domen1.com
Важно, чтобы Hostname совпадал с именем mail server-а — hostname. В нашем случае, это mail.domen1.com.
Мы создали самоподписанный сертификат здесь:
/etc/ssl/certs/mailcert.pem
Настраиваем Postfix
Теперь требуется отредактировать главный файл настроек Postfix:
sudo nano /etc/postfix/main.cf
Найдите секцию TLS parameters. Настройки по умолчанию в ней выглядят так:
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
Стираем их полностью. И вставляем вместо них следующие:
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem
smtpd_tls_key_file = $smtpd_tls_cert_file
Тем самым мы активировали безопасные соединения, перечислили, какие соединения будем принимать, и, наконец, указали путь к сертификату.
7. Устанавливаем Courier
Courier позволит нам получить POP3 и IMAP доступ к нашей почте.
Установка Courier
Установка достаточна проста, с использованием aptitude:
sudo aptitude install courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl
Во время установки вам будет задан вопрос, нужно ли создать директории. Правильный ответ — НЕТ (это ответ по умолчанию, так что можете просто нажать клавишу ввода)!
Настройка Courier
Для начала отредактируем файл:
sudo nano /etc/courier/authdaemonrc
Поменяйте строку
authmodulelist=»authpam»
на
authmodulelist=»authmysql»
Понятно для чего, да? Мы же используем MySQL!
Далее редактируем файл с деталями БД:
sudo nano /etc/courier/authmysqlrc
Чтобы не заморачиваться — удалите в нем все содержимое, и вставьте следующее:
MYSQL_SERVER localhost
MYSQL_USERNAME mailadmin
MYSQL_PASSWORD MyPasswordHere
MYSQL_PORT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD «/home/vmail»
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/')
Сохраните файл.
После изменения файлов настроек, требуется рестартовать демоны:
sudo /etc/init.d/courier-authdaemon restart
sudo /etc/init.d/courier-imap restart
sudo /etc/init.d/courier-imap-ssl restart
sudo /etc/init.d/courier-pop restart
sudo /etc/init.d/courier-pop-ssl restart
8. Настраиваем firewall
Не буду здесь описывать настройки файрволла. Они у всех разные… Я например, использую Shorewall, кто-то IPTables… Дело вкуса.
Нужно дать доступ по портам: 25 (SMTP), 110, 995 (POP, POPS), 143, 993 (IMAP, IMAPS).
9. Добавляем домены и пользователей в таблицы БД
Нужно заполнить таблички в MySQL, чтобы все то, что мы настроили ранее заработало.
Логинимся в MySQL:
mysql -u root -p
Выбираем базу данных:
USE mail;
Заполняем таблицу доменов:
INSERT INTO `domains` (`domain`) VALUES (‘domen1.com’);
Чтобы ввести любой другой домен, выполните аналогичную команду:
INSERT INTO `domains` (`domain`) VALUES (‘domen2.ru’);
Заполняем таблицу пользователей:
INSERT INTO `users` (`email`, `password`) VALUES (‘admin@domen1.com’, ENCRYPT(‘secretpassword’));
Остальные пользователи вводятся аналогично:
INSERT INTO `users` (`email`, `password`) VALUES (‘kot@domen2.ru’, ENCRYPT(‘secretpassword’));
Когда все таблицы заполнены — выходим из ведения БД:
quit;
Перегружаем postfix:
sudo postfix reload
Проверим, работает или нет?
Давайте отправим почтовое сообщение по одному из введенных адресов: admin@domen1.com
mail admin@domen1.com
Введите тело и тему письма и отправьте его адресату. Через какое-то время проверьте папку /home/vmail:
ls /home/vmail
Увидите новый каталог:
/home/vmail/domen1.com
А для каждого пользователя домена domen1.com в папке /home/vmail/domen1.com будет создан собственный каталог с письмами.
Почта уже работает. Остались небольшие дополнения, но о них в следующей статье. Так же в конце мы убедимся, что наш сервер не используется спамерами для несанкционированных рассылок — об этом еще одна статья
Спасибо за внимание.
При подготовке статьи использовались материалы сайта slicehost.com

COMMENTS: No Comments »

TAGS:, , , ,

CATEGORIES: Новости

Устанавливаем пакет proftpd: (admin posted on февраля 29, 2012 )

sudo aptitude install proftpd
Отвечаем на появившийся вопрос о способе запуска: «самостоятельно». Открываем файл /etc/shells:
sudo gedit /etc/shells
Добавляем в него строку:
/bin/false
Создаем в /HOME каталоге папку FTP-shared(Не обязательно в корне /HOME и не обязательно такое имя папки, это просто пример):
sudo mkdir /home/FTP-shared
Теперь создаем пользователя с именем userftp(ну или что поинтересней):
sudo useradd userftp -p pass -d /home/FTP-shared -s /bin/false
Вместо «pass» – ввести свое слово или фразу в качестве пароля(не вводите только цифры, работать не будет). В папке FTP-shared создаем две вложенные папки(называем как хотим):
sudo mkdir /home/FTP-shared/public
sudo mkdir /home/FTP-shared/upload
Присвоим права созданным папкам:
sudo chmod 755 /home/FTP-shared
sudo chmod 755 /home/FTP-shared/public
sudo chmod 777 /home/FTP-shared/upload
FTP-shared и public – только чтение. upload – запись. Переименовываем имеющийся конфигурационный файл proftpd.conf и создаем новый:
sudo mv /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.old
sudo gedit /etc/proftpd/proftpd.conf
Добавляем в него: proftpd Если Вы создавали структуру папок, имя пользоватля и т.д не как в статье, то редактируйте данный файл под себя. После произведенных действий фтп-сервер будет иметь следующие параметры доступа:
user (пользователь): test
password (пароль): pass (тот, что присвоен для userftp)
Можно создать несколько пользователей, но все они должны быть прописаны в файле proftpd.conf. Если нужно сделать анонимный доступ, следует закомментировать обе секции для test и раскомментировать секцию для Anonymous. Сервер запущен, но с параметрами по умолчанию, перезагружаем его:
sudo /etc/init.d/proftpd restart
Что бы узнать, кто подключен к фтп-серверу в данный момент используется команда ftptop (клавиша t меняет отображение, q – выход). Полезные советы: Если нужно подключить какую-либо папку к фтп-серверу (например, проверить работу только что созданного фтп-сервера) без редактирования конфига пригодится команда:
sudo mount -o bind /здесь/путь/папки/что/я/хочу/расшарить/ /home/FTP-shared/public
или с доступом на запись:
sudo mount -o bind /здесь/путь/папки/что/я/хочу/расшарить/ /home/FTP-shared/upload
Таким образом можно в срочном порядке временно подключить папку или диск и потом отмонтировать командой:
sudo umount /home/FTP-shared/public
sudo umount /home/FTP-shared/upload
Для постоянного доступа к нужным папкам подключаем их посредством fstab. Бэкап файла fstab:
sudo cp /etc/fstab /etc/fstab.old
Открываем файл /etc/fstab:
sudo gedit /etc/fstab
и добавляем нужные пути:
/здесь/путь/папки/что/я/хочу/расшарить /home/FTP-shared/public none bind 0 0
Теперь даже при рестарте компьютера информация будет доступна, если сервер за роутером то только в локальной сети. Что бы увидеть фтп-сервер из интернета нужно дать ему внешний ip-адрес. Для этого следует открыть нужный порт (в данном случае 21) для локального адреса (вида 192.168.xxx.xxx) на котором висит сервер, для доступа извне. Следующим шагом нужно дать внешнему динамическому IP-адресу постоянный адрес. Сделать это можно при помощи сервиса DynDNS.com(регистрируемся), создав при помощи его удобный и запоминающийся адрес (вида moi-server.homeip.net). Устанавливаем ddclient:
sudo apt-get install ddclient
Вводим регистрационные данные с DynDNS.com на вопросы пакета. Изменяем ServerName «server» в файле proftpd.conf на ServerName «moi-server.homeip.net». Перезагружаем фтп-сервер:
sudo /etc/init.d/proftpd restart
Пользуемся Автор статьи — Монахов Сергей Спасибо за предоставленную статью

COMMENTS: No Comments »

TAGS:, , , ,

CATEGORIES: Новости

Суть проблемы:        При работе нескольких пользователей 1С с единой базой, размещенной на файловом сервере часто поступают жалобы, что 1С тормозит. Жалобы системным администраторам и программистам 1С ничего не дают. А ведь по мере роста объёма накопленных данных о финансовых операциях компании – р (admin posted on февраля 29, 2012 )

       По рекомендации системных администраторов компании обновляют компьютеры, проверяют работу сети, но ощутимых результатов не достигают. Отчеты по-прежнему строятся по 20 минут! Помимо этого при сетевом доступе, 1С часто не даёт осуществить такие действия с документами, как запись или проводка, ссылаясь на «ожидание захвата таблицы».
       Решение проблемы быстродействия 1С зарыто несколько глубже, чем просто обновление ПК и установка гигабитных коммутаторов. В действительности все дело в том, как 1С занимается обработкой и хранением данных. Хранение происходит в нескольких больших файлах-таблицах с расширением *.1CD, и при запуске программа скачивает эти таблицы на компьютер пользователя практически полностью, производит с ними операции (добавление, удаление, перепроведение документов) и записывает обратно на сервер. Ситуация сильно усугубляется, если пользователь 1С работает по «тонкому» каналу – например, из дополнительного офиса по VPN.
Взгляд со стороны:        Если отстраниться от информационных технологий, то со стороны ситуация выглядит так:
        Допустим, Ваша бухгалтерия находится на 6-ом этаже бизнес-центра, все документы хранятся в нескольких больших коробках. Сотрудникам для работы с документами приходится подниматься на 6-й этаж, брать короб, нести его на рабочее место, выполнять необходимую работу с документами, паковать и нести короб назад. В случае с дополнительными офисами, подключенными по каналам Интернет общего использования через VPN, аналогией является поездка на общественном транспорте с коробом документов подмышкой (если, конечно, у Вас не заказан выделенный канал точка-точка между офисами – аналог личный автомобиль).
Решение проблемы:         Описанные выше классические улучшения, рекомендуемые системными администраторами для увеличения скорости работы, равносильны расширению лестниц и покупкой сотрудникам сапогов-скороходов.
        Очевидно, что решением является обработка документов сразу в хранилище на 6-м этаже, а не таскание их по лестнице. Например, там можно организовать библиотеку с просторным читальным залом, где работа с документами будет осуществляться максимально быстро и удобно. По сути, терминальный сервер и есть такой зал.

Описание решения:         Терминальный сервер 1С Linux-TBS (Терминальный Бизнес-Сервер для 1С на Linux) – это компьютер, на котором вместе, в один момент времени могут работать десятки пользователей и не испытывать затруднений. Присутствовать рядом с сервером и иметь клавиатуру-монитор непосредственно подключенными к серверу не требуется. Пользователь терминального сервера 1С может находиться за любым компьютером, подключенным к Интернет (соединение клиент-сервер шифруется).
        Подключение происходит очень просто – одним нажатием мышки, вводом пароля и пользователь оказывается внутри «удаленного рабочего стола 1С». Где его ждут его платформы 1С, его базы, его настройки – без зависимости от того, с какого компьютера он подключился.
Итак, какие преимущества дает установка терминального сервера 1C (Linux-TBS):1). Значительное повышение скорости работы 1С         При работе в Терминальном сервере 1С (Linux-TBS) пользователи не гоняют огромные объемы данных по сети (вспомните пример про коробки), а получают от сервера изображение рабочего окна 1С Предприятие. Одним словом, сервер работает, а Вы получаете только результат! Как показала практика, скорость работы 1С при переводе в терминал повышается от 2 до 10 раз!
2). Повышение надежности работы баз данных программы 1С         Сбои ПК пользователей и обрывы соединения не наносят ущерба базам 1С. После сбоя пользователь может подключиться со своего ПК или с любого свободного дежурного ПК и продолжить работу в своей сессии с того же места!
3). Повышение надежности 1С в целом         При установке 1С на сервере Linux Вы больше не зависите от работоспособности отдельных пользовательских компьютеров под управлением Windows со всеми известными их уязвимостями и глюками, так как установка 1С на каждом из них теперь не требуется.
4). Снижение стоимости обслуживания 1С         При концентрации обработки данных 1С в одном месте (на терминальном сервере Linux) упрощается удаленное администрирование и удаленная поддержка пользователей. Обновление платформы 1С теперь производится в одном экземпляре.
5). Терминальный сервер 1C (Linux-TBS) обеспечивает удаленный доступ к данным 1С через Интернет         Ваши сотрудники (дополнительный офис, склад, надомные работники) смогут подключаться к терминальному серверу 1С удаленно через интернет и работать в общей базе данных 1С наравне с сотрудниками основного офиса. Безопасность работы 1С через Интернет обеспечивается за счет шифрования подключения VPN.
6). Экономия на конфигурациях пользовательских ПК         Для развертывания сервера терминалов 1С Linux/Windows требуется достаточно мощный сервер, НО пользовательские компьютеры при этом могут быть самыми простыми. Обработка всех данных 1С ведется непосредственно на сервере, а пользователи на компьютере получают только картинку — результат.
7). Повышение безопасности и сохранности данных         Терминальный сервер 1C (Linux-TBS), содержащий Ваши конфиденциальные данные в 1С, можно физически разместить на удаленной площадке, в укромном физически защищенном месте. Или в дата-центре, расположенном Санкт-Петербурге, Москве или даже в Европе. Также Вы также можете не покупать мощный сервер для терминала 1С, а арендовать его у нас или в дата-центре.
8). Экономическая эффективность         Терминальные сервера на базе ОС Microsoft Windows Server известны уже порядка 10 лет, но обладают высокой стоимостью применяемого лицензионного программного обеспечения.
        Список необходимого лицензионного программного обеспечения Microsoft (справочно):
SKU
 Производитель
 Продукт
Кол-во
Общая стоимость
 P73-04979
 Microsoft
 Windows Server Standard 2008R2 Russian Open License Pack NoLevel
1
  $ 635,00
 R18-02742
 Microsoft
 Windows Server CAL 2008 Russian Open License Pack NoLevel DvcCAL
10
 $ 257,00
 6VC-01143
 Microsoft
 Win Rmt Desktop Services CAL 2008 Russian Open License Pack NoLevel DvcCAL
10
 $ 741,00
 228-09418
 Microsoft
 SQL Server Standard Edition 2008R2 Russian Open License Pack NoLevel (требуется только в случае SQL-версии 1С)
1
 $ 785,68*
 359-05347
 Microsoft
 SQL CAL 2008R2 Russian Open License Pack NoLevel DvcCAL (требуется только в случае SQL-версии 1С)
10
 $ 1 441,60 *
 
 
Всего за ПО:
32
 $ 3 860,28
 
 
 Работы по установке терминального сервера 1С Windows
1
 8 000 руб.
 
 
Итого для файловой версии 1С:
 
 58 300 руб.
 
 
Итого для SQL- версии 1С:
 
 126 000 руб.
        Терминальный сервер 1C (Linux-TBS) основан же на свободном программном обеспечении семейства Linux. Благодаря этому нет необходимости приобретения лицензий, стоимость которых в аналогичных системах порой зашкаливает.
        Стоимость решения на Linux под «ключ» за исключением аппаратного обеспечения (возможно использование Вашего сервера):
 SKU 
Производитель 
 Продукт
 Кол-во 
 Общая стоимость 
 Debian.org
 Лицензия на операционную систему Debian GNU/Linux
1
$ 0
 
Debian.org
 Лицензии на клиентские подключения не требуются
10
$ 0
 
 Etersoft.ru
 Лицензия на терминальный сервер RX@Etersoft (R)
10
$ 0
 
  PostgreSql.org
 Лицензия на SQL-сервер PostgreSQL (требуется только в случае SQL-версии 1С)   
1
$ 0
Etersoft.ru
 Лицензия на вспомогательное ПО WINE@Etersoft SQL (R) (требуется только в случае SQL-версии 1С)
10
12 900 руб.
 
Etersoft.ru
 Лицензия на вспомогательное ПО WINE@Network (R) (требуется только в случае файловой версии 1С)
10
 8 900 руб.
 
   It-Ic.ru
 Работы по установке терминального сервера 1С на Linux
1
 14 800 руб.
 
 
Итого для файловой версии 1С:
 
23 700 руб.
 
 
Итого для SQL- версии 1С:
 
27 700 руб.
Стоимость включает:
предпроектное обследование;
составление плана миграции;
миграция 1С на терминальный сервер Linux;
подключение пользователей;
составление инструкции по подключению новых пользователей;
сопровождение системы в первые два месяца эксплуатации
 Подробнее узнать об эффективности перевода 1С на терминальный сервер в Вашей компании Вы можете, проконсультировавшись с нашими инженерами: (812) 333-18-01

Сегодняшний материал об отличиях в ядрах server-версии Ubuntu от desktop-версии. Он поможет вам понять, почему использование серверной версии все-таки предпочтительнее именно для решения серверных задач, на тот случай, если вы вдруг задумали заточить под это дело desktop-версию. (admin posted on февраля 29, 2012 )

Кроме того, для тех, кто еще только осваивает ядро Linux или готовится сделать свою первую пересборку ядра, здесь есть довольно интересная и полезная информация.
Внимание, материал создан на базе статьи, оригинал которой лежит здесь (часть 1, часть 2), автор Carla Schroder.
Итак, чем кроме меньших требований к ресурсам и отсутствием графического интерфейса отличается Ubuntu Server, копнем вглубь ядра.
Чтобы выяснить это, мы будем сравнивать файлы (Server) /boot/config-2.6.22-14-server и (Desktop) /boot/config-2.6.22-14-generic.
Подмонтируем два .iso образа во временную директорию, извлечем файлы, а затем сравним их (работаем из под root):
# mkdir temp
# mount -o loop ubuntu-7.10-server-i386.iso
# cd temp
# find temp -name linux-image*
temp/pool/main/l/linux-meta/linux-image-generic_
2.6.22.14.21_i386.deb
temp/pool/main/l/linux-meta/linux-image-server_
2.6.22.14.21_i386.deb
temp/pool/main/l/linux-source-2.6.22/linux-image-
2.6.22-14-generic_2.6.22-14.46_i386.deb
temp/pool/main/l/linux-source-2.6.22/linux-image-
2.6.22-14-server_2.6.22-14.46_i386.deb
Теперь эти файлы надо распаковать в две различные директории, поскольку внутри deb архива есть файлы с одинаковыми именами: control.tar.gz, data.tar.bz2, и debian-binary.
Используем команды ar и tar для распаковки .deb файлов, и разпаковки находящихся в них .tar.gz файлов:
# ar -x linux-image-2.6.22-14-server_2.6.22-14.46_i386.deb
# tar jxvf data.tar.bz2
Теперь достаем из директории boot, файлы config-2.6.22-14-server и config-2.6.22-14-generic, копируем в одну директорию и сравниваем их:
# diff –suppress-common-lines -y config-2.6.22-14-server
config-2.6.22-14-generic
Получаем вывод diff: несколько десятков отличий, в сравнении 3,100 строк этих файлов.
Давайте рассмотрим эти отличия.
Тип ввода-вывода
Существует четыре различных типа планирования I/O (ввода/вывода): CFQ (Completely Fair Queuing), Deadline, NOOP, и Anticipatory.
Ubuntu по умолчанию для десктопов ставит CFQ, а Deadline для серверов.
Цель, преследуемая планированием ввода/вывода одинакова: оптимизировать пропускную способность жесткого диска для различных классов рабочей нагрузки.
В вашем конфигурационном файле это описано опциями CONFIG_DEFAULT_IOSCHED, CONFIG_IOSCHED_CFQ, _DEADLINE, _AS, _NOOP.
* CFQ пытается сбалансировать и сделать равными все запросы на чтение/запись.
* Deadline дает приоритет на запросы чтения.
* Anticipatory дает приоритет уже запущенным приложениям.
* NOOP рассчитан на системы с железом, поддерживающим планирование I/O, например большие RAID-массивы SCSI.
Вопрос о предпочтительном типе ввода/вывода упирается в имеющееся у вас железо: сколько в вашем компьютере процессоров, жестких дисков, каковы типы запускаемых приложений и какова нагрузка, с которой должна справляться ваша система.
Можете поэкспериментировать с этими значениями, сверить бенчмарк-тесты и соответсвенно выбрать для себя самую оптимальную опцию. Кстати, можно указывать эти опции при загрузке, использовать различные типы для любого блочного устройства или менять их на лету. Идущие по умолчанию значения в Ubuntu — неплохие для начала, но если вы хотите их поменять, то сделать это можно так же, как и в любом другом дистрибутиве Linux.
Preemption (приоритетное прерывание обслуживания — ППО)
У серверного ядра оно выключено(CONFIG_PREEMPT_NONE=y), а у десктопного ядра — включено (CONFIG_PREEMPT_BKL=y, CONFIG_PREEMPT_VOLUNTARY=y). ППО взаимодействует с планированием ввода/вывода, для достижения лучшей производительности, большей эффективности и отдачи. В ядрах без ППО код выполняется вплоть до завершения. Поскольку ядро Linux позволяет прервать любую задачу в любой точке ее работы (но, конечно не в тот момент, когда это небезопасно), и задачи с меньшим приоритетом могут выскочить наверх списка задач, то ППО подходит именно для десктоп-систем, потому что пользователи обычно выполняют множество задач одновременно: пишут документы, слушают музыку, загружают файлы и т.п. И пользователям безразлично насколько эффективно фоновое приложение, им важно то приложение, с которым они в данный момент работают.
Если загрузка веб-страницы будет длится чуть дольше, пока пользователь пишет e-mail, что же, это приемлемая цена. В общем, эффективность и производительность снижаются, но не настолько, чтобы пользователя это беспокоило.
На серверах вам необходимо минимизировать любые и все возможные перепады в производительности, поэтому обычно и практикуется отключение ППО.
Память.
32-битное серверное ядро поддерживает до 64 Гб памяти, ядро десктопа 4 Гб — (CONFIG_HIGHMEM64G=y, CONFIG_HIGHMEM4G=y). Эти опции можно увидеть только в 32-битных ядрах, поскольку 32-битная адресация позволяет по честному поддерживать только 4 Гб. Ну а 64 Гб доступны только с Intel Physical Address Extension (PAE). Linux поддерживает PAE, но вам будет нужна и поддержка PAE в вашем CPU (процессоры новее чем Pentium Pro или AMD K6-3 сойдут). На 64-битной системе вы не увидите таких опций, потому что там нет недостатка в адресном пространстве для памяти.
Тики и Герцы (Ticks & HZ)
Оба ядра поддерживают таймеры прерывания по-запросу(CONFIG_NO_HZ=y), так называемая “tickless” опция. Это значит, что в периоды отсутствия активности система действительно бездействует, это предполагает меньший расход энергопотребления и меньший нагрев процессора.
Таймер прерываний ядра сервера установлен на 100 Гц (CONFIG_HZ=100, CONFIG_HZ_100=y), что означает, что он принимает 100 прерываний своей деятельности в секунду. С другой стороны на это можно взглянуть так: ядро 100 раз в секунду проверяет есть ли у процессора какие-либо задачи.
Таймер прерываний ядра десктопа установлен в 250 Гц. Меньшие значение означают меньшие издержки и высокие задержки, большие значения — высокие издержки и меньшие задержки, то есть при больших значениях система быстрее отвечает, но ценой высокой нагрузки на процессор. Некоторые процессы требуют больших значений прерываний, например сервера обработки видео и голосовых данных (VoIP) требуют 1000Гц.
Если вам нужно поменять это значение, вам придется перекомпилировать ядро.
Семейства CPU
Серверное ядро использует опцию CONFIG_M686=y, а десктопр CONFIG_M586=y.
Это означает, что ядро сервера оптимизировано под набор инструкций Pentium Pro, а ядро десктопа работает с семействами 586 и 686. Честно говоря даже ядро для 486 системы будет работать на современных машинах, поэтому при компиляции своих ядер, знайте, что для лучшей производительности опция CPU должна соответствовать вашему процессору, чтобы полноценно работать с его набором инструкций.
Утечка в пространстве имен
До того, как появилась виртуализация, существовал один набор объектов Inter-Process Communications — IPC, (shared memory segments, message queues и semaphores), которые ядро использовало для всего. Но виртуальное окружение должно сохранять свои собственные IPC внутри своих контейнеров, без возможности утечки. Это включено в ядре сервера(CONFIG_IPC_NS=y, CONFIG_UTS_NS=y) и не включено в ядре десктопа.
Означает ли это, что виртуальное окружение небезопасно и имеет утечки в ядре для десктопа? (Прим.: скорее эта фича необходима для однозначной подстраховки от утечек для серверной версии)
И финальное отличие: ядро сервера поддерживает множественные таблицы маршрутизации IPv6, которые ядро десктопа не поддерживает.
Оригинал статьи: http://whylinux.ru/
Popularity: 23%