DevOps Portal | Linux
13.4K subscribers
866 photos
112 videos
10 files
880 links
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

Связь: @devmangx

РКН: https://clck.ru/3P8kFH
Download Telegram
Bash и кибербезопасность: атака, защита и анализ из командной строки Linux

Авторы: Пол Тронкон, Карл Олбинг
Год: 2020

📂 Скачать книгу

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

Многие из вас каждый день работают в терминале. Этот процесс можно улучшить. Существует множество полезных инструментов CLI, которые могут сделать вашу жизнь в командной строке проще, быстрее и в целом веселее.

🔜 Читать подробнее

👉 DevOps Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤯1
Сегодня расскажу вам, как отправить электронное письмо прямо из терминала Linux! ✉️

1️⃣ Вам понадобится установленный пакет "mailutils", чтобы воспользоваться утилитой "mail". Если его у вас нет, установите с помощью команды:

sudo apt-get install mailutils


2️⃣ Теперь, для отправки письма, воспользуйтесь следующей командой:

echo "Текст вашего письма" | mail -s "Тема письма" адрес_получателя@example.com


Замените "Текст вашего письма" на текст сообщения, "Тема письма" на тему письма и "адрес_получателя@example.com" на адрес электронной почты получателя.

3️⃣ Если нужно отправить письмо с вложением, воспользуйтесь командой "mutt":

mutt -s "Тема письма" -a /путь/к/вашему_файлу.txt адрес_получателя@example.com < /путь/к/текстовому_файлу.txt


Замените "/путь/к/вашему_файлу.txt" на путь к вашему вложению и "/путь/к/текстовому_файлу.txt" на путь к текстовому файлу с телом письма.

Теперь вы можете отправлять письма из терминала Linux! Хорошего дня 🤝

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32😁85🤝2🤔1
Быстрый совет для Linux 👩‍💻

Вы можете включить временные метки в истории команд bash, чтобы видеть, когда вы выполняли предыдущие команды. Это может быть полезно для отслеживания того, над чем вы работали и когда

Чтобы добавить временные метки в историю, просто установите переменную окружения HISTTIMEFORMAT следующим образом:
$ export HISTTIMEFORMAT="%F %T "


Теперь, когда вы просматриваете свою историю или ищете в ней с помощью grep, вы будете видеть временную метку рядом с каждой командой, указывающую, когда она была выполнена:
$ history | tail -n 5


Или, чтобы сэкономить несколько нажатий клавиш:
$ history 5


Формат "%F %T" отображает дату и время, но вы можете настроить его под свои предпочтения.

Примечание: Это не добавляет временные метки к командам, которые вы выполняли до установки HISTTIMEFORMAT, и работает только в bash.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥41
👩‍💻 Обзор файловой системы Linux

Эта схема показывает структуру файловой системы Linux и объясняет предназначение различных директорий, находящихся в корневом каталоге /

/bin - Бинарные файлы основных команд
/boot - Файлы загрузчика системы
/dev - Файлы устройств
/etc - Системные конфигурационные файлы, специфичные для хоста
/home - Домашний каталог пользователя
/lib - Модули общих библиотек
/media - Файлы мультимедиа, такие как CD-ROM
/mnt - Временно смонтированные файловые системы
/opt - Дополнительные пакеты программного обеспечения
/proc - Интерфейс к структурам данных ядра
/root - Домашний каталог пользователя root
/run - Данные времени выполнения
/sbin - Системные бинарные файлы
/srv - Служебные данные, обслуживаемые этой системой
/sys - Виртуальный каталог для информации о системе
/tmp - Временные файлы
/usr - Ресурсы Unix-системы
/var - Файлы, которые постоянно изменяются

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥18
👩‍💻🔍 Сегодня хочу поделиться пятью полезными способами, с помощью которых вы можете получить информацию о расходуемой памяти в вашей системе:

1️⃣ Команда free: Используйте команду free в терминале, чтобы увидеть общее использование и доступную память, а также использование подкачки.

2️⃣ Процессор top: Запустите команду top для мониторинга активных процессов и их потребления памяти в реальном времени.

3️⃣ Команда ps: Используйте ps aux для просмотра списка активных процессов и их потребления ресурсов, включая память.

4️⃣ Профилирование процессов: Используйте инструменты профилирования, такие как htop или atop, чтобы получить более подробную информацию о загрузке ЦП и памяти.

5️⃣ /proc файловая система: В директории /proc есть файлы и директории, которые предоставляют информацию о текущем состоянии процессов и ресурсах, включая память.

Выберите удобный для вас метод и отслеживайте использование памяти в вашей Linux-системе. Это поможет вам оптимизировать ресурсы и улучшить производительность

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
Администрирование системы защиты SELinux

