Как редактировать crontab через nano

Vim не самый юзер-френдли текстовый консольный редактор, например, nano на порядок удобнее и интуитивнее. Однако, именно vim является редактором для крона по-умолчанию в CentOS.

crontab -e

Команда выше открывает крон-файл текущего пользователя для редактирования в редакторе по-умолчанию. Однако, его можно изменить разово перед каждым открытие крона на редактирование.

EDITOR=nano crontab -e

Конечно, писать лишних 13 символов быстро надоест, поэтому можно переопределить значение этой константы в текущей сессии пользователя:

export EDITOR=nano

Когда надоест и это, остаются только крайние меры: определение этой константы в конце файла /etc/bashrc.

Вачдог по-быстрому

Бывают ситуации, когда что-то идёт не так и нужно по-быстрому запилить килялку чего либо и как можно скорее вернуться к выполнению основной задачи. Типичная ситуация: плодятся процессы, которые никто не прибивает, что приводит к утечке ресурсов и тормозам на всём сервере. Самым быстрым способом будет мониторинг количества процессов и рестарту ноды/приложения при достижении критического значения.

while true; do pscnt=$(ps aux | grep [your app] | wc -l); echo "$pscnt"; if (( pscnt > 500 )); then [your app restart]; fi; sleep 2; done

Запуск такого скрипта из консоли будет не лучшей идеей, гораздо надёжнее положить его в крон примерно таким образом:

* * * * * pscnt=$(ps aux | grep [your app] | wc -l); echo "$pscnt"; if (( pscnt > 500 )); then [your app restart]; fi; >> /var/log/watcher.log

Ну и конечно при первой возможности разобраться с причинами этой ситуации.

Как использовать команду watch с пайпами

Периодически при работе с консолью Linux нужно пронаблюдать за изменением вывода какой-либо команды с промежутком в несколько секунд. Для этого есть команда:

watch [your commands]

Но если в исходной команде присутствует конвейер (pipe), то его использование в лоб не приведёт к желаемому результату, например:

watch ps aux | wc -l

На выводе вы ничего не получите. Для корректной работы такую последовательность команд нужно заключить в одинарные кавычки:

watch 'ps aux | wc -l'

Возможно, не самое красивое решение, но работает.

Если вы не ищите лёгких путей, то есть такой вариант:

while true; do ps aux | wc -l; sleep 2; done

Portainer — web-ui для управления Docker

Короткая заметка о том, как упростить себе жизнь при работе с докером. Если честно, это это единственная админка, которую я пробовал ставить, но на данный момент она покрывает 80% моих задач, и лишь в 20% случаев приходится заходить в консоль и писать команды ручками, в частности, при работе с docker-compose. Наверняка существуют более продвинутые решения, но это уже тема для полноценного ресёрча.

Картинки по запросу Portainer docker compose

Читать далее Portainer — web-ui для управления Docker

Интересные решения с HighLoad Cup

В августе 2017 года Mail.Ru Group провёл чемпионат для backend-разработчиков HighLoad Cup. Суть конкурса проста: используя любой стек технологий написать как можно более производительное приложение под ограниченные серверные ресурсы обрабатывающее заранее определённый набор запросов и упаковать его в docker контейнер. Естественно, в лидерах оказались решения на C/C++, Java, GoLang. Что удивительно, PHP стек оказался производительнее NodeJS и Python решений. Читать далее Интересные решения с HighLoad Cup

Основы Docker

И ещё одна интересная выжимка фактов о докере, которая поможет в кратчайшие сроки начать его продуктивное использование.

Цель данной статьи собрать в небольшую кучку основную информацию, минимально достаточную для того, чтобы начать работать с докер на ежедневной основе и удалить с рабочей машины локально установленные apache, mysql, virtualenv, python3, mongodb, memchaced, redis, php5, php7 и весь остальной зоопарк, который мы используем при разработке, и который зачастую еще и конфликтует между собой от версии к версии.

Читать далее Основы Docker

Полная автоматизация «development» среды с помощью docker-compose

Ещё одна интересная статья на тему докера с примерами использования docker-compose для автоматического развёртывания всей экосистемы проекта. Поможет быстро структурировать кашу в голове и начать использовать докер для разработки и тестирования. Читать далее Полная автоматизация «development» среды с помощью docker-compose

Большой Docker FAQ: отвечаем на самые важные вопросы

С недавнего времени начал рассматривать переход с lxc-контейнеров под управлением Proxmox на более гибкий Docker, в основе которого лежат те же namespaces и cgroups. Первое впечатление о докере очень хорошее, однако остаётся много вопросов. Предлагаю вам ознакомиться с интересным FAQ, который будет полезен тем, кто только начинает своё знакомство с докером. Хоть он и опубликован более 2-х лет назад (2015-06-04), но большая часть информации актуальна. Читать далее Большой Docker FAQ: отвечаем на самые важные вопросы

Отрицательные стороны админки Voyager для Laravel

Недавно наткнулся на очередную админку для Laravel — Voyager. На данный момент она имеет 4 715 звёзд на гитхабе, что в 2-5 раз выше, чем у других аналогичных проектов. Мне понравилась видео-презентация и я решил посмотреть Voyager в деле. Далее я постараюсь убедить вас не использовать её в продакшене особенно при CI подходе.

Читать далее Отрицательные стороны админки Voyager для Laravel