Робота по ssh

Виникають ситуації, коли необхідно налагодити роботу скрипта безпосередньо на сервері хостинг-провайдера. Або зробити автоматичний запуск певного файлу в певний час, зробити маніпуляції з базами даних MySQL.
Для всіх цих та багатьох інших дій користувачів хостинг-провайдери надають доступ по захищеному протоколу telnet (а не по ftp), так званий shell-доступ (ssh-доступ).
Робота з shell - це робота з командним рядком Unix. Якщо хто не знає, пояснимо, що Unix - це операційна система, альтернативна Windows. А так як це інша операційна система, то в ній існують інші закони, команди і т.п.
Що потрібно для роботи з ssh? Існує безліч програм для роботи з Windows. Ви можете завантажити Putty.
Розглянемо підключення на прикладі роботи з програмою Putty.
Все дуже просто. Запускаєте файл putty.exe

Робота по ssh

Вибираєте протокол доступу - Protocol SSH.

Натискаєте "Open". Все, сесія почалася. Програма запросить ввести вас логін, вводите той же логін і пароль що у вас для доступу по FTP. З метою безпеки вводиться пароль не буде доступний широкому.

Увага! Перше, що необхідно запам'ятати при роботі з командним рядком unix - cистема розрізняє регістр букв. Тобто файли типу File.pl, file.pl і file.Pl - це абсолютно різні файли. Також і паролі passw і PassW - різні паролі!

Правильно виконавши вище описані дії Ви успішно підключіться.

Розглянемо кілька основних команд, які можуть знадобитися при роботі з в консолі.

pwd - отримати ім'я поточної папки, де ви знаходитесь.

cd - змінити поточну директорію

Наприклад, Ви перебуваєте в директорії / home, а Вам потрібно потрапити в / www. Для цього Вам потрібно просто набрати команду:

Ось що при цьому Ви побачите на екрані:

ls - вивести інформацію про файлах або папках

При цьому список може бути досить великою.

Тому існують ключі для цієї команди, ось деякі з них:

  • -a - вивести всі файли (навіть ті, імена яких починаються з крапки);
  • -x - висновок в 4 колонки;
  • -t - імена файлів сортуються не за алфавітом, а за часом останньої зміни (спочатку йдуть найсвіжіші, тільки що змінені файли);
  • -R - рекурсивно пройти по всім підкаталогам
  • -CF - зміст каталогу в кілька стовпчиків
  • -al - зміст в повному форматі

Ці ключі потрібно підставляти відразу після команди ls.

Ось ще кілька команд:

cat - злити або вивести файли-аргументи на стандартний висновок
cp - копіювати файли
mv - перемістити (перейменувати) файли
ln - створити посилання на файл

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 в папку /user/public_html/mydirectory/raspisanie.txt. то команда буде виглядати так:

Коли ви задаєте команду "вивести всі завдання крона", ви побачите щось виду:

SHELL = / bin / bash
PATH = / sbin: / bin: / usr / sbin: / usr / bin
MAILTO = user
HOME = / home / user
# 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-base.sql

  • замість підставте ім'я субкористувач MySQL, якому присвоєно права на базу dbname (без <> )
  • замість підставте ім'я своєї бази даних MySQL (без <> )
  • замість 'backup-file-base.sql' підставте ім'я файлу, в який будуть виведені дані
  • перед початком роботи спитають пароль доступу до бази даних.

Інформація, отримана за допомогою mysqldump може бути занесена в базу даних командою:

mysql -u -p -D -h mysql.<доменное_имя_сайта>

Подробиці про запуск цієї програми можна отримати командою man mysqldump

Інша корисна програма для роботи з базами даних - mysql

Запускається з командного рядка таким чином

mysql -u -p -D -h mysql.<доменное_имя_сайта>

Подробиці про запуск цієї програми можна отримати командою man mysql

Перенесення баз даних MySQL

1. Створення копії бази на сервері

mysqldump -p -u -h mysql.<доменное_имя_сайта> --add-drop-table>

Тут - ім'я файлу, де буде зберігатися база даних.

В процесі виконання команди mysqldump запитає пароль користувача MySql - потрібно буде ввести його у відповідь на відповідне запрошення і натиснути "Enter" - при цьому набирається пароль на терміналі не відображається.

2. соданія бази даних з файлу на сервері

Завантажуєте на сервер по ftp файл

Потім, з'єднавшись з ssh

mysqldump -p -u -D -h mysql.<доменное_имя_сайта> <

Тут, зверніть увагу, dbuser, dbname і пароль можуть бути іншими.

Все, Ваша база перенесена.

Схожі статті