Авторы: Вермейлен Свен
Год: 2020

📂 Скачать книгу

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🔍 Как узнать, какой процесс открыл определенный ресурс?

Если вас интересует, какой процесс открыл определенный ресурс, будь то файл или сетевой порт, у вас есть полезная команда - fuser. Вот как это работает:

1. Чтобы узнать, какой процесс открыл сетевой порт 23 (например, TCP), выполните следующую команду:
fuser -va 23/tcp


Вы получите идентификатор процесса, который открыл этот порт.

2. Если вам нужно узнать, какой процесс открыл определенный файл, используйте команду:
fuser -va /путь/к/файлу


Например, для файла /chroot/etc/resolv.conf команда будет выглядеть так:
fuser -va /chroot/etc/resolv.conf


Вы узнаете идентификатор процесса, который открыл этот файл.

После того как вы узнали идентификатор процесса, дальние шаги зависят от вас. Например, вы можете завершить этот процесс с помощью команды kill.

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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥4
🔒 Защити свои файлы и сообщения с легкостью!

Cегодня расскажу вам о простом способе шифровки файлов и сообщений при помощи терминала Linux. Это отличный способ обеспечить конфиденциальность ваших данных

Команда для шифровки файлов:

Для шифрования файлов мы будем использовать утилиту GPG (GNU Privacy Guard). Она позволит нам создать зашифрованный файл из обычного. Процедура проста и состоит из нескольких шагов:

1️⃣ Установка GPG:

Если вы еще не установили GPG, выполните в терминале команду:
sudo apt-get install gnupg


2️⃣ Шифрование файла:

Теперь, когда GPG установлен, вы можете зашифровать файл с помощью команды:
gpg -c имя_файла


После выполнения этой команды, вы будете попрошены ввести пароль для шифрования файла.

3️⃣ Расшифровка файла:

Для расшифровки файла выполните команду:
gpg имя_файла.gpg


GPG запросит вас ввести пароль, который вы использовали при шифровании файла.

4️⃣ Команда для шифрования сообщений:

Вы также можете зашифровать текстовые сообщения при помощи GPG. Для этого выполните следующую команду:
echo "Ваше сообщение" | gpg -e -r имя_получателя > зашифрованное_сообщение.gpg


Здесь "имя_получателя" - это публичный ключ получателя сообщения. Он должен иметь публичный ключ GPG, чтобы расшифровать сообщение.

💡 Обратите внимание, что без публичного ключа получателя расшифровка сообщения будет невозможной!

Таким простым способом вы можете обезопасить свои файлы и сообщения от несанкционированного доступа. Не забывайте хранить ваши пароли и ключи в надежном месте.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
How To Secure A Linux Server

В репозитории содержится развивающееся руководство по обеспечению безопасности сервера GNU/Linux.

Руководство освещает такие темы, как:
SSH Server
The Network
The Auditing
The Danger Zone
The Miscellaneous

https://github.com/imthenachoman/How-To-Secure-A-Linux-Server

👉 DevOps Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👀4
Сегодня хочу поделиться полезной информацией о том, как запускать процессы в фоновом режиме через терминал Linux. Это удобный способ выполнить задачу и продолжить работу, не прерывая своего текущего сеанса. 🐧

Для запуска процесса в фоне используется специальный символ "&". Давайте посмотрим на примере команды "command":

1️⃣ Простая команда:
$ command &


Таким образом, "command" будет запущен в фоне, и вы сможете продолжать работать в терминале.

2️⃣ Запуск команды в фоновом режиме с выводом в файл:
$ command > output.txt &


В данном случае вывод команды "command" будет перенаправлен в файл "output.txt", а сам процесс будет запущен в фоне.

3️⃣ Запуск команды в фоновом режиме без вывода:
$ command > /dev/null &


В этом примере команда "command" будет выполнена в фоне, а вывод будет направлен в специальное устройство "/dev/null", которое игнорирует вывод.

4️⃣ Запуск процесса в фоне с возможностью отключиться от терминала:
$ nohup command &


Команда "nohup" позволяет запустить процесс в фоне и отключиться от терминала, не прерывая его выполнение. Вывод будет сохранен в файле "nohup.out".

Теперь вы знаете, как запускать процессы в фоне через терминал Linux! Этот метод очень удобен для выполнения долгих задач и автоматических скриптов.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥8😁1🤔1
Python для сетевых инженеров. Автоматизация сети, программирование и DevOps

Автор:
Чоу Э.
Год:
2023

📂 Скачать книгу

👉 DevOps Portal | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥6
Самая красивая и лаконичная шпаргалка bash

