Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
linux:overall:over [2022/11/08 03:37] admin |
linux:overall:over [2024/05/16 08:01] (текущий) admin |
||
---|---|---|---|
Строка 24: | Строка 24: | ||
hostnamectl set-hostname " | hostnamectl set-hostname " | ||
</ | </ | ||
- | |||
- | |||
- | |||
- | ===== Подстановка команд ===== | ||
- | Подстановка команд в скрипте может быть в **конструкции- $()**, в КИ можно использовать **кавычки- ``**\\ | ||
- | В последнем случае, | ||
- | <code bash>$ "`ls -l / | ||
- | |||
- | |||
- | |||
- | ===== Приостановить/ | ||
- | Системные вызовы **SIGSTOP и SIGCONT** | ||
- | <code bash> | ||
- | kill -s STOP 16102 | ||
- | kill -s CONT 16102 | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ===== Сбор инфы из ОС ===== | ||
- | < | ||
- | < | ||
- | <code bash> | ||
- | #!/bin/bash | ||
- | |||
- | # | ||
- | # Скрипт для сбора и вывода информации с хоста, используется в zabbix, UserParameters | ||
- | # Информация разбита на смысловые блоки, блоки на кейсы в свитче, | ||
- | # | ||
- | # | ||
- | # | ||
- | # | ||
- | |||
- | case $1 in | ||
- | ' | ||
- | echo ' | ||
- | |||
- | ' | ||
- | # Первый вариант лучше, но у Debian его нет, поэтому есть второй | ||
- | distrib=`cat / | ||
- | if [[ -z $distrib ]]; then | ||
- | distrib=`cat / | ||
- | fi | ||
- | printf ' | ||
- | |||
- | ' | ||
- | echo ' | ||
- | |||
- | ' | ||
- | echo ' | ||
- | |||
- | ' | ||
- | # Массив доступных интерфейсов, | ||
- | devs=( $(ip -br l | grep -vE ' | ||
- | |||
- | result=' | ||
- | # Проходим перечень интерфейсов, | ||
- | for dev in ${devs[@]}; do | ||
- | status=`ip -br a show $dev 2>/ | ||
- | # Встречаются какие то абстрактные интерфейсы, | ||
- | if [[ -z $status || $status == ' | ||
- | continue | ||
- | fi | ||
- | speed=`cat / | ||
- | duplex=`cat / | ||
- | ips=`ip -br a show $dev 2>/ | ||
- | label=`cat / | ||
- | result+=' | ||
- | done | ||
- | echo ${result:: | ||
- | |||
- | ' | ||
- | res=" | ||
- | echo ' | ||
- | |||
- | ' | ||
- | var=`curl -s ipinfo.io | grep -E ' | ||
- | echo ' | ||
- | |||
- | esac | ||
- | </ | ||
- | </ | ||
Строка 218: | Строка 136: | ||
* **-I** - выполнить для каждого элемента, | * **-I** - выполнить для каждого элемента, | ||
* **-P (num)** - кол-во потоков для выполнения | * **-P (num)** - кол-во потоков для выполнения | ||
- | * ** ** - | + | * **-i** - для замены аргумента в нужном месте |
< | < | ||
< | < | ||
- | |||
<code bash> | <code bash> | ||
+ | # Аргументы передаются в конце команды | ||
+ | find. -name *.png -type f -print | xargs tar -cvzf images.tar.gz | ||
+ | |||
+ | # Так в указанное место (скобки похоже по умолчанию используются) | ||
+ | ls /etc/*.conf | xargs -i cp {} / | ||
+ | |||
# Добавить строку (дату в данном случае) к каждому элементу вывода | # Добавить строку (дату в данном случае) к каждому элементу вывода | ||
- | ls / | xargs -I ' | + | ls / | xargs -I ' |
- | tar -cvf $pathToBcps$nameArchive / | + | tar -cvf $pathToBcps$nameArchive / |
# Переименование | # Переименование | ||
Строка 247: | Строка 171: | ||
- | ===== Работа в фоне | + | ===== watch ===== |
- | ==== screen ==== | + | Запуск указанной команды с периодами\\ |
- | Позволяет запускать процессы в отдельной | + | |
+ | * **-d** - выделять измененные данные | ||
+ | * **-n** - интервал в секундах | ||
+ | * **-t (--no-title)** - | ||
+ | * **-x (--exec)** - передать выполнение | ||
<code bash> | <code bash> | ||
- | yum install screen | + | # Выполнение нескольких команд, |
+ | watch -n10 -d "ls -l; echo '< | ||
+ | </ | ||
- | # Создание именованной сессии | ||
- | screen -S имя_сессия_скрин | ||
- | # Отключится от сессии | ||
- | Ctrl+a и d | ||
- | # Подключится | + | ===== Подстановка команд ===== |
- | screen | + | Подстановка команд в скрипте может быть в **конструкции- $()**, в КИ можно использовать **кавычки- ``**\\ |
+ | В последнем случае, | ||
+ | <code bash>$ " | ||
- | # Активные сессии | + | |
- | screen | + | |
+ | ===== Приостановить/ | ||
+ | Системные вызовы **SIGSTOP | ||
+ | <code bash> | ||
+ | kill -s STOP 16102 | ||
+ | kill -s CONT 16102 | ||
</ | </ | ||
+ | ===== Сбор инфы из ОС ===== | ||
+ | < | ||
+ | < | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | # | ||
+ | # Скрипт для сбора и вывода информации с хоста, используется в zabbix, UserParameters | ||
+ | # Информация разбита на смысловые блоки, блоки на кейсы в свитче, | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | case $1 in | ||
+ | ' | ||
+ | echo ' | ||
+ | ' | ||
+ | # Первый вариант лучше, но у Debian его нет, поэтому есть второй | ||
+ | distrib=`cat / | ||
+ | if [[ -z $distrib ]]; then | ||
+ | distrib=`cat / | ||
+ | fi | ||
+ | printf ' | ||
+ | ' | ||
+ | echo ' | ||
+ | ' | ||
+ | echo ' | ||
+ | |||
+ | ' | ||
+ | # Массив доступных интерфейсов, | ||
+ | devs=( $(ip -br l | grep -vE ' | ||
+ | |||
+ | result=' | ||
+ | # Проходим перечень интерфейсов, | ||
+ | for dev in ${devs[@]}; do | ||
+ | status=`ip -br a show $dev 2>/ | ||
+ | # Встречаются какие то абстрактные интерфейсы, | ||
+ | if [[ -z $status || $status == ' | ||
+ | continue | ||
+ | fi | ||
+ | speed=`cat / | ||
+ | duplex=`cat / | ||
+ | ips=`ip -br a show $dev 2>/ | ||
+ | label=`cat / | ||
+ | result+=' | ||
+ | done | ||
+ | echo ${result:: | ||
+ | |||
+ | ' | ||
+ | res=" | ||
+ | echo ' | ||
+ | |||
+ | ' | ||
+ | var=`curl -s ipinfo.io | grep -E ' | ||
+ | echo ' | ||
+ | esac | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Oчистить кэш файловой системы в Linux ядре ===== | ||
+ | <code bash> | ||
+ | # Чистим pagecache: | ||
+ | echo 1 > / | ||
+ | |||
+ | # Чистим dentrie и inode кэши: | ||
+ | echo 2 > / | ||
+ | |||
+ | # Чистим pagecache, dentrie и inode кэши: | ||
+ | echo 3 > / | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Разное ===== | ||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | <code bash> | ||
+ | apt install rpm2cpio | ||
+ | rpm2cpio myFile.rpm | cpio -idmv | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | Thread dump java\\ | ||
+ | Тред дамп джава | ||
+ | <code bash> | ||
+ | jstack -l 11568 > output_thread_dump.txt | ||
+ | |||
+ | # Для процессов запущенных из под daemon | ||
+ | sudo -u daemon jstack -l 3346175 > output_thread_dump.txt | ||
+ | |||
+ | # Просмотр инфы процесса | ||
+ | cat / | ||
+ | </ | ||
+ | |||
+ | Завершить сеанс пользователя\\ | ||
+ | Сначала посмотреть его оболочку, | ||
+ | <code bash> | ||
+ | w | ||
+ | ps -ft pts/0 -t pts/2 | ||
+ | kill -9 11111 2222 | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Сеть ===== | ||
+ | |||
+ | < | ||
+ | < | ||
+ | Утилита **iperf3**, кроссплатформенная, | ||
+ | |||
+ | <code bash> | ||
+ | # Винда | ||
+ | https:// | ||
+ | # Linux | ||
+ | sudo dnf install iperf3 | ||
+ | |||
+ | # прослушивание сервером | ||
+ | iperf3 -s | ||
+ | |||
+ | # Запуск клиента | ||
+ | iperf3 -c host-ip | ||
+ | |||
+ | </ | ||
+ | </ | ||