Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
linux:overall:over [2022/09/11 06:24] admin |
linux:overall:over [2024/05/16 08:01] (текущий) admin |
||
---|---|---|---|
Строка 18: | Строка 18: | ||
===== Host ===== | ===== Host ===== | ||
- | |||
<code bash> | <code bash> | ||
# Сменить имя хоста (но нужен ребут видимо) | # Сменить имя хоста (но нужен ребут видимо) | ||
Строка 26: | Строка 25: | ||
</ | </ | ||
- | |||
- | ===== Подстановка команд ===== | ||
- | Подстановка команд в скрипте может быть в **конструкции- $()**, в КИ можно использовать **кавычки- ``**\\ | ||
- | В последнем случае, | ||
- | <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 | ||
- | </ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ===== Transfer. Копирование ===== | ||
+ | ===== Копирование ===== | ||
==== rsync ==== | ==== rsync ==== | ||
[[https:// | [[https:// | ||
Строка 220: | Строка 136: | ||
* **-I** - выполнить для каждого элемента, | * **-I** - выполнить для каждого элемента, | ||
* **-P (num)** - кол-во потоков для выполнения | * **-P (num)** - кол-во потоков для выполнения | ||
- | | + | * **-i** - для замены аргумента в нужном месте |
- | * ** ** - | + | |
- | * ** ** - | + | |
< | < | ||
< | < | ||
+ | <code bash> | ||
+ | # Аргументы передаются в конце команды | ||
+ | find. -name *.png -type f -print | xargs tar -cvzf images.tar.gz | ||
+ | # Так в указанное место (скобки похоже по умолчанию используются) | ||
+ | ls /etc/*.conf | xargs -i cp {} / | ||
- | <code bash> | + | |
- | # | + | ls / | xargs -I ' |
- | # Добавить строку (дату в данном случае) к каждому элементу вывода | + | |
- | ls / | xargs -I ' | + | |
- | # | + | tar -cvf $pathToBcps$nameArchive / |
- | # | + | |
- | tar -cvf $pathToBcps$nameArchive / | + | |
- | # | + | |
- | # Переименование | + | |
ls | sed -e " | ls | sed -e " | ||
- | # | + | |
- | # Смена прав доступа | + | |
find . -group root -print | xargs chown temp | find . -group root -print | xargs chown temp | ||
- | # | + | |
- | # Удалить файлы старше 7 дней | + | |
find /tmp -type f -name ' | find /tmp -type f -name ' | ||
- | # | + | |
- | # Можно заменить циклом, | + | |
find . -type f -and -iname " | find . -type f -and -iname " | ||
- | # Эквивалентно | + | |
for file in `find . -type f -and -iname " | for file in `find . -type f -and -iname " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== watch ===== | ||
+ | Запуск указанной команды с периодами\\ | ||
+ | |||
+ | * **-d** - выделять измененные данные | ||
+ | * **-n** - интервал в секундах | ||
+ | * **-t (--no-title)** - | ||
+ | * **-x (--exec)** - передать выполнение в sh -c | ||
+ | |||
+ | <code bash> | ||
+ | # Выполнение нескольких команд, | ||
+ | watch -n10 -d "ls -l; echo '< | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Подстановка команд ===== | ||
+ | Подстановка команд в скрипте может быть в **конструкции- $()**, в КИ можно использовать **кавычки- ``**\\ | ||
+ | В последнем случае, | ||
+ | <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 | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | ===== Oчистить кэш файловой системы в Linux ядре ===== | ||
<code bash> | <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 | ||
+ | |||
+ | </ | ||
+ | </ | ||