SSH - доступ. Crontab. Перенос MySQL. Shell-доступ. Что нужно для работы с ssh. Основные команды. Работа с crontab
Автор: Дмитрий
Сайт: http://erahosting.net/ Закачивать сайт можно по протоколу FTP, соединяясь с сервером, где расположен
ваш сайт, с помощью FTP-клиента. Как это сделать, мы подробно рассмотрели в
одной из статей нашего справочника. Но бывают ситуации, когда нужно отладить работу скрипта непосредственно на
сервере хостинг-провайдера. Или сделать автоматический запуск определенного
файла в определенное время. Или совершить какие-то манипуляции с базами данных
MySQL. Для всех этих и многих других действий пользователей хостинг-провайдеры предоставляют
доступ по защищенному протоколу telnet (а не по ftp), так называемый shell-доступ
(ssh-доступ). Работа с shell - это работа с командной строкой Unix. Если кто не знает, поясним,
что Unix - это операционная система, альтернативная Windows. А так как это другая
операционная система, то в ней существуют другие законы, команды и т.п. Что нужно для работы с ssh? Существует множество программ для работы из Windows.
Вы можете скачать Putty
или SecureCRT. Рассмотрим подключение на примере работы с программой Putty. Все очень просто. Запускаете файл putty.exe Откроется окно программы. В поле "Host name" прописываете доменное имя вашего сайта. К примеру,
site.com Выбираете протокол доступа - Protocol SSH. Нажимаете "Open". Все, сессия началась. Программа запросит ввести
вас логин, вводите тот же, что у вас для доступа по FTP. Затем вводите пароль. Внимание! Первое, что необходимо запомнить при работе с командной строкой
unix - cистема различает регистр букв. То есть файлы типа Pupkin.pl и pupkin.pl
и pupkin.Pl -- это совершенно разные файлы. Также и пароли wert и WerT - разные
пароли! Итак, вы подключились! Теперь расмотрим несколько основных команд, которые могут понадобиться при
работе с сайтом. pwd - получить имя текущей папки, где вы находитесь. cd - изменить текущую директорию Например, Вы находитесь в директории /home, а Вам нужно попасть в /usr/sbin.
Для этого Вам нужно просто набрать команду: cd /usr/sbin. Вот что при этом Вы увидите на экране: vvs01% cd /usr/sbin
vvs01% ls - вывести информацию о файлах или папках При этом список может быть довольно большой. Поэтому существуют ключи для этой команды, вот некоторые из них:
- -a - вывести все файлы (даже те, имена которых начинаются с точки);
- -x - вывод в 4 колонки;
- -t - имена файлов сортируются не по алфавиту, а по времени последнего изменения
(сначала идут самые свежие, только что измененные файлы);
- -R - рекурсивно пройти по всем подкаталогам
- -CF - оглавление каталога в несколько столбиков
- -al - оглавление в полном формате
Эти ключи нужно подставлять сразу после команды sl. Вот еще несколько команд: cat -- слить или вывести файлы-аргументы на стандартный вывод
cp -- копировать файлы
mv -- переместить (переименовать) файлы
ln -- создать ссылку на файл
rm -- удалить файлы Формат команды: rm [-fri] файл ...
-i - просить подтверждения на каждое удаление
-r - рекурсивно удалить вместе с подкаталогами
-f - не просить подтверждения, а сразу удалить rmdir - удалить директорию
mkdir - создать директорию
echo - вывести аргументы командной строки на стандартный вывод
ps - узнать номера выполняемых процессов, т.е. какие программы выполняются. Формат команды: ps - запущенные только с этого терминала
ps -e - все
ps -f - в "полном" формате kill - "убить" выполняемый процес по его номеру
man - выдать справку об использовании и ключах команды Теперь о том, как запускать файлы автоматически в определенное время. Для этого существует механизм, называемый cron. Для каждого пользователя создается конфигурационный файл, куда записывается
расписание запуска программ. Данный конфигурационный файл каждую минуту просматривается
cron'ом и запускаются те программы, время запуска которых подошло. Редактируется
конфигурационный файл с помощью программы crontab. Вот основные команды: crontab -e : войти в режим редактирования
crontab -l : вывести все задания крона
crontab -r : удалить все задания Команда crontab file заменят текущие настройки cron на те, которые содержатся
в файле 'file'. Для этого вам нужно закачать сначала на сервер этот самый файл
(например, через ftp), а затем в команде указать полный путь к нему. Пути для
вашего сайта можно узнать у своего хостинг-провайдера, он их обычно указывает
в инструкциях. В результате, если вы закачали файл raspisanie.txt в папку /pupkin/public_html/mypapka/raspisanie.txt,
то команда будет выглядеть так: crontab /pupkin/public_html/mypapka/raspisanie.txt, Когда вы задаете команду "вывести все задания крона", вы увидите
нечто вида: SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=pupkin
HOME=/home/pupkin
# run-parts
01 * * * * command
02 4 * * * command Первые четыре строки просто обозначают настройку технических параметров, и
на них не стоит обращать внимание (как впрочем и менять тоже). А вот на следующие строки внимание уже стоит обратить... Формат этих строк
выглядит следующим образом:
- Нужная минута часа для запуска (0-59)
- Нужный час дня для запуска (0-23)
- Нужный день месяца (0-30)
- Нужный месяц года (1-12)
- Нужный день недели (0-6)
- Выполнимая команда.
Значок * обозначает слово каждый (день, год, месяц, час). Например, строка 01 * * * * command будет обозначать запуск программы каждый
час в одну минуту. А строка 02 4 * * * command означает запуск программы каждый день в 4 часа
утра в две минуты. Вы можете как создать отдельный файл со строками запуска программ, просто в
столбик написав 01 * * * * command
02 4 * * * command где command - ваша команда (запуска определенного скрипта или еще что-то),
а затем просто командой "crontab file" перенести все задания из файла
в крон, либо вручную все ввести в крон. Первое, на мой взгляд, удобнее. Вот и все премудрости крона:) Ну и в окончании поговорим о командах для работы с MySQL. mysqldump - позволяет сохранить копию базы данных в текстовой файл,
представляющий из себя команды SQL (о способе это сделать через phpmyadmin мы
уже писали). Может быть использована при переносе базы данных с одного сервера
на другой или для резервного копирования. Формат команды: mysqldump -u -p -h mysql.<доменное_имя_сайта>
> backup-file.sql
- вместо подставьте
имя субпользователя MySQL, которому присвоены права на базу dbname (без
<>)
- вместо подставьте имя своей базы данных MySQL (без
<>)
- вместо 'backup-file.sql' подставьте имя файла, в который будут выведены
данные
- перед началом работы будет спрошен пароль доступа к базе данных.
Информация, полученная с помощью mysqldump может быть занесена в базу данных
командой: mysql -u -p -D -h mysql.<доменное_имя_сайта>
< backup-file.sql Подробности о запуске этой программы можно получить командой man mysqldump
Другая полезная программа для работы с базами данных - mysql Запускается из командной строки следующим образом mysql -u -p -D -h mysql.<доменное_имя_сайта> Подробности о запуске этой программы можно получить командой man mysql Перенос баз данных MySQL Если вам нужно перенести базу данных к себе на компьютер или с
одного сервера на другой, рекомендуем проделать следующее: 1. Создание копии базы на сервере №1. mysqldump -p -u -h
mysql.<доменное_имя_сайта> --add-drop-table > Тут - имя файла, где будет храниться база данных. В процессе выполнения команды mysqldump спросит пароль пользователя
MySql - нужно будет ввести его в ответ на соответствующее приглашение и нажать
"Enter" - при этом набираемый пароль на терминале не отображается. 2. Содание базы данных из файла на сервере
№2. Закачиваете на сервер №2 по ftp файл Затем, соединившись по ssh mysqldump -p -u -D
-h mysql.<доменное_имя_сайта> < Здесь, обратите внимание, dbuser, dbname и пароль могут быть другими.
Все, база перенесена! Если вы захотите узнать побольше о UNIX и им подобных системах,
подробную информацию вы можете найти на сайтах, им посвященных.
|