Shell

В предыдущей статье я рассказал, как я подготавливаю Linux сервер к работе. Открывая тему моего набора инструментов на сервере, я хочу начать с первых программ, с помощью которых осуществляется подключение и работа в удаленном терминале. Это mosh, zsh и tmux.

mosh (mobile shell)

Mosh — современная замена старого доброго SSH. Ладно, это не полная его замена, поскольку для работы mosh нужен все тот-же ssh, можем сказать, что это новое дыхание для ssh ;). После того, как произошло соединение, запускается mosh-server с использованием одного из UDP портов в диапазоне от 60000 до 60010. Дальнейшее взаимодействие между клиентом и сервером происходит по UDP.

“А что это за программа такая?” — часто приходиться слышать, работая на сервере в SSH терминале, от человека, который подошел и уставился в мой монитор. Сегодня, дорогой друг, стоящий за моей спиной, я познакомлю тебя с ПО, которое использую в ежедневной работе. Но, начать надо с того, как все это добро попадает на тот самый Linux сервер.

Виртуальные машины приходят и уходят, иногда, десятками за неделю. Каждый раз настраивать “под себя” утомительно… Я нашел для себя решение задачи и теперь готов поделиться. Это ansible — простой инструмент, который через стандартное SSH подключение выполняет рутинные операции по подготовке сервера к работе. Все инструкции, что делать, описаны в файле playbook.yml. В качестве хоста, который будет настраивать, должна быть Linux либо OSX машина. Я это всегда делаю со своего MacBook либо с тестового Linux сервера в офисе. Но, в основном с MacBook. Сам рецепт приготовления сервера, я выложил на github и сейчас расскажу, как им пользоваться.

Процесс настройки состоит из нескольких этапов:

  1. Установка всего необходимого мне ПО.
  2. Создание пользователей и настройка ключей авторизации для SSH. Отключение регистрации по паролю и отключение root через ssh.
  3. Настройка firewall — опционально.
  4. Установка docker — опционально.

А теперь о каждом пункте детальный.

Сьогодні потрібно було обмежети для одного працівника (192.168.0.2) швидкість до 512 Кб/с на вхід та вихід. Допоміг ось такий скрипт:

#!/bin/bash
#
#  tc uses the following units when passed as a parameter.
#  kbps: Kilobytes per second
#  mbps: Megabytes per second
#  kbit: Kilobits per second
#  mbit: Megabits per second
#  bps: Bytes per second
#       Amounts of data can be specified in:
#       kb or k: Kilobytes
#       mb or m: Megabytes
#       mbit: Megabits
#       kbit: Kilobits
#  To get the byte figure from bits, divide the number by 8 bit
#
TC=/sbin/tc
IF=eth1                 # Interface
DNLD=512kbps        # DOWNLOAD Limit
UPLD=512kbps        # UPLOAD Limit
IP=192.168.0.2      # Host IP
U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32"

start() {

    $TC qdisc add dev $IF root handle 1: htb default 30
    $TC class add dev $IF parent 1: classid 1:1 htb rate $DNLD
    $TC class add dev $IF parent 1: classid 1:2 htb rate $UPLD
    $U32 match ip dst $IP/32 flowid 1:1
    $U32 match ip src $IP/32 flowid 1:2

}

stop() {

    $TC qdisc del dev $IF root

}

restart() {

    stop
    sleep 1
    start

}

show() {

    $TC -s qdisc ls dev $IF

}

case "$1" in

  start)

    echo -n "Starting bandwidth shaping: "
    start
    echo "done"
    ;;

  stop)

    echo -n "Stopping bandwidth shaping: "
    stop
    echo "done"
    ;;

  restart)

    echo -n "Restarting bandwidth shaping: "
    restart
    echo "done"
    ;;

  show)

    echo "Bandwidth shaping status for $IF:\n"
    show
    echo ""
    ;;

  *)

    pwd=$(pwd)
    echo "Usage: $(/usr/bin/dirname $pwd)/tc.bash {start|stop|restart|show}"
    ;;

esac

exit 0

Системный Администратор - 2010
Системный Администратор - 2010
В этом году решил тоже пройти тестирование в конкурсе «Системный Администратор — 2010». Вот результат:

Подведены итоги конкурса «Системный Администратор — 2010».

