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

По всем вопросам : @Sofiia_artamonova
Download Telegram
Как активировать debug режим в bash?


1. Использование опции -x
Запустите скрипт с опцией -x, чтобы bash выводил каждую команду перед её выполнением.


bash -x script.sh


Или добавьте set -x в самом скрипте, чтобы начать отладку с этого места:


#!/bin/bash
set -x
# команды скрипта
set +x # остановка отладки


2. Использование опции -v
Опция -v заставляет bash выводить команды, которые он читает, но ещё не исполнил. Это полезно для отладки синтаксиса.


bash -v script.sh


Также можно добавить set -v в скрипте для включения вывода на определённом участке:


#!/bin/bash
set -v
# команды скрипта
set +v # остановка вывода


3. Использование режима отладки -xv
Для максимально подробной отладки можно использовать обе опции сразу — -x и -v:


bash -xv script.sh


4. Использование trap для пошаговой отладки
Команда trap позволяет запускать отладочные действия на определённых сигналах или ошибках. Например, чтобы пошагово отслеживать выполнение команд, можно использовать:


trap 'echo "Команда: $BASH_COMMAND"' DEBUG


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

5. Отладка с помощью PS4
Переменная PS4 позволяет настроить префикс вывода отладки. Это полезно, если вы хотите видеть номер строки и другую информацию:


export PS4='+ $(basename $0):${LINENO}: '
bash -x script.sh
4
Совет по Linux 🔥

Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.

Вот синтаксис:

$ time <команда>.

Пример:
$ time find / -perm -u=s -type f &>/dev/null

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

Эта статья актуальна для Windows Server 2019 в качестве сервера и Windows 10 в качестве клиента RDP. В статье мы рассмотрим шаги, которые следует предпринять для достижения максимальной производительности терминальных сессий RDP в Windows Server.

https://telegra.ph/Proizvoditelnost-RDP-v-Windows-Server-i-sposoby-ee-povysheniya-09-23
2👍2
Шпаргалка по ip

Утилита ip — это мощный инструмент для управления сетевыми интерфейсами и маршрутизацией в Linux, который заменяет старую команду ifconfig.

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

1. Посмотреть информацию об интерфейсах:

ip addr

Отображает информацию обо всех интерфейсах, включая IP-адреса.

2. Посмотреть информацию только об одном интерфейсе:

ip addr show eth0

Показывает информацию только для интерфейса eth0.

3. Активировать интерфейс:

ip link set eth0 up

Включает интерфейс eth0.

4. Отключить интерфейс:

ip link set eth0 down

Отключает интерфейс eth0.

🟢Конфигурация IP-адресов

5. Назначить IP-адрес интерфейсу:

ip addr add 192.168.1.10/24 dev eth0

