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