В этом году в конкурсе приняли участие более 47 тысяч системных администраторов. Если представить стадион, на котором проходили игры Чемпионата мира по футболу в этом году, то участники конкурса заняли бы все трибуны!

Из всех участников 10 процентов получили рейтинг Гуру. Еще 20% стали Профи, 18% — опытные и 22% — начинающие системные администраторы. Среднее время прохождения теста — около часа.

Поздравляем, Вы показали отличные знания, получив рейтинг Гуру!

Сьогодні необхідно було надіслати Email з прикріпленим файлом на віддаленному сервері, доступ до якого я Ваю лише по SSH. Виявилося усе банально просто:

  1. Встановити mutt (у мене він вже був встановленний)
  2. Надсилаємо з консолі
 mutt -s "TEST mail" -a /home/samael/nazia.sql.bz sss@domain.org < /tmp/email_text

де,

  • sss@domain.org — одержувач
  • /tmp/email_text — тіло повідомлення (читається з приговленого файла «/tmp/email_text»)
  • /home/samael/nazia.sql.bz — додаток (опція -a)
  • «Test mail» — тема повідомлення (опція -s)

После того, как Укртелеком ввел новые тарифы на ADSL и до 24 Мбіт/с дома — это уже реальность, начал я думать какой-то скрипт для перезапуска PPPoE соединения. Моя линия смогла выдержать соединение на 17 Мбіт/с, но соединение на FreeBSD стало регулярно 1 раз в сутки зависать.

И так, на Perl написал скрипт, который пингует Яндекс (у Вас должен быть установлен perl модуль p5-Net-Ping) и если пинг не проходит, перезапускаем соединение. События логируем в /var/log/ppp.log для анализа. А вот и сам скрипт, который нужно прописать в crontab:

Каждый, кто впервые сталкивается с операционными системами семейства Unix — знакомятся с ним 🙂 Загадочным редактором, в котором невозможно ничего написать, изменить, не работают стрелки и т.д. Да, это Vi редактор, который начал свой путь в далеком 1976 году и до сегодня является одним из самых популярных среди системных администраторов (Сейчас на меня набросятся сторонники Emacs, поскольку спор между сторонниками vi и emacs является классическим примером «религиозных войн»). Собственно я больше люблю его более современный клон Vim.
Редактор VI имеет три режима:
1. Командный — в этом режиме можно перемещаться по файлу и выполнять редактирующие команды над текстом. Команды вызываются ОБЫЧНЫМИ ЛАТИНСКИМИ БУКВАМИ.
2. Ввода текста — в этом режиме обычные латинские буквы будут вставляться в текст.
3. Режим строчного редактора ED используется для управления файлами (сохранить файл, зачитать файл и т.д.)

Для того, что бы что-то написать, вам нужно: перейти в режим ввода (нажатием латинской i ), написать текст, выйти из режима ввода (клавиша Esc), перейти в командный режим (клавиша :) и ввести команду (сохранить и выйти, будет так: :wq). Страшно? Тогда Вам дальше не стоит этого читать! Лучше пользуйтесь текстовый редактор ee (Easy Editor).


У мене ноутбук з роздільною здатьністю екрану 1280 на 800. Після інсталяції, система встановила 1024 x 768. Захотів змінити старим способом через Xorg, а не знайшов конфігураційного файлу! Виявляється в 9.10 усе потрібно робити з допомогою xrandr. Ось як можна додати нові параметри. Зверніть увагу: в мене монітор LVDS1, у Вас це може бути VGA1.

Перевіряємо перелік встановлених параметрів:

xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
VGA1 disconnected (normal left inverted right x axis y axis)
LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
   1024x768       60.0*+
   800x600        60.3
   640x480        59.9
TV1 disconnected (normal left inverted right x axis y axis)

Необхідно було змінити розмір зображень для фото галереї на один сайт. Усього — штук 200 було. Як це швидко зробити? Ось тут мені знадобилась така чудова програма, як ImageMagick®. Її доволі просто можна встановити з портів FreeBSD і вона присутня майже у всіх Linux дистрибутивах.

А тепер магія — однією командою змінюємо розмір усіх зображень до необхідного нам і зберігаємо в нові файли (для назви обрав поточну дату і час):

ls  | while read i; do convert -resize 1200x800  "$i" ../etc/`date +%s`".jpg"; done

Якщо почитаєте у манах, то знайдете ще не один цікавий параметр!