Системный Администратор (Сисадмин)
13.9K subscribers
1.69K photos
1.55K videos
87 files
1.72K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
Про Linux

1 - навигация по файловой системе
2 - Операции с файлами и папками
3 - Команда Grep: поиск по файлам и папкам
4 - Aliases: как упростить работу в терминале
5 - Как установить MySQL на Ubuntu/Mint
6 - Как установить PostgreSQL на Ubuntu/Mint
7.1 - crontab: запуск задач по расписанию
7.2 - crontab: как запускать Python-скрипт по расписанию

источник

👉 @sysadminof
👍11
Ravada - Менеджер удаленных виртуальных рабочих столов

Это программа, позволяющая пользователю подключаться к удаленному виртуальному рабочему столу. Ravada предназначена для системных администраторов, имеющих некоторый опыт работы с GNU/Linux и желающих развернуть проект VDI.

Его внутренняя часть была разработана и реализована таким образом, чтобы обеспечить возможность добавления в фреймворк будущих гипервизоров. В настоящее время поддерживается KVM, в планах - LXC.

Требования к клиенту следующие: наличие web-браузера и программы удаленного просмотра, поддерживающей протокол spice.
В текущем релизе мы используем гипервизоры KVM: KVM в качестве бэкенда для виртуальных машин. Поддержка LXC находится в стадии разработки.

https://github.com/UPC/ravada

👉 @sysadminof
👍4
Mikrotik и несколько провайдеров. Балансировка каналов

Как мы уже говорили, сегодня очень многие рабочие процессы прямо зависят от наличия доступа в интернет, поэтому несколько каналов доступа - это не прихоть и не роскошь, а насущная необходимость. Одной из первых задач, которые решаются несколькими каналами, является отказоустойчивость, но потом возникают иные вопросы, а именно полноценное использование двух каналов, ведь это совсем не дело если оплаченный резервный канал простаивает. Поэтому в данной статье мы разберем методы балансировки каналов на оборудовании Mikrotik и рассмотрим связанные с этим проблемы и способы их решения.

https://telegra.ph/Mikrotik-i-neskolko-provajderov-Balansirovka-kanalov-03-18

👉 @sysadminof
👍41
Как увеличить размер каталога /tmp/

Иногда необходимо увеличить размер каталога, который в свою очередь находится в корневом каталоге системы.
Решить это можно перемонтированием каталога:
# mount -t tmpfs tmpfs /tmp -o size=1024M,mode=1777,remount

Теперь проверим, есть ли у нас каталог в фстабе:
# cat/etc/fstab

Если нет, создаем, если существует то выполняем следующую команду:
# none /tmp tmpfs size=1024M,mode=1777,rw 0 0

Теперь готов каталог/tmp/ с размером, указанным в операторе “size” размером 1024 mb.

👉 @sysadminof
👍4
Как отлаживать bash-script-ы по шагам

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам

#!/bin/bash

trap 'echo "# $BASH_COMMAND";read' DEBUG

echo line1
echo line2

echo line3



Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.

Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.

Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды

команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C

переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.

# Online Bash Shell.
# Code, Compile, Run and Debug Bash script online.
# Write your code in this editor and press "Run" button to execute it.

trap 'echo "# $BASH_COMMAND";read' DEBUG

echo line1
echo line2

echo line3

echo "Hello World";



👉 @sysadminof
👍10
Как ускорить навигацию командной строки

++++++++++++++++++++++++++++++
Повторный запуск под root — sudo !!
user@host: cat /var/log/messages
cat /var/log/messages: Permission denied.
Как не надо: Вверх. Влево. Влево. Влево. …. sudo Enter. Рррр.
Как надо: sudo !!
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Повторный ввод последнего аргумента — Alt+
Вы захотели еще раз воспользоваться только что написанным аргументом? Например, созданной директорией?

Как не надо: mkdir MyNewDirectory; cd MyNewDirectory
Как надо:

mkdir MyNewDirectory
cd <Alt+.>
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Поиск запущенной команды — Ctrl+R
Какую же команду я только что запускал? Вверх. Вверх. Вверх. Вверх. О, вот и она!

Снова и снова вам приходится копаться в истории, ведь вы не знаете более подходящих альтернатив. Но что, если я скажу вам о том, что есть… поиск?

Как не надо: Вверх. Вверх. Вверх. Enter.
Как надо: Ctrl+R

Просто нажмите Ctrl+R и введите первые буквы нужной команды. Если поиск не выдал нужную команду сразу, то нажмите Ctrl+R еще раз. Повторное нажатие используется для прокрутки результатов. Ниже приведен поиск для cat.

