Простые примеры использования ssh

Примеры использования ssh

В статье собраны примеры использования ssh в работе web-разработчика. Каждая консольная команда, которая описана в статье, мне хотя бы один раз, но использовалась в реальных условиях. Возможно, я не правильный программист, но работать с консолью мне не нравится – это неудобно и сложно: нужно запоминать кучу разных команд, которые зачастую состоят всего из нескольких букв и ни каких ассоциаций не вызывают, поэтому и не запоминаются. Если у вас такие же чувства по отношению к консольным командам или вы только начинаете разбираться с ssh, то статья может быть полезна, в ней я собрал основные «фишки» для настройки и управления сервером, с которыми когда-либо сталкивался по работе.

Обновление операционной системы через ssh

Для обновления ОС, достаточно в консоле выполнить две команды:

sudo apt-get update 
sudo apt-get upgrade

Первая команда обновит данные о пакетах, а вторая выполнит обновление.

Работа с Apache через ssh

Команда для установки Apache:

sudo apt-get install apache2
 

Команда для запуска:

 sudo invoke-rc.d apache2 start 

Команда для остановки:

 sudo invoke-rc.d apache2 stop 

Команда для перезапуска:

 sudo invoke-rc.d apache2 restart 

Включение модуля mod_rewrite:

 sudo a2enmod rewrite 

Работа с PHP через ssh

Чтобы установить php на сервер можно выполнить команду:

 sudo apt-get install php5 libapache2-mod-php5 

Выполнить php скрипт:

 php /path/script.php

Работа с MySql через ssh

Установка MySql на сервер:

 sudo apt-get install mysql-server 

Создать пароль для пользователя root:

 sudo mysqladmin -u root password _пароль_ 

Через консоль можно выполнять sql-запросы, только сначала нужно авторизоваться в Mysql:

 mysql -uПользователь -pПароль  

Создание базы данных:

CREATE DATABASE название_базы_данных; 

Создание пользователя для базы данных с локальными правами:

GRANT ALL PRIVILEGES ON название_базы_данных.* TO 'имя_пользователя'@'localhost' IDENTIFIED BY 'пароль' WITH GRANT OPTION; 

Создание пользователя с возможностью удаленного подключения:

GRANT ALL PRIVILEGES ON название_базы_данных.* TO 'имя_пользователя'@'%' IDENTIFIED BY 'пароль' WITH GRANT OPTION; 

Работа с планировщиком зада Cron через ssh

Установка Cron на сервер:

 sudo apt-get install crontab 

Для создания задачи, нужно отредактировать список задач:

 sudo crontab -e 

Пример задачи на выполнение php-скрипта каждые 30 минут:

 */30 * * * * /usr/local/bin/php /usr/local/apache/htdocs/path/script.php

Для просмотра списка задач:

 sudo crontab -l 

Работа с процессами через ssh

Для получения основных сведений о процессах, запущенных текущем пользователем:

 ps -la 

Для получения основных сведений о процессах для всех пользователей:

 ps -ela 

Базовая информация о процессах для текущего пользователя:

 ps -a 

Поиск процесса по куску имени:

 ps ax | grep 'кусок_имени' 

Управление SFTP-пользователями через ssh

Создание нового пользователя SFTP:

 sudo passwd имя_пользователя 

Удаление пользователя SFTP:

 sudo userdel имя_пользователя 

Создание нового пользователя SFTP с правами root`а:

 sudo adduser имя_пользователя sudo 

Создание «домашней» папки для пользователя:

 sudo mkdir /home/username 

Работа с архивами через ssh

Распаковать архив в текущую папку:

 unzip arhiv.zip  

Или так:

 tar xvf arhiv.tar 

Распаковать архив в конкретную папку:

 unzip arhiv.tar -d ~/www/htdocs 

Или так:

 tar xvf arhiv.tar -C ~/www/htdocs 

Создать zip-архив:

 zip -r имя-архива.zip /путь-к-папке 

Настройка прав на файлы и папки через ssh

Задать права на файл:

 sudo chmod 777 file.php 

Задать права на папку и всем вложенным папкам(без флага -R права применятся только на одну конкретную папку):

 sudo chmod -R 777 folderName 

Подробней про права на файлы и папки можно почитать тут: википедия.

Установка и настройка Memcached через ssh

Установка Memcached:

  
sudo apt-get install memcached
cd /etc/
sudo touch memcached.conf
sudo nano memcached.conf // открыть конфиг для редактирования
 

После установки нужно настроить конфиг:

#/etc/memcached.conf
#Memcached будет работать, как демон
-d
#Лог будет складывать туда
logfile /var/log/memcached.log
#Отведём 256 мегабайт ОЗУ под хранилище
-m 64
#Слушать будет этот порт
-p 11211
#Впоследствии желательно поменять
-u nobody
#Слушаем localhost
-l 127.0.0.1

После настройки конфига, нужно перезапустить Memcached:

 service memcached restart 

Далее необходимо установить и настроить модули для php:

sudo apt-get install php-pear
apt-get install php5-dev libmemcache-dev
pecl download memcache
tar xzvf memcache-2.2.6.tgz
cd memcache-2.2.6/
phpize && ./configure --enable-memcache && make
cp modules/memcache.so /usr/lib/php5/20060613/
echo 'extension=memcache.so' >> /etc/php5/apache2/php.ini
sudo service apache2 restart

Работа с редактором vim

Для перехода в режим редактирования нужно нажать insert или i.
Выхода из режима редактирования — нажать ESC.
Сохранения изменений: выйти из режима редактирования и ввести команду :wq
Выхода без сохранения — ввести команду :q!

Место на жестком диске сервера

Узнать место на жестком диске: полный объем/занято/свободно:
В гигабайтах:

 df -h 

В мегабайтах:

 df -m 

Назначение владельца на файлы и папки

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

 cd /var/www/sitename.ru/ 

Чтобы задать владельца www-data для папки public_html и всех вложенных в нее подпапок:

 sudo find public_html -type d -exec chown www-data:www-data {} \; 

Чтобы задать владельца www-data для всех файлов внутри папки public_html:

 sudo find public_html -type f -exec chown www-data:www-data {} \; 

Создание пользователя базы данных и саму БД PostgreSQL

Вход в psql под пользователем postgres(это аналог root для PostgreSQL):

sudo su - postgres
psql

И теперь можно выполнить sql запросы для создания пользователя и самой базы данных:

CREATE USER имя_пользователя WITH PASSWORD 'пароль';
CREATE DATABASE имя_БД OWNER имя_пользователя;

Создание и восстановление бекапов базы PostgreSQL

Создание бекапа:

 pg_dump -f путь/название_файла.sql имя_БД  

Восстановление бекапа:

 psql -h localhost -U пользователь_БД -d имя_БД -f путь/название_файла.sql 

Путь до текущей папки

Получить путь до текущей директории:

 pwd 

Перенос файлов с сервера на сервер:

scp -r откуда куда

 scp -r root@server_1.ru:/home/ root@server_2.ru:/home/

Послесловие

Статья будет дополняться, по мере возможности, когда буду сталкиваться с каким-либо еще проблемами в работе с ssh. Вы тоже можете поучаствовать в наполнении статьи – присылайте свои консольные команды в комментарии или мне на почту: admin@vk-book.ru

Рассказать друзьям:


Оценить:
(Пока оценок нет)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code