Админские угодья
1.46K subscribers
462 photos
40 videos
223 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Выводим список установленных пакетов в Linux по дате

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


https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
👍32
Список полезных консольных команд VMWare ESXi (в том числе ESXCLI)

reboot — перезагрузить хост
poweroff — выключить хост
esxcli system version get — узнать версию (номер) инсталлированной версии VMware ESXi
uname -a — так же узнать версию VMware ESXi
vmware –vl – и еще один способ узнать версию и релиз VMware ESXi
esxcli hardware pci list | more — полная информация об установленных PCI устройствах
lspci — краткая информация обо всех установленных PCI устройствах
esxtop — диспетчер процессов top для vmware esxi (быстрые клавиши для переключения дисплея: c :cpu, i :interrupt, m :memory, n :network, d :disk adapter, u :disk device, v :disk VM, p :power mgmt)
vmkerrcode -l — расшифровка кодов ошибок
esxcfg-nics -l — информация о сетевых картах
esxcfg-vswitch -l — информация о виртуальных коммутаторах
find . -name libstorelib.so — найти файл libstorelib.so
dcui — работа с консолью сервера через ssh сессию
chkconfig -l — статус работы демонов
esxcli hardware memory get — размер установленной памяти
esxcli software vib list — список установленных vib-пакетов
esxcli network ip connection list — состояние активных соединений (аналог netstat)
esxcli storage vmfs extent list — информация о примонтированных/подключенных томах VMFS
esxcli hardware clock (get/set) — отображение/установка времени esxi-хоста
cd - Смена текущей директории;
cp - Копирование файла.cp [файл 1] [файл2];
find - Поиск файлов по критериям;
ls - Список файлов и директорий в текущей или явно указанной директории.ls /vmfs/volumes/ ключи: -l подробная информация -a отображение скрытых файлов;
mkdir — Создание директории;
mv — Перемещение файла. Переименование файла.mv [путь и имя файла] [путь, куда перемещать];
ps — Информация о запущенных процессах. ps -ef;
rm - Удаление файлов;
shutdown — Выключение или перезагрузка сервера shutdown nowshutdown –r now;
vi — Текстовый редактор;
nano — Дружелюбный к новичкам текстовый редактор, отсутствует на ESXi;
cat — Вывод содержимого файла на экран. cat /etc/hosts;
more — Вывод содержимого файла на экран, по странице за раз. more /etc/hosts;
man — Справка по командам man <команда, по которой есть вопрос>, для некоторых команд помощь выводится при запуске самой команды без параметров;
useradd — Создание пользователя. useradd <имя пользователя>;
passwd - Задание пароля пользователю passwd <имя пользователя>;
esxcli storage nfs list — список подключеных nfs- хранлилищ на хосте
esxcli software vib list — cписок установленных vib-пакетов
esxcli hardware memory get — информация об использовании памяти на хосте ESXi, включая общий объем
👍2
Lexicon - утилита для управление записями DNS на различных DNS-провайдерах.

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

Поддерживает большой список популярных сервисов Cloudflare, Cloudns, Yandexcloud и т.д.

https://github.com/AnalogJ/lexicon
3
Трюки терминала Bash

Полезные комбинации клавиш (хоткеи) и небольшие хитрости, которые сделают Вашу работу в Linux более эффективной.

Горячие клавиши" Bash с Ctrl
Ctrl + n — то же самое, что и стрелка вниз.
Ctrl + p — то же самое, что и стрелка вверх.
Ctrl + r — поиск по предыдущим командам из истории команд (history). Продолжайте нажимать Ctrl + r, чтобы искать дальше. Ctrl + Shift + r — поиск в другую сторону.
Ctrl + s — остановить вывод в терминал.
Ctrl + q — восстановить вывод в терминал после Ctrl + s.
Ctrl + a — перейти к началу строки (аналог клавиши Home).
Ctrl + e — перейти к концу строки (аналог клавиши End).
Ctrl + d — если вы ввели что-то, то Ctrl + d удаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.
Ctrl + k — удалить весь текст от курсора до конца строки.
Ctrl + x + backspace — удалить весь текст от начала строки до курсора.
Ctrl + t — переставить символ до курсора на символ под курсором. Нажмите Esc + t для перестановки двух слов до курсора.
Ctrl + w — удалить слово до курсора; затем Ctrl + y, чтобы вставить его.
Ctrl + u — удалить строку перед курсором; Ctrl + y для вставки его.
Ctrl + _ — отменить ввод.
Ctrl + l — очищает окно терминала. То же самое, что и clear.
Ctrl + x + Ctrl + e — запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.

