Как активировать debug режим в bash?
1. Использование опции
Запустите скрипт с опцией
Или добавьте
2. Использование опции
Опция
Также можно добавить
3. Использование режима отладки
Для максимально подробной отладки можно использовать обе опции сразу —
4. Использование
Команда
Это полезно для сложных сценариев, где нужно понять, какая именно команда вызывает ошибку.
5. Отладка с помощью
Переменная
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 <команда>.
Пример:
$ 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
Эта статья актуальна для 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
Утилита
🟢 Основные команды
1. Посмотреть информацию об интерфейсах:
Отображает информацию обо всех интерфейсах, включая IP-адреса.
2. Посмотреть информацию только об одном интерфейсе:
Показывает информацию только для интерфейса
3. Активировать интерфейс:
Включает интерфейс
4. Отключить интерфейс:
Отключает интерфейс
🟢 Конфигурация IP-адресов
5. Назначить IP-адрес интерфейсу:
Назначает IP-адрес
6. Удалить IP-адрес с интерфейса:
Удаляет IP-адрес
🟢 Маршруты и таблицы маршрутизации
7. Просмотр маршрутов:
Показывает текущие маршруты в системе.
8. Добавить маршрут:
Добавляет маршрут к сети
9. Удалить маршрут:
Удаляет маршрут к сети
🟢 Прочие функции
10. Посмотреть статистику интерфейсов:
Показывает статистику по интерфейсам (переданные и полученные пакеты, ошибки и т.д.).
11. Назначить MAC-адрес интерфейсу:
Устанавливает MAC-адрес для интерфейса
12. Показать состояние интерфейсов:
Отображает состояние всех интерфейсов, включая их статус (up/down).
13. Показать статистику маршрутизации:
Показывает статистику по маршрутам, включая количество использованных пакетов.
-
- Использование
Дополнительную информацию можно получить с помощью команды:
Утилита
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
.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🔥3❤1
Программа проверки истечения срока действия SSL-сертификатов
ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.
https://github.com/Matty9191/ssl-cert-check
ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.
https://github.com/Matty9191/ssl-cert-check
❤1
Примеры типовых операций в bash-скриптах
1.Ввод-вывод, перенаправление
Не забываем, что для того, чтоб скрипт можно было запустить, надо изменить права доступа к нему, добавив возможность исполнения файла, например командой
chmod a+x script.sh
2.Арифметические действия, циклы по кол-ву раз
3.Разного рода проверки
4.Работа с FTP в скрипте.
5.Работа с telnet в скрипте.
Примечание: в этом случае root логинится без пароля, если нужен пароль, то надо добавить после echo "root" еще одно эхо с паролем.
Прочее полезное.
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🔥2❤1⚡1
Выводим список установленных пакетов в Linux по дате
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
👍2❤1
📌Совет по Linux
Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.
Вот синтаксис:
Пример:
Он также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.
Вот синтаксис:
$ time <команда>.
Пример:
$ time find / -perm -u=s -type f &>/dev/null
Он также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
❤1
Как активировать debug режим в bash?
1. Использование опции
Запустите скрипт с опцией
Или добавьте
2. Использование опции
Опция
Также можно добавить
3. Использование режима отладки
Для максимально подробной отладки можно использовать обе опции сразу —
4. Использование
Команда
Это полезно для сложных сценариев, где нужно понять, какая именно команда вызывает ошибку.
5. Отладка с помощью
Переменная
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❤1
💡 Консольный калькулятор Linux
Надо что-то вычислить, а под рукой только консоль? Воспользуйтесь встроенным калькулятором - командой
Пользоваться ею просто. Например, сложение:
Надо что-то вычислить, а под рукой только консоль? Воспользуйтесь встроенным калькулятором - командой
expr
.Пользоваться ею просто. Например, сложение:
expr 2 + 2
Вычитание:expr 12 - 2
Знаки умножения и деления нужно дополнительно экранировать:expr 5 \* 4
expr 36 \/ 4
Можно использовать скобки, но их также нужно экранировать и отделить пробелами от знаков операций и операндов:expr 12 - \( 2 + 2 \)
Чтобы узнать больше возможностей команды запустите ее с ключом —help
❤2👍2
Примеры использования команды grep в Linux
Отображение строк до или после строки с результатом поиска
Часто пользователю нужно вывести на экран не только строку, содержащую искомый шаблон. Но и несколько строк до или после нее, чтобы лучше понимался контекст. Специально на такой случай у команды grep есть две особых опции:
-A (от англ. After) — указанное количество строк до шаблона;
-B (от англ. Before) — указанное количество строк после шаблона.
Попробуем отфильтровать вывод команды ifconfig, который для непривычного пользователя может быть излишне объемным.
Таким образом Вы получите строку, содержащую шаблон eth0, а также 4 строки до нее:
Тогда как таким способом Вы получите строку, содержащую шаблон UP, а также 2 строки после нее:
Выведение заданного числа всех соседних строк с помощью команды grep
В том случае, если Вы точно не знаете, какие именно соседние строки (до или после строки, содержащей шаблон) Вам нужны — воспользуйтесь командой grep с опцией -C. Следующая комбинация команд выведет на экран по 2 строки до и после строчки вывода команды ifconfig, содержащей шаблон lo:
Подсчет числа строк, содержащих искомое выражение
В некоторых случаях Вам могут понадобится не сами строчки, включающие заданное выражение, а их общее количество. В таком случае воспользуйтесь опцией -c. Следующая комбинация команд выведет на экран количество строк в выводе команды ifconfig, включающих шаблон inet6.
Рекурсивный поиск строки по всем каталогам с помощью команды grep
Предположим, что Вам необходимо найти все вложения указанного выражения в текущем каталоге со всеми его подкаталогами и так далее. Для этого добавьте к команде grep опцию -r:
В результате утилита будет рекурсивно искать выражение "function" по всему дереву каталогов, начинающемуся с рабочего каталога.
Поиск в архивах gzip
Утилита gzip (от англ. GNU Zip) — это популярный инструмент для сжатия данных без потерь в Linux, использующий алгоритм Deflate.
При этом с помощью команды zgrep можно вести поиск по сжатому архиву точно так же, как Вы это делали вне сжатого архива с помощью команды grep. Следующая команда будет искать в архиве /var/log/syslog.2.gz строки, содержащие шаблон error с игнорированием регистра:
Отображение строк до или после строки с результатом поиска
Часто пользователю нужно вывести на экран не только строку, содержащую искомый шаблон. Но и несколько строк до или после нее, чтобы лучше понимался контекст. Специально на такой случай у команды 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
Примеры скриптов для системного администрирования
Коллекция примеров пошаговых сценариев администрирования систем с помощью PowerShell.
https://learn.microsoft.com/ru-ru/powershell/scripting/samples/sample-scripts-for-administration?view=powershell-7.2
Коллекция примеров пошаговых сценариев администрирования систем с помощью PowerShell.
https://learn.microsoft.com/ru-ru/powershell/scripting/samples/sample-scripts-for-administration?view=powershell-7.2
❤2