(reverse-i-search)cat: sudo cat /var/log/messages
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Переход в начальную директорию — cd
Вы не на шутку удивитесь, узнав, сколько людей не знают этого способа! cd. Да, так просто. Без лишних аргументов вы сразу попадете в начальную директорию.
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Возвращение в последнюю директорию — cd -
Иногда простой способ — самый лучший. Допустим, вы были в директории /var/www/foo, а теперь оказались в /etc . Простая команда cd — вернет вас обратно в /var/www/foo .

Как не надо: cd /var/www/foo
Как надо: cd -
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Контроль работы: передний план, фоновый режим и проч.
Возможно, вам потребуется какое-то время, чтобы привыкнуть, но оно того стоит. Допустим, вы редактируете файл в vim (вы же не будете этого делать в nano, да?!). И вот вам вдруг захотелось что-то найти в директории /var/www/html. Конечно же, вы можете выйти из vim, перейти в нужную директорию, а потом вдруг решить, что неплохо было бы вернуться к редактированию. Есть и другой вариант — перевести vim в фоновый режим и вернуться к нему позже.

Напишите: Ctrl+Z. Эта комбинация переводит все текущие задачи с переднего плана в фоновый режим. Полезно как минимум для: less, cat, man, vim и т.д.

«И куда же отправится моя активная задача?» — спросите вы. Напишите jobs и сами узнаете.

user@host: jobs
[1] Stopped vim
Супер. Теперь можно заняться чем-то другим. А как только вы решите вернуться к задаче, напишите fg. Эта команда возвращает фоновую задачу (vim) на передний план. Обратите внимание, что фоновые процессы приостанавливаются. Поэтому если в файле вы выполняли что-то из разряда tail, то для завершения команды потребуется какое-то время. Если же в фоновом режиме запущено несколько задач, то напишите fg 3 , где 3 — это номер задачи для возобновления. Увидеть список задач можно по команде jobs.
++++++++++++++++++++++++++++++


👉 @sysadminof
👍11
Права доступа в Линукс
Расширенные права доступа - SUID, SGID, Sticky bit
Работа с ACL

👉 @sysadminof
👍4
Forwarded from Bash Советы
🔍 Обработка содержимого файла в Bash

Часто при работе с файлами в Bash применяют вложенные циклы. Внешний цикл перебирает строки файла, а внутренний — обрабатывает каждую строку по отдельности.

Этот метод особенно полезен для работы с CSV-файлами или другими текстовыми файлами с разделителями. Для правильной обработки данных можно использовать переменную окружения IFS (Internal Field Separator), задавая нужный символ-разделитель.

📌 Пример кода:


IFS=$'\n' # Устанавливаем разделитель строк
for entry in $(cat /etc/passwd) # Читаем файл построчно
do
echo "Значения в строке: $entry"
IFS=: # Меняем разделитель для обработки полей
for value in $entry # Разбираем строку по полям
do
echo " -> $value"
done
done


📌 Что делает этот скрипт?
- Читает файл /etc/passwd построчно
- Для каждой строки разбивает данные по ":" (разделителю в файле)
- Выводит каждое поле строки отдельно

⚠️ Важно!
При обработке больших файлов такой способ может быть неэффективным из-за использования подстановки команд $(cat file). Лучше применять while read, например:


while IFS=: read -r user pass uid gid info home shell
do
echo "Пользователь: $user, UID: $uid, Домашняя папка: $home"
done < /etc/passwd


Такой вариант работает быстрее и не создает проблем с пробелами в строках! 🚀

👉 @bash_srv
👍7
MAC адрес

1бит 1бит 22 бита 24 бита
------------------------------
|I/G |U/L | OUI | OUA |
------------------------------
<-- 46 бит UAA -->


MAC - адрес уникальная комбинация цифр и букв длиной 48 символов. Фактически, это аппаратный номер оборудования, который, присваивается сетевой карте устройства в момент производства.

I/G - (Individual - 0 / Group - 1) тип адреса. Пакеты с групповым адресом получат все имеющие этот групповой адрес сетевые адаптеры.

U/L - (Universal - 0 / Local - 1) - определяет, как был присвоен адрес. Обычно - 0, Единица означает, что адрес задан не производителем, а админом локальной сети (перепрошит или назначен через драйвер устройства)

OUI - (Organizationally Unique Identifier) Идентификатор производителя. Назначается организацией IEEE.

OUA - (Organizationally Unique Address) Уникальный адрес карты для данного производителя.

UAA - Универсально управляемый адрес.

👉 @sysadminof
👍9