Назначает IP-адрес 192.168.1.10 с маской 255.255.255.0 (или /24`) интерфейсу `eth0.

6. Удалить IP-адрес с интерфейса:

ip addr del 192.168.1.10/24 dev eth0

Удаляет IP-адрес 192.168.1.10 с интерфейса eth0.

🟢Маршруты и таблицы маршрутизации

7. Просмотр маршрутов:

ip route

Показывает текущие маршруты в системе.

8. Добавить маршрут:

ip route add 192.168.2.0/24 via 192.168.1.1

Добавляет маршрут к сети 192.168.2.0/24 через шлюз 192.168.1.1.

9. Удалить маршрут:

ip route del 192.168.2.0/24

Удаляет маршрут к сети 192.168.2.0/24.

🟢Прочие функции

10. Посмотреть статистику интерфейсов:

ip -s link

Показывает статистику по интерфейсам (переданные и полученные пакеты, ошибки и т.д.).

11. Назначить MAC-адрес интерфейсу:

ip link set dev eth0 address 00:11:22:33:44:55

Устанавливает MAC-адрес для интерфейса eth0.

12. Показать состояние интерфейсов:

ip link show

Отображает состояние всех интерфейсов, включая их статус (up/down).

13. Показать статистику маршрутизации:

ip -s route

Показывает статистику по маршрутам, включая количество использованных пакетов.


- ip заменяет старые команды, такие как ifconfig, route, и netstat, предоставляя более гибкий и мощный интерфейс для управления сетевыми настройками.
- Использование ip вместо ifconfig рекомендуется в большинстве современных Linux-дистрибутивов, так как это более современная и функциональная утилита.

Дополнительную информацию можно получить с помощью команды:

man ip
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥31
Права доступа к файлам Linux
👍42
Программа проверки истечения срока действия SSL-сертификатов

ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.

https://github.com/Matty9191/ssl-cert-check
1
Примеры типовых операций в bash-скриптах

1.Ввод-вывод, перенаправление


#!/bin/bash
# Любой shell-скрипт всегда начинается со строчки #!/bin/bash (или #!/bin/sh)
# Комментарии всегда начинаются со знака #
# Для того, чтоб вывести на экран сообщение, используем команду ECHO
echo "hello, world"
# а это пример форматированного вывода... почти как в Си
printf "форматированный вывод десять=%d строка=%s float=%f шестнадцатиричное_число=0x%X\n" 10 "строка" 11.56 234
# пример чтения ввода с клавиатуры
read A
echo $A
printf "
вы только что ввели слово: %s\n" "$A"
#перенаправление, конвейеры, получение результата вывода другой программы
# пример генерации пароля из 10 букв
PASSWORD1=`cat /dev/urandom | tr -d -c 'a-zA-Z0-9' | fold -w 10 | head -1`
echo Password=$PASSWORD1
#кавычки вида `` дают результат вывода на экран того, что внутри них (т.е. выполняется
#программа или скрипт, написанные внутри таких кавычек и результат, выводимый ими на
#стандартный вывод является результатом операции "обратные кавычки"

#в данном случае результатом является вывод конвейера из нескольких программ.
#операция | обозначает конвейер. Т.е. в нашем примере:
#cat /dev/urandom выводит на стд.вывод содержимое файла /dev/urandom (спец.файл для генерации псевдослуч.чисел)
#tr осуществляет трансляцию,т.е. заменяет одни байты другими (это нужно, чтоб избежать появления в пароле непе-
#чатаемых символов)
#fold разбивает то, что ей пришло на стд.ввод на строки длиной 10 символов и выводит это на стд.вывод
#head -1 выводит первую строчку того, что ей пришло на стандартный ввод.

# или так:
PASSWORD2=`cat /dev/urandom | tr -dc _A-Z-a-z-0-9 | head -c10`
echo Password=$PASSWORD2



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

chmod a+x script.sh


2.Арифметические действия, циклы по кол-ву раз


#!/bin/bash
A="10"
B="5"
C=`expr $A + $B`
printf "A=10 B=5 C=expr \$A + \$B C=%d \n" "$C"

# пример цикла по i
I=0
while [ $I -lt 15 ]
do
printf "0x%02x " "$I"
I=`expr $I + 1`
done
echo


3.Разного рода проверки


#!/bin/bash
# пример проверки существования файла
# создаем файл test1
touch test1
# проверяем существование файла test1
if [ -f test1 ] ; then
echo "файл test1 существует"
fi
# проверяем несуществование файла test2
if ! [ -f test2 ] ; then
echo "файл test2 не существует"
fi
# краткая справка по другим опциям команды [ ]
# -d filename директория существует
# -f filename файл существует
# -L filename символьная ссылка существует
# -r, -w, -x файл доступен для чтения, записи или выполнения
# -s filename файл существует и имеет ненулевую длину
# f1 -nt f2 f1 новее чем f2
# f1 -ot f2 f1 старше чем f2


4.Работа с FTP в скрипте.


#!/bin/bash
ADDRESS=192.168.1.150
USER=root
PASSWORD=root
ftp -n -p ADDRESS <<EoF
user USER PASSWORD
cd /usr/bin
put my_cool_program
quit
EoF
exit 0


5.Работа с telnet в скрипте.


#!/bin/bash
(
sleep 1
echo "root"
echo "cd /tmp"
echo "ls"
sleep 1
echo "quit"
) | telnet 192.168.1.150

Примечание: в этом случае root логинится без пароля, если нужен пароль, то надо добавить после echo "root" еще одно эхо с паролем.


Прочее полезное.


#!/bin/bash
# пример цикла по множеству значений
for A in раз два три четыре пять
do
echo "$A,"
done
echo "вышел заяц погулять"
echo
2
🚀 Открой для себя идеальный путь к лидерству с карьерным тестом от ОЭЗ «Алабуга»! 🌟

Мечтаете о карьере в крупной компании, где ваш потенциал раскроется на полную? Наш тест поможет вам определить вашу уникальную лидерскую роль. Может быть, именно вы станете тем лидером, который выведет команду на новый уровень?

После прохождения теста вы можете заполнить заявку и получить приглашение на эксклюзивную лидерскую программу. Участие в программе открывает реальные перспективы трудоустройства в ОЭЗ «Алабуга», предоставляя шанс начать путь к профессиональному признанию.

Сделайте первый шаг к своему будущему сегодня! Пройдите тест, подайте заявку и начните строить свою карьеру вместе с нами. 🎯
👍2🔥211
Выводим список установленных пакетов в Linux по дате

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

https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
👍21
📌Совет по Linux

Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.

Вот синтаксис:

$ time <команда>.

Пример:
$ time find / -perm -u=s -type f &>/dev/null

Он также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
1
Как активировать debug режим в bash?


1. Использование опции -x
Запустите скрипт с опцией -x, чтобы bash выводил каждую команду перед её выполнением.


bash -x script.sh


Или добавьте set -x в самом скрипте, чтобы начать отладку с этого места:


#!/bin/bash
set -x
# команды скрипта
set +x # остановка отладки


2. Использование опции -v
Опция -v заставляет bash выводить команды, которые он читает, но ещё не исполнил. Это полезно для отладки синтаксиса.


bash -v script.sh


Также можно добавить set -v в скрипте для включения вывода на определённом участке:


#!/bin/bash
set -v
# команды скрипта
set +v # остановка вывода


3. Использование режима отладки -xv
Для максимально подробной отладки можно использовать обе опции сразу — -x и -v:


bash -xv script.sh


4. Использование trap для пошаговой отладки
Команда trap позволяет запускать отладочные действия на определённых сигналах или ошибках. Например, чтобы пошагово отслеживать выполнение команд, можно использовать:


trap 'echo "Команда: $BASH_COMMAND"' DEBUG


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

5. Отладка с помощью PS4
Переменная PS4 позволяет настроить префикс вывода отладки. Это полезно, если вы хотите видеть номер строки и другую информацию:


export PS4='+ $(basename $0):${LINENO}: '
bash -x script.sh
👍41
Шпаргалка по IP-командам в Linux
1
💡 Консольный калькулятор Linux

Надо что-то вычислить, а под рукой только консоль? Воспользуйтесь встроенным калькулятором - командой expr.

Пользоваться ею просто. Например, сложение:
expr 2 + 2

Вычитание:
expr 12 - 2

Знаки умножения и деления нужно дополнительно экранировать:
expr 5 \* 4
expr 36 \/ 4

Можно использовать скобки, но их также нужно экранировать и отделить пробелами от знаков операций и операндов:
expr 12 - \( 2 + 2 \)

Чтобы узнать больше возможностей команды запустите ее с ключом —help
2👍2
Шпаргалка по работе с Tmux
1
Примеры использования команды grep в Linux

Отображение строк до или после строки с результатом поиска

Часто пользователю нужно вывести на экран не только строку, содержащую искомый шаблон. Но и несколько строк до или после нее, чтобы лучше понимался контекст. Специально на такой случай у команды grep есть две особых опции:

-A (от англ. After) — указанное количество строк до шаблона;
-B (от англ. Before) — указанное количество строк после шаблона.
Попробуем отфильтровать вывод команды ifconfig, который для непривычного пользователя может быть излишне объемным.

Таким образом Вы получите строку, содержащую шаблон eth0, а также 4 строки до нее:


# ifconfig | grep –A 4 eth0

Тогда как таким способом Вы получите строку, содержащую шаблон UP, а также 2 строки после нее:


# ifconfig | grep -B 2 UP


Выведение заданного числа всех соседних строк с помощью команды grep

В том случае, если Вы точно не знаете, какие именно соседние строки (до или после строки, содержащей шаблон) Вам нужны — воспользуйтесь командой grep с опцией -C. Следующая комбинация команд выведет на экран по 2 строки до и после строчки вывода команды ifconfig, содержащей шаблон lo:


# ifconfig | grep -C 2 lo


Подсчет числа строк, содержащих искомое выражение

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


# ifconfig | grep -c inet6


Рекурсивный поиск строки по всем каталогам с помощью команды grep

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

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


# grep –r "function" *


Поиск в архивах gzip

Утилита gzip (от англ. GNU Zip) — это популярный инструмент для сжатия данных без потерь в Linux, использующий алгоритм Deflate.

При этом с помощью команды zgrep можно вести поиск по сжатому архиву точно так же, как Вы это делали вне сжатого архива с помощью команды grep. Следующая команда будет искать в архиве /var/log/syslog.2.gz строки, содержащие шаблон error с игнорированием регистра:


# zgrep –i error /var/log/syslog.2.gz
1
DNS Record Types
1
Шпаргалка по клавиатурным сочетаниям Midnight Commander
5
Примеры скриптов для системного администрирования

Коллекция примеров пошаговых сценариев администрирования систем с помощью PowerShell.

https://learn.microsoft.com/ru-ru/powershell/scripting/samples/sample-scripts-for-administration?view=powershell-7.2
2