Архив метки: linux

Цветовой вывод текста в консоли Linux

Любой текст выводимый в консоль можно раскрасить., заключая выводимое в ESC последовательности вида

\x1b[31m-что то пошло не так (с)..\x1b[0m\n

, где \x1b[ЦВЕТ;ФОНm — включение цвета, \x1b[0m — отключение, ХХ можно задавать согласно следующей таблицы:

атрибуты
0 нормальный режим
1 жирный
4 подчеркнутый
5 мигающий
7 инвертированные цвета
8 невидимый
цвет текста
30 черный
31 красный
32 зеленый
33 желтый
34 синий
35 пурпурный
36 голубой
37 белый
цвет фона
40 черный
41 красный
42 зеленый
43 желтый
44 синий
45 пурпурный
46 голубой
47 белый

Синхронизация папок удаленных серверов с локальной машиной посредством ansible

Задача: есть кучка серверов, на которых нужно поддерживать в актуальном состоянии все скрипты.

Решение: используем ansible

1) Создаем файл конфигурации ansible.cfg

[defaults]
hostfile = /home/pavel/ansible/inventory/inventory
sudo_user = root
user=pavel
remote_user = root
control_path_dir = /home/pavel/.ansible/cp
log_path = /home/pavel/logs/ansible.log

, куда занесем некоторые основные значения, чтобы каждый раз не вставлять в параметры

2) Сделаем доступ по ssh без ввода пароля

3) Создадим файл inventory

[cdvol]
13.27.142.21 ansible_ssh_user=pavel
21.147.18.11 ansible_ssh_user=pavel

, где создали группу и перечислили хосты этой группы

4) Создадим playbooks

---
- hosts: cdvol
  tasks:
  - name: remove folder
    shell: "rm -R -r -f /home/pavel/cd_service"  
  - name: create folder
    shell: "mkdir /home/pavel/cd_service"
  - name: sync
    synchronize: src=/home/pavel/ansible/files/ dest=/home/pavel/cd_service/ mode=push

5) Ну и запустим наши потуги:

ansible-playbook -i /home/pavel/ansible/inventory/inventory /home/pavel/ansible/playbooks/start_update.yml

Инструменты для мониторинга в Linux

Создано на основе публикации: https://habrahabr.ru/company/first/blog/310164/

dstat — показывает текущую нагрузку на сеть и жесткий диск

strace — показывает все системные вызовы выполняемые программой. Например:

strace php script.php

opensnoop, execsnoop, eBFP — показывает в реальном времени файлы открываемые программой. Например:

opensnoop -p 2016

— покажет открытые файлы процессом с PID 2016

netcat — позволяет из консоли выполнять сетевые запросы.

netstat — просмотр «занятых » сетевых портов

ngrep — просмотр сетевого трафика. Например:

ngrep -d any yandex

tcpdump — то-же просмотр сетевого трафика с более широкими возможностями.

wireshark — просмотр трафика с gui

perf — просмотр, чем занимается процессор. Например:

perf record php  -записываем что делает php
затем смотрим:
prefreport

 

Создание ссылки на каталог при помощи ln

Бывает такая беда. Часто… Создал разделы на ж/д и не рассчитал их размеры.. А потом ходишь, ходишь в школу, а потом БАЦ! И место неожиданно кончилось. И лишнего с раздела удалить нечего или нельзя…

Поможет чудная команда ln, которая может создать ссылку с одного раздела на другой так, что другие программы даже не заметят того, что на самом деле работают уже с другим диском или разделом.

Например: перенесем папку /var/log на другой раздел, который находится..ну скажем в /backup . Для этого:

  1. Физически переместим папку /log из /var в /backup
  2. Выполним команду:
ln -s /backup/log /var

Профит. Всё работает. Никто подмены не заметил..

Автоматическое создание поддомена в apache

Задача: избавиться от необходимости руками прописывать каждый домен в настройках Apache.

Решение: настроим apache так, чтобы он автоматически подхватывал доменное имя, и отдавал страницу из соотвествующей доменному имени папки:

1. Вкючаем модуль vhost_alias

2. Настраиваем основной кинфиг apache подобным образом образом:

<VirtualHost *:80>
 ServerAdmin pкуцаукауb@mail.ru
DocumentRoot /var/www/html
 VirtualDocumentRoot /var/www/html/%0

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName zxc.ru
ServerAlias *.zxc.ru
</VirtualHost>

 

3. Одно НО! Настроенный таким образом апач будет искать www.zxc.ru и zxc.ru в разных папках. Для устранения: в папке www.zxc.ru создадим .htaccess, который будет переадресовывать на zxc.ru:

Redirect 301 / http://ymt-net.ru/