В твиттерской опубликовали ладно скроенную инфографику от sysexplore.com, которая поможет не только ознакомиться с базовой терминологией скриптинга, но и с вычиткой параметров из файла, хэндлинг сигналов (SIGTERM) и проч.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥8
Команда updatedb: быстрый поиск файлов на Linux!

Хочу рассказать вам о полезной команде updatedb для операционной системы Linux.

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

Как это работает?

Когда вы запускаете команду updatedb, она просматривает все файлы на вашем компьютере и создает специальный файл индекса по пути /var/lib/mlocate/mlocate.db. Этот файл содержит информацию о каждом файле в системе.

Что это дает вам? Теперь вы можете мгновенно искать файлы по всей системе, не тратя время на перебор всех каталогов! Удобно, правда?

Как запустить updatedb? Просто откройте терминал и введите команду:

sudo updatedb

После того, как индекс будет обновлен, используйте команду locate, чтобы быстро найти нужные файлы. Например, чтобы найти файл с именем myfile.txt, введите:

locate myfile.txt

И волшебство произойдет) Вам будут показаны все файлы с таким именем на вашей системе.

Так что не тратьте время на долгий поиск файлов вручную. Используйте команду updatedb и находите все, что вам нужно мгновенно 😎

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28
Python для DevOps: Полное руководство от новичка до продвинутого уровня

Python получил широкое распространение в экосистеме DevOps благодаря своей простоте, обширным библиотекам и адаптивности для различных платформ и задач. Независимо от того, автоматизируете ли вы рутинные задачи, управляете инфраструктурой или разрабатываете CI/CD конвейеры, Python предлагает мощный и надежный набор инструментов.

🔜 Читать статью

👉 DevOps Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
🐧 Сегодня я хочу поделиться с вами пятью полезными командами в терминале Linux, которые помогут вам создать папку (директорию) в системе

1️⃣ mkdir folder_name - Эта простая команда создает новую папку с указанным именем. Просто замените "folder_name" на имя, которое вы хотите присвоить новой папке.

2️⃣ mkdir -p path/to/directory - Эта команда позволяет создать вложенные папки. Если путь содержит несуществующие директории, команда автоматически создаст их.

3️⃣ mkdir folder1 folder2 folder3 - Вы можете использовать одну команду для создания нескольких папок сразу, просто перечислите их имена через пробел.

4️⃣ mkdir -m 777 folder_name - С помощью этой команды вы можете установить права доступа для созданной папки. В примере выше установлены полные права на чтение, запись и выполнение для всех пользователей.

5️⃣ mkdir --version - Если вы хотите проверить версию команды mkdir, это можно сделать с помощью этой команды.

Пользуйтесь этими командами, чтобы с легкостью создавать и организовывать свои папки в терминале Linux

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥5😁2🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
Открываем файлы и папки в приложении по-умолчанию через терминал

При необходимости вы можете напрямую из терминала открывать нужные вам файлы или папки в приложении по-умолчанию. Чтобы сделать это, введите следующую команду:

ls -1 --hyperlink=always


Дальше следуете тому, что показано на прикрепленной анимации и будет вам счастье 👍

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
Работаем с кодировкой файлов в терминале Linux 😎

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

Пример 1: Преобразование из UTF-8 в ASCII
iconv -f UTF-8 -t ASCII input.txt > output.txt


Этот пример преобразует содержимое файла input.txt из кодировки UTF-8 в ASCII и записывает результат в output.txt.

Пример 2: Изменение кодировки файла
iconv -f ISO-8859-1 -t UTF-8 input.txt > output.txt


Эта команда изменяет кодировку файла input.txt с ISO-8859-1 (Latin-1) на UTF-8 и записывает результат в output.txt.

Пример 3: Указание файла для стандартного ввода и вывода
iconv -f WINDOWS-1251 -t UTF-8 < input.txt > output.txt


Этот пример использует стандартный ввод (input.txt) с кодировкой WINDOWS-1251 и выводит результат в output.txt с кодировкой UTF-8.

Пример 4: Рекурсивное преобразование файлов в директории
find /path/to/directory -type f -name '*.txt' -exec iconv -f UTF-8 -t ISO-8859-1 {} -o {} \;


Этот пример находит все файлы с расширением .txt в указанной директории и конвертирует их содержимое из UTF-8 в ISO-8859-1.


К слову, утилита iconv также портирована под Windows, поэтому братцы-форточники тоже могут порадовать себя тем, что в консоли всяческую магию творят 😁 Обычные же линуксоиды, привыкшие к этим вашим окошечкам и кнопочкам, могут спросить: на кой мне это все знать?

Ну, во-первых, лучше знать и не пригодится, тем не знать и оказаться в ситуации, когда понадобится. И, во-вторых, тем пользователям, которые много времени проводят в терминале своего ПК (ноутбука) или сервера удаленного, утилита может ой как сильно пригодится.