Изменить заглавные на строчные и наоборот
Esc + u — преобразовать буквы от курсора до конца строки в заглавные буквы.
Esc + l — преобразовать буквы от курсора до конца строки в нижний регистр.
Esc + c — заменить букву под курсором на заглавную.

Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
!53
!! — запуск последней команды.
sudo !! — запустить предыдущую команду с sudo.

Запускает последнюю команду и меняет какой-то параметр. Например, меняем "aaa" на "bbb":
# Последняя команда: echo 'aaa'
$ ^aaa^bbb

$ echo 'bbb'
bbb


Важно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте :&:
^aaa^bbb^:&
# или
!!:gs/aaa/bbb/


Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
!cat
# или
!c


— запускает cat filename ещё раз.

Указание файлов по шаблону в Bash
/etc/pa*wd/etc/passwd — символ * означает "несколько любых символов".
/b?n/?at/bin/cat — символ ? означает "один любой символ".
ls -l [a-z]* — вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках [] перечисляются символы, которые будут искаться. А символ * после [] означает "хоть сколько раз".
ls {*.sh,*.py} — вывести все .sh и .py файлы. {} используется для группировки нескольких шаблонов по принципу "или".

Полезные переменные окружения Bash
Короткие переменные:
$0 — оболочка командной строки или путь до запускаемого файла.
$1, $2, $3, ... — аргументы запуска скрипта.
$# — число аргументов, переданных в скрипт из терминала.
$? — код завершения последней команды.
$- — текущие опции, установленные для оболочки.
$$ — идентификатор текущего процесса.
$! — идентификатор процесса, завершённого последним.

Более длинные, но тоже полезные переменные:
$DESKTOP_SESSION — текущий менеджер дисплеев.
$EDITOR — редактор текста по умолчанию.
$LANG — используемый системой язык.
$PATH — список директорий, в которых будут искаться исполняемые файлы.
$PWD — текущая директория.
$SHELL — текущая оболочка командной строки.
$USER — имя текущего пользователя.
$HOSTNAME — имя текущего хоста (компьютера).
👍6
Nginxpwner - это простой инструмент для поиска распространенных неправильных конфигураций и уязвимостей Nginx.


Install:
cd /opt
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
chmod +x install.sh
./install.sh


Install using Docker
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
sudo docker build -t nginxpwner:latest .


Run the image
sudo docker run -it nginxpwner:latest /bin/bash

https://github.com/stark0de/nginxpwner
👍3
MyDumper

Что такое MyDumper?
Инструмент для логического резервного копирования MySQL. Он состоит из 2 инструментов:
- mydumper, который отвечает за экспорт последовательной резервной копии баз данных MySQL
- myloader считывает резервную копию из mydumper, подключается к целевой базе данных и импортирует ее.

Оба инструмента используют возможности многопоточности.
MyDumper имеет открытый исходный код и поддерживается сообществом, он не является продуктом Percona, MariaDB или MySQL.

Зачем нам нужен MyDumper?
- Параллелизм (следовательно, скорость) и производительность (исключение дорогостоящих процедур преобразования набора символов, эффективный код в целом)
- Удобство управления выводом (отдельные файлы для таблиц, метаданных дампа и т. д., удобство просмотра/разборки данных)
- Согласованность - поддерживает моментальный снимок во всех потоках, обеспечивает точное положение master и slave журналов и т.д.
- Управляемость - поддерживает PCRE для указания включений и исключений баз данных и таблиц

Как установить

RedHat / Centos
release=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/mydumper/mydumper/releases/latest | cut -d'/' -f8)
yum install https://github.com/mydumper/mydumper/releases/download/${release}/mydumper-${release:1}.el7.x86_64.rpm
yum install https://github.com/mydumper/mydumper/releases/download/${release}/mydumper-${release:1}.el8.x86_64.rpm


Ubuntu / Debian
apt-get install libatomic1

release=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/mydumper/mydumper/releases/latest | cut -d'/' -f8)
wget https://github.com/mydumper/mydumper/releases/download/${release}/mydumper_${release:1}.$(lsb_release -cs)_amd64.deb
dpkg -i mydumper_${release:1}.$(lsb_release -cs)_amd64.deb


FreeBSD
pkg install mydumper

MacOS
brew install mydumper

https://github.com/mydumper/mydumper
👍3
Советы по настройке history команд в Bash

