Закачивать
сайт можно по протоколу FTP, соединяясь с сервером, где расположен ваш
сайт, с помощью FTP-клиента. Но бывают ситуации, когда нужно отладить
работу скрипта непосредственно на сервере хостинг-провайдера.
Или сделать автоматический запуск определенного файла в определенное
время. Или совершить какие-то манипуляции с базами данных MySQL.
Для всех этих и многих других действий пользователей хостинг-провайдеры
предоставляют доступ по защищенному протоколу telnet (а не по ftp), так
называемый shell-доступ (ssh-доступ).
Работа с shell — это работа с командной строкой Unix. А так как это
другая операционная система, то в ней существуют другие законы, команды и
т.п.
Что нужно для работы с 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 — оглавление в полном формате
Эти ключи нужно подставлять сразу после команды ls.
Вот еще несколько команд:
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 и пароль могут быть другими.
Все, база перенесена!