18 июня 2009

Что такое SSH (Шелл) и зачем он нам нужен

SSH или Shell – это штука на подобие Radmin-а, но для Linux. Оболочка Шелл позволяет удаленно управлять операционной системой.

Зачем нам это нужно?
- А нужно нам это чаще всего для того, чтобы быстро закачать большое количество файлов на хостинг или удалить их оттуда.

Все мы сталкиваемся с задачей, когда приходит время с локального сервера (я имею ввиду например Денвер) переместить наш проект на сервер хостинг-провайдера. И хорошо, если наш сайт маленький. А если проект крупный, весом так-этак в Мегабайт 50… Вот тут-то и начинаются сложности. Просто соединиться с сервером при помощи каких-то программок, например Total Commander, и закачивать файлы копированием становиться весьма нетривиальной задачей. Время на загрузку файлов по одному с постоянным ожиданием ответа от удаленного сервера уйдет уйма. И, скорее всего, с первого раза скопировать все файлы не удастся – обязательно вылезет какая-нибудь ошибка и соединение оборвется, а потом разбирайся какие файлы попали на хостинг, а какие нет.

Тут-то нам и приходит на помощь тот самый Шелл.

Берем весь наш сайт на локальном хостинге и зажимаем его в zip-архив.
Во-первых, из 50 Мегабайт после сжатия останется около 15.
Во-вторых, один файлик-архив закачать на хостинг куда проще, чем весь проект. И при закачке одного файла ошибки, скорее всего, не возникнут.

Теперь остается распаковать архив на сервере. Сделать это можно при помощи программы PuTTY, которая пообщавшись с удаленной хостинг-машиной посредством протокола SSH распакует загруженный архив с такой-же быстротой, как вы распаковываете архивы на своем компьютере.

И так, устанавливайте PuTTY (скачать дистрибутив PuTTY) и вперед.

После установки и запуска программки вы увидите вот такое окно:
Интерфейс программы PuTTY

Все что вам нужно – это ввести адрес хоста для общения с сервером посредством Шелл. Этот адрес с логином и паролем вам должен был выслать хостинг-провайдер в электронном письме.

Для Мастерхоста, например данный адрес имеет вот такой вид: XXXXXX.ssh.masterhost.ru
Где XXXXXX – это ваш персональный идентификатор клиента Мастерхоста.

Вводим адрес в поле Host Name (or IP address) и нажимаем кнопку Open.

Интерфейс программы PuTTY

После этих нехитрых действий произойдет соединение с удаленной машиной посредством сетевого протокола SSH и вы увидите приглашение для ввода логина и потом пароля, которые вам также должен выслать по электронной почте хостинг-провайдер.

При вводе пароля не пугайтесь следующего обстоятельства:
никакие звездочки или точки, как принято в Windows, появляться не будут. Это вам Linux, господа и дамы. Курсор даже не сместиться с места. Но вы на это внимания не обращайте, а аккуратно вводите свой пароль и после ввода нажимайте Enter. Сделана данная штука для того, чтобы никто не смог подсмотреть количество символов в вашем пароле. Бред?
– Возможно. Linux, он такой, конфиденциальность превыше всего.

Если вы не ошиблись в пароле, то вы увидите слово Welcome!

Интерфейс программы PuTTY

После соединения вы находитесь в корневой папке своего хостингового пространства. Для того, чтобы посмотреть, какие еще папки и файлы присутствуют в корневой директории воспользуйтесь командой ls.

Перемещайтесь к нужной папке (в которую вы сохранили zip-архив с сайтом) командой cd.

Т.е. если в корне у вас лежит папка www и вы хотите в нее переместиться то вводите команду cd www/ и нажимаете Enter.

Для того, чтобы подняться на уровень вверх: cd ..

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

Когда вы находитесь в директории, содержащей архивный файл, то набираете команду unzip imya_faila.zip
Вместо imya_faila.zip нужно ввести имя архива с расширением.

Архив начинает весело распаковываться в ту же директорию, где он и находился.

Быстрое удаление файлов с хостинга

Шелл кроме возможности быстро закачать файлы на сервер, дает нам возможность быстро их оттуда и удалить. Делается это весьма похожим на распаковку архива образом.

Вам нужно переместиться к директории, содержащей файлы или каталоги, которые вы хотите удалить (напомню, перемещаемся командой cd).

После того как вы находитесь в директории, каталоги и файлы внутри которой вы собираетесь удалить, вводите следующие команды:

Для удаления файла команда rm imya_faila.xxx

Для удаления файла без лишних вопросов (а вы точно хотите его удалить или нет?) команда rm – f imya_faila.xxx

Для удаления каталога rm – r imya_kataloga/

В программе PuTTY для упрощения ввода имен файлов и каталогов реализована следующая функция:
Введите начало имени файла или каталога и нажмите Tab, PuTTY автоматически подставит недостающую часть имени.

Для выхода из программы используйте команду exit.