Каждая вводимая в терминале команда сохраняется в файле ~/.bash_history. Чтобы посмотреть историю команд – введите history.

Настройка истории команд в Bash осуществляется путем добавления переменных окружения в файл ~/.bashrc.

Чтобы изменения в ~/.bashrc вступили в силу, выполните:

source ~/.bashrc


1. Добавляем Отображение Даты и Времени в Bash History
Иногда очень полезно узнать время, когда какая-либо команда была выполнена.

Установите HISTTIMEFORMAT, чтобы сохранять время выполнения каждой команды.

Для этого добавьте следующую строку в файл ~/.bashrc:

export HISTTIMEFORMAT="%h %d %H:%M:%S "
Теперь, набрав history, Вы получите следующий вывод:

113 Jun 08 16:31:06 sudo ifconfig
114 Jun 08 16:31:10 top
115 Jun 08 16:31:19 ping disnetern.ru
116 Jun 08 16:31:22 history


2. Увеличиваем Размер Хранимой Истории
Увеличьте HISTSIZE — количество команд, которые необходимо запоминать в списке истории (стандартное значение — 500).

export HISTSIZE=5000
Увеличьте HISTFILESIZE — максимальное количество строк, содержащееся в файле истории (стандартное значение — 500).

export HISTFILESIZE=5000


3. Добавляем Команды Bash в Файл с Историей
Bash перезаписывает файл .bash_history?

Чтобы добавлять новые команды в файл с историей, а не переписывать его каждый раз, добавьте следующую строку в ~/.bashrc:

shopt -s histappend


4. Мгновенно Сохранять Историю Команд
По умолчанию, Bash записывает историю команд в .bash_history, при завершении сессии.

Если сессия внезапно оборвется Вы потеряете текущую историю команд.

Используйте переменную $PROMPT_COMMAND, чтобы сохранять команды сразу после выполнения:

Добавьте следующую строку в файл ~/.bashrc, если переменная $PROMPT_COMMAND не была задана ранее:

PROMPT_COMMAND='history -a'
Добавьте следующую строку, если переменная $PROMPT_COMMAND уже была задана:

PROMPT_COMMAND='$PROMPT_COMMAND; history -a'
Шпаргалка по редиректам командной строки Linux
Типы памяти и накопителей

- Основополагающий дуэт: RAM и ROM
- DDR4 и DDR5
- Микропрограмма и BIOS
- SRAM и DRAM
- HDD, SSD, USB-накопитель, SD-карта
👍42
Как убрать расширение у файла

Первый способ:

Используем утилиту basename, которая отрезает весь путь слева, а если указать дополнительный параметр, то дополнительно отрежет справа и суффикс. Например пишем file.txt и суффикс .txt

basename file.txt .txt

Получаем: file

Второй способ:

Преобразованиями в bash 
filename=file.txt; echo ${filename%.*}

Получаем: file