Если же желаете побольше узнать про кодировки разные, то милости прошу в Google, Yandex и иные любимые вами поисковики: информации три вагона, две телеги.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3
Как в терминале Linux отобразить ход выполнения операции копирования или удаления? 🗑📄

Бывает что вы вводите команду cp или rm для копирования или удаления чего-либо и после нажатия Enter курсор просто повисает в терминале. Согласитесь, что было бы приятнее видеть какой-то прогресс в выполнении этой команды. Чтобы сделать это используется ключ --verbose или -v. В контексте Linux и других UNIX-подобных систем, указанные опции обычно относятся к режиму вывода подробной информации о выполняемых командах.

Например, вот так можно работать с копированием:
cp -v <исходные_файлы_или_каталог> <целевой_каталог>


Или удалением:
rm -rf -v <каталог>


Выхлоп будет содержать подробности совершаемых операций. И станет наглядно видно, что происходит и когда это закончится. Согласитесь, что в определенных моментах это удобно? Естественно, ключ --verbose или -v будет работать не только с копированием или удалением.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍223
Работаем с блочными устройствами Linux через скрипты

Сегодня расскажу про две очень полезные утилиты Linux, с помощью которых удобно в скриптах делать проверки наличия подключенных и примонтированных блочных устройств и файловых систем. Это утилиты findmnt и findfs.

1️⃣ Findmnt удобна и полезна сама по себе, без привязки к скриптам. Просто запустите её и посмотрите вывод. Она выводит в консоль подробную информацию о всех точках монтирования. А ключ -x ещё и позволяет проверить отредактированный файл fstab на наличие в нём ошибок. Рекомендую запомнить эту возможность и использовать:

# findmnt -x 
Success, no errors or warnings detected


Если в чём-то ошибётесь, то получите ошибку:

# findmnt -x 
/mnt/backup
[E] unreachable on boot required source: UUID=151ea24d-977a-412c-818f-0d374baa5012


2️⃣ Findfs сама по себе ничего не выводит. Она умеет искать файловые системы по заданными параметрами В качестве аргумента принимает значение LABEL, UUID, PARTLABEL и PARTUUID. Например так:

# findfs "UUID=151ea24d-977a-412c-818f-0d374baa5013" 
/dev/sda2


Нашли файловую систему на /dev/sda2 с заданным UUID. При этом код выхода будет 0:

# echo $? 
0


Если файловая система не будет найдена, код будет 1:

# findfs "UUID=151ea24d-977a-412c-818f-0d374baa5012" 
findfs: unable to resolve 'UUID=151ea24d-977a-412c-818f-0d374baa5012'
# echo $?


3️⃣ Соответственно, подобную проверку можно использовать в скриптах перед тем, как выполнять какие-то действия. Это актуально для каких-нибудь бэкапов или синхронизаций на сетевых или внешних дисках. Делаем простую проверку, типа такой:

if findfs "UUID=$1" >/dev/null; then 
echo "$1 connected."
else
echo "$1 not connected."
fi


Вместо echo можно сразу выполнять какое-то действие. Оно будет выполнено, если указанный скрипту UUID подключен. То есть сам скрипт работает так:

# ./check-fs.sh 151ea24d-977a-412c-818f-0d374baa5013 
151ea24d-977a-412c-818f-0d374baa5013 connected.


Точно так же по аналогии можно сделать проверку точек монтирования с помощью findmnt:

if findmnt -rno TARGET "$1" >/dev/null; then 
echo "$1 mounted."
else
echo "$1 not mounted."
fi


Проверяем:

# ./check-mnt.sh /mnt/extbackup 
/mnt/extbackup not mounted.


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

Если информация оказалась полезной, то поставьте лайк этой заметке 😧

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍243
Коды завершения в Linux 🚪

Обратили внимание на такую вот конструкцию в предыдущем посте:

echo $?


Команда echo, думаю, понятно что делает. Но что за значок доллара и вопросительный знак после? Это обозначение для вывода кода завершения команды.

Логика простая: если вернется 0, то ошибок нет, команда отработала как нужно. Если получили 1, то что-то пошло не так. Все просто 🤷‍♂️

Использовать удобно все в тех же скриптах для проверки успешности того, как этот скрипт отработал. Например, нужно выполнить какое-то действие только после того, как будете уверены, что конфигурация верная. Вначале выполняем валидацию конфига (допустим, веб-сервера Nginx):

nginx -t


После проверяем, что вернулся 0 и если да, то выполняем команду на рестарт конфига:

nginx -s reload


Если получили 1, то нужно проверить конфигурацию веб-сервера на ошибки.

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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍185