Как tmux помогает управлять сервером Cloudways через SSH
Опубликовано: 2020-03-06
Эта статья дополняет и расширяет созданное мной видео об использовании SSH и tmux для управления моими серверами Cloudways. В видео вы можете посмотреть, как я использую tmux для управления SSH-подключениями к нескольким серверам Cloudways и использую инструмент командной строки htop для анализа нагрузки на сервер.
Вы можете посмотреть полное видео здесь:
Поскольку в этом разговоре гораздо больше, чем просто то, что я рассказал в видео, я хотел написать эту бесплатную статью и дать больше информации о том, почему я использую tmux и почему я полагаюсь на SSH для администрирования сервера.
Чтобы дать вам немного предыстории, я не являюсь администратором серверов по образованию - даже не обученный веб-разработчик. Все, что я делаю, - это самоучка. Для меня обучение на практике - мой любимый подход к приобретению навыков или решению проблем, с которыми я сталкиваюсь. Я больше не сторонник формального образования (я бросил степень магистра в области ИТ-безопасности) и вместо этого верю в то, что нужно заниматься технологиями, чтобы понять, как они работают.
Помните об этом подходе при просмотре видео и чтении этой статьи. Как вы увидите, я разделил статью на два раздела. Каждая может быть очень длинной статьей или, возможно, несколькими статьями по отдельности, но я подумал, что в этом контексте они хорошо сочетаются друг с другом.
- Управление вашим сервером через SSH
- Почему вы должны использовать командную строку?
- Пример использования: отладка нагрузки на сервер с помощью htop
- Пример использования: использование WP-CLI на серверах Cloudways
- Почему я рекомендовал tmux?
Управление вашим сервером через SSH
Одним из преимуществ использования Cloudways для хостинга является то, что у вас есть доступ из командной строки к вашим серверам и вашим приложениям. Хотя это не root-доступ, вы можете многое делать в командной строке.
С моей точки зрения, вполне разумно, что я не получаю root-доступ к своим серверам Cloudways. Представьте, как будет выглядеть обслуживание 20 тысяч серверов, если каждый администратор сервера установит свои собственные инструменты и пакеты. Достичь этого подвига невозможно. При этом Cloudways дает нам доступ к WP-CLI и многим другим стандартным инструментам. И это достаточно, чтобы работать с вашими серверами и оставаться в курсе того, что они делают.
Мне потребовалось время, чтобы понять преимущества управления моими серверами через SSH, но сейчас я не вижу другого способа решить эту проблему. Мои основные причины перейти в командную строку:
- Мне не нужно ждать загрузки веб-приложения, чтобы увидеть то, что я хочу увидеть.
- Вход осуществляется с помощью ключей SSH, поэтому мне не нужно вводить пароль без надобности.
- Я могу поддерживать сеансы SSH и мне не нужно беспокоиться о входе в систему и выходе из нее.
- У меня есть доступ к WP-CLI, и я могу делать то, что не могу делать на обычной панели управления WP Admin.
- Я могу автоматизировать выполнение задач с помощью заданий и скриптов cron.
- Мне не нужно отводить руки от клавиатуры, чтобы использовать мышь, и я могу держать их расслабленными.
Обратите внимание, что в качестве предварительных условий у вас должен быть установлен какой-либо клиент SSH. Если вы используете Linux или Mac, вы можете просто использовать предустановленные приложения терминала. Если вы, как и я, пользователь Windows, вы можете либо установить PuTTY, либо использовать Bash, который поставляется с подсистемой Windows для Linux (что я предпочитаю).
Если вы не хотите устанавливать какое-либо дополнительное программное обеспечение, вы также можете открыть терминал SSH из консоли Cloudways, но это решение не рекомендуется для повседневного использования. Как вы увидите, прелесть использования интерфейса командной строки заключается в том, что вам не нужно входить в веб-приложение, такое как консоль Cloudways.
Почему вы должны использовать командную строку?
Поначалу использование командной строки казалось очень пугающим. Это верно как для администрирования сервера, так и для использования командной строки на моем локальном ПК или Mac. Большую часть моих знаний о командной строке я получил из учебных пособий, которые я читал в Интернете или от моего друга, который работает в Cisco. Все дело в обучении на собственном опыте.
Особенно при настройке сервера или службы, такой как веб-сервер или кеш на стороне сервера, очень легко что-то сломать. Незнание того, что я делаю, и отсутствие опыта использования инструментов командной строки не обязательно внушало мне уверенность в том, что я пытаюсь управлять своими серверами через SSH.
В конце концов я получил похмелье и обнаружил преимущества использования командной строки, следуя трем правилам:
- Всегда делайте шаг за шагом и старайтесь понять, что именно вы делаете на этом шаге.
- Всегда имейте точку восстановления или резервную копию на случай, если что-нибудь сломается.
- Всегда проводите тестирование в безопасной среде и никогда не запускайте инструмент командной строки на действующем веб-сайте в первый раз.
С этими правилами я знал, что на самом деле ничего не может пойти не так. Я создал промежуточную версию своего живого веб-сайта на Cloudways, используя функцию « Клонирование », и просто следовал их руководству по входу в систему через SSH. После входа в систему я начал экспериментировать с WP-CLI и другими простыми инструментами управления сервером, такими как htop.
Если вы последуете аналогичному подходу, вы сможете безопасно научиться пользоваться командной строкой. Помогает иметь опыт разработки или ИТ, но я не думаю, что это необходимо. Просто подумайте о командной строке как о способе взаимодействия с вашим компьютером, так же, как вы делаете это с помощью мыши на рабочем столе. Особенно с WP-CLI , легко сделать первые шаги в командной строке и увидеть результаты на панели управления WP Admin.
Пример использования: отладка нагрузки на сервер с помощью htop
На видео вы увидите, что я использую инструмент htop для анализа использования ресурсов сервера. htop - это стандартный инструмент, который дает вам представление о том, что в настоящее время происходит на вашем сервере, в режиме реального времени. Учитывая, что данные мониторинга платформы Cloudways иногда имеют небольшие задержки, чрезвычайно полезно узнать больше об использовании htop .
Каждый раз, когда бот Cloudways уведомляет меня о скачках использования ЦП или ОЗУ, я вхожу на соответствующий сервер через SSH и запускаю htop. В считанные секунды я могу определить процесс и приложение, которые занимают ресурсы. То, что займет у меня минуту или две, используя веб-платформу Cloudways, делается за 10-20 секунд.

Вот как выглядит htop на практике:

Затем процесс отладки заключается в том, чтобы определить приложение, которое использует необычный объем ресурсов сервера через htop, и изучить это приложение более подробно. Если вы видите, что процесс PHP этого приложения занимает ЦП или ОЗУ, вы знаете, что это, вероятно, что-то связано с плагином WP или вашей темой. Часто процессы, запланированные через WP-Cron, накапливаются и теперь выполняются сразу, что приводит к перегрузке вашего сервера.
Если вы видите, что процесс MySQL или MariaDB занимает ресурсы сервера, вы знаете, что вам нужно искать не плагины или тему, а базу данных. Я видел, как базы данных теряют свои индексы и поэтому SQL-запросы выполняются очень медленно. На определение источников проблемы может уйти много времени, если вы не знаете, является ли причиной проблемы PHP или MySQL.
Как вы понимаете, это лишь верхушка айсберга возможностей htop. Вот список практических примеров htop, которые выводят мой пример на новый уровень.
Пример использования: использование WP-CLI на серверах Cloudways
Знание того, как использовать WP-CLI, может по-настоящему изменить ваш подход к повседневной разработке. Установка vanilla WP без перемещения мыши? Без проблем. Удаление всех переходных процессов с установкой дополнительного плагина? Легкий. Анализируете, какие хуки больше всего замедляют время загрузки вашего сайта? Вы также можете сделать это с помощью WP-CLI.
Поистине удивительно, что Cloudways дает нам доступ к WP-CLI через командную строку. Вы можете легко создавать инструменты, которые устанавливают ваш стек и тему плагинов WordPress по умолчанию. Или вы можете использовать WP-CLI для загрузки резервной копии базы данных вашего сайта за секунды или минуты (ну, это зависит от размера вашей базы данных).
Вот в чем загвоздка: вам нужно использовать командную строку для доступа к WP-CLI. И поэтому вам необходимо войти на свой сервер через SSH, чтобы выполнять команды WP-CLI на своих веб-сайтах, размещенных в Cloudways.
Если у вас нет другой причины ознакомиться с командной строкой и начать использовать SSH для управления своими серверами, то WP-CLI должен быть им. Приведу всего три примера, которые стоит попробовать:
1. Оптимизация и восстановление вашей базы данных
Поскольку у нас нет PhpMyAdmin в Cloudways, удобна возможность оптимизировать и восстановить базу данных WordPress с помощью WP-CLI. Используя wp db optimize и wp db repair , вы можете ускорить работу своей базы данных и стабилизировать ее процессы.
2. Создание дочерней темы за секунды
Да, вы можете создать дочернюю тему, вручную создав и загрузив новый каталог с соответствующими style.css и functions.php в wp-content / themes - но зачем беспокоиться, если вы можете запустить простую команду, которая все сделает за вас?
Больше не нужно заглядывать в Кодекс, чтобы проверить, изменились ли спецификации, не нужно больше входить в систему по SFTP и передавать файлы. Просто запустите следующую команду в командной строке, и ваша дочерняя тема готова к использованию:
SLUG для дочерней темы каркаса wp –parent_theme = SLUG –theme_name = TITLE –author = FULL-NAME –author_uri = URI –theme_uri = URI –activate –force
Обратите внимание, что эта команда по умолчанию активирует дочернюю тему. Если вы не хотите этого делать, опустите «–activate –force» в конце команды.
3. Создайте фиктивный контент для целей разработки.
Всем разработчикам нужны данные для работы на этапах разработки. Что, если бы вам не приходилось вручную создавать и дублировать сообщения и страницы в панели управления WP Admin? Что, если бы WP-CLI мог создать для вас любое количество фиктивных данных с помощью простой команды?
Запустив wp post generate –count = 10, вы можете сгенерировать десять демонстрационных сообщений за секунды. Та же функция работает для создания страниц, фиктивных данных WooCommerce и даже позволяет добавлять в сообщения содержимое lorem ipsum.
Просто используя curl http://loripsum.net/api/4 | wp post generate –post_content –count = 10 создаст 10 сообщений, каждая из которых содержит четыре абзаца текста Lorem Ipsum.
Почему я рекомендовал tmux?
Надеюсь, приведенных выше примеров достаточно, чтобы вы взволновались попыткой SSH поддерживать свои серверы Cloudways. Позвольте мне продолжить эту статью и поговорить о том, почему я использую tmux для управления своими сеансами SSH.
Короче говоря, tmux позволяет одновременно управлять несколькими терминальными сессиями. Это означает, что когда вы делаете что-то в терминале во время сеанса tmux, tmux будет отслеживать, что вы делаете. Даже если вы случайно закроете терминал, ваша сессия не будет потеряна. Вы можете просто вернуться туда, где остановились, с помощью одной команды и продолжить работу.
tmux также позволяет создавать сценарии сеансов. Например, если вы склонны многократно выполнять одни и те же команды для настройки среды разработки, вы можете автоматизировать эти команды с помощью tmux.
Честно говоря, я не уверен, что когда-нибудь узнаю все, что может предложить tmux - просто потому, что это так много. Он похож на Google Spreadsheets или MS Excel - мы все знаем, насколько мощны эти инструменты, но ежедневно используют 5% их функций. Однако я знаю достаточно, чтобы использовать tmux в повседневной разработке WordPress .
Как вы можете видеть на видео, я использую tmux для отслеживания своих сеансов SSH. Это избавляет меня от необходимости снова и снова входить на мои серверы Cloudways. Я просто повторно подключаюсь к сеансу tmux под названием «Cloudways» и продолжаю работать на своих серверах. Никакого волшебства, но даже эта небольшая настройка экономит мне время каждый день. Я делаю то же самое для своего личного Raspberry Pi дома (в свободное время я умный домашний ботаник).
tmux крутой, потому что он позволяет вам сэкономить время, стать более продуктивным и уменьшить количество движений рук в течение дня. Если вы похожи на меня, вы легко получаете боль в запястье от долгих дней за компьютером. Даже с эргономичной мышью мне бы это не понравилось. Что сработало, так это уменьшение движений, которые я делал руками.
Время от времени переключение правой руки с клавиатуры на мышь всегда ощущалось как прерывание процесса. Пришлось подумать, куда положить правую руку, запястье слегка напряглось, и я вышел из потока письма. С tmux вы можете добиться производительности практически без использования мыши, как только вы освоите его.
Я бы хотел глубже погрузиться в tmux, но это выходит за рамки этой статьи. Вместо этого я дам вам несколько статей, которые помогут вам начать работу с tmux или улучшить свои навыки: Начало работы с tmux от Linuxize, Преимущества использования tmux от Кигана Ловенштейна и Минималистское руководство по использованию tmux от Питера Янга.