Или наоборот, отрезать имя файла и оставить только расширение:
filename=file.txt; echo ${filename##*.}

Получаем: txt
1
Как загрузить, установить Office 2024 LTSC с сайта Microsoft и активировать навсегда?

Десять лет назад я писал пару статей - Как загрузить последний Office с сайта Microsoft без всякого App-V / Хабр (habr.com) и Как загрузить Microsoft Office 16 с сайта Microsoft / Хабр (habr.com), при помощи на тот момент еще мало кому известного Office Deployment Tool.

Время бежит стремительно, за Office 2016 выходит Office 2019, Office 2021, и вот сейчас подошло время для Office 2024. Что ж, посмотрим, что поменялось в плане загрузки, установки и активации продукта за десять лет.

Для начала о версиях и изданиях Microsoft Office. Чтобы не быть слишком дотошным в описании, скажу коротко самое главное, - с годами линейка Office развивается, существуют разные подписки и планы обновления, - новые функции появляются в новых версиях, для старых версий выходят исправления ошибок и заплатки к найденным уязвимостям.

Microsoft давно перешел на систему распространения продуктов семейства Office по разным, так называемым, "каналам" (channels), в зависимости от того как часто вы хотите получать нововведения и обновления.

https://habr.com/ru/hubs/sys_admin/articles/
Чтобы разобраться с правами доступа к файлам в Linux, нам нужно понять, что такое Ownership и Permission.

Ownership

Каждому файлу или каталогу присваивается три типа прав собственности:

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

Permission

Существует только три типа разрешений для файла или каталога:

🔹Read (r): Разрешение на чтение позволяет пользователю читать файл.
🔹Write (w): Разрешение на запись позволяет пользователю изменять содержимое файла.
🔹Execute (x): Разрешение execute позволяет выполнять файл.
3
Media is too big
VIEW IN TELEGRAM
Принцип работы коммутатора Ethernet

Режим "обучения".
Режим "затопления".

Таблица коммутации (таблица МАС-адресов).
👍4❤‍🔥2
Ioping

Константин Хлебников разработал полезную утилиту ioping, позволяющую в стиле утилиты ping наблюдать за изменением отзывчивости системы ввода/вывода в Linux.

Установка в Debian 11
# apt install ioping

Поддерживаемые ОС
GNU/Linux, GNU/HURD, Windows, OS X, FreeBSD, DragonFlyBSD, OpenBSD

Пример выполнения:

$ ioping /home
4096 bytes from /home (ext4 /dev/sda5): request=1 time=0.4 ms
4096 bytes from /home (ext4 /dev/sda5): request=2 time=0.8 ms
4096 bytes from /home (ext4 /dev/sda5): request=3 time=0.9 ms
4096 bytes from /home (ext4 /dev/sda5): request=4 time=0.3 ms
4096 bytes from /home (ext4 /dev/sda5): request=5 time=0.2 ms
--- . ioping statistics ---
5 requests completed in 4266.5 ms
min/avg/max/mdev = 0.2/0.5/0.9/0.1 ms


https://github.com/koct9i/ioping
👍3
Команда nslookup, получение информации от DNS

Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.

Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.

Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.

https://telegra.ph/Komanda-nslookup-poluchenie-informacii-ot-DNS-09-26
👍5
Media is too big
VIEW IN TELEGRAM
Как работает процесс загрузки Linux?
👍4
Что значит $@ в bash?

В Bash $@ используется для обозначения всех аргументов, переданных в скрипт или функцию. Если вы запускаете скрипт с несколькими аргументами, например:


./script.sh arg1 arg2 arg3


то $@ будет представлять собой список всех этих аргументов: arg1, arg2, arg3.

Есть два варианта использования $@:

1. Без кавычек: Если вы используете $@ без кавычек, он будет рассматриваться как отдельные аргументы. Например:

for arg in $@; do
echo $arg
done

В этом случае каждый аргумент будет обработан отдельно, и на выходе вы получите:

arg1
arg2
arg3


2. С кавычками: Если вы используете "$@", то каждый аргумент будет сохранен как единый элемент (полностью, включая пробелы). Например:

for arg in "$@"; do
echo $arg
done

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

Использование "$@" более безопасно, так как позволяет избежать ошибок при обработке аргументов, содержащих пробелы.
👍3
Шпаргалка по grep

grep — это мощный инструмент для поиска текста в файлах на основе регулярных выражений.


Основные команды:

1. Поиск строки в файле:

grep "строка" имя_файла

Ищет указанную строку в файле.

2. Поиск в нескольких файлах:

grep "строка" файл1 файл2


3. Поиск рекурсивно:

grep -r "строка" /путь/к/каталогу

Ищет строку во всех файлах указанного каталога.

4. Игнорирование регистра:

grep -i "строка" имя_файла


5. Показать номер строки:

grep -n "строка" имя_файла


6. Вывод строк, не содержащих шаблон:

grep -v "строка" имя_файла


7. Подсветка совпадений:

grep --color "строка" имя_файла


8. Подсчитать количество совпадений:

grep -c "строка" имя_файла



Расширенные команды:

1. Использование регулярных выражений:

grep -E "регулярное_выражение" имя_файла

Или:

egrep "регулярное_выражение" имя_файла


2. Поиск с указанием количества строк до и после совпадения:

grep -A 3 -B 2 "строка" имя_файла

-A (after) и -B (before) указывают количество строк, которые будут выведены до и после найденной строки.

3. Поиск только имени файла:

grep -l "строка" *


4. Инвертированный поиск файлов:

grep -L "строка" *

Показывает файлы, в которых не найдено совпадений.



Полезные опции:

- -w — ищет полные слова.
- -o — выводит только совпавшие строки.
- -q — тихий режим, без вывода в терминал, используется для проверки совпадений.

Примеры:

1. Поиск строки "error" в логах:

grep "error" /var/log/syslog


2. Поиск строк с IP-адресами:

grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' имя_файла


3. Поиск строки и запись результата в файл:

grep "pattern" имя_файла > output.txt
👍4🔥2