Linux FAQ

Начинаю новую рубрику FAQ. Записи будут постепенно добавляться и обновляться. Идея — собрать различные полезные короткие команды или приемы для разных продуктов в одном посте. Данный раздел посвящен Linux.

chcon -R -h -t postgresql_db_t /var/lib/pgsql/data
netstat -apn | awk '$1=="tcp"{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | awk 'BEGIN {print "NN IP Count"} {n=n+$1; print FNR, $2, $1} END {print "-" "TOTAL",n}' | column -t

# Аналогично, но с портами:
netstat -apn | awk '$1=="tcp"{print $5}' | awk -F: '{print $1, $2}' | sort | uniq -c | sort -nr | awk 'BEGIN {print "NN IP Port Count"} {n=n+$1; print FNR, $2, $3, $1} END {print "-" "TOTAL",n}' | column -t
Генерируем ключ SSH для Jenkins, исключающий ошибку: jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey]

ssh-keygen -t rsa -b 4096 -m PEM
ss -lnptu | sort
netstat -tulpen
du -sm *| sort -nr
dig @ns.name zone.name axfr
netstat -n -p | grep SYN_REC| awk '{print $5}'|awk -F: '{print $1}' | sort -n | uniq -c | sort -nr | head -n10
grep ' 404 ' /var/log/apache2/site/access.log | cut -d ' ' -f 7 |sort |uniq -c |sort -n awk '$9 == 404{urls[$7]++}END{for (url in urls) print urls[url] "\t" url}' /var/log/apache2/site/access.log | sort -n
find . -type l -ls
find . -maxdepth 1 -type l -ls
iptables -I INPUT 1 -p tcp --dport 10050 -j ACCEPT
iptables -L -v -n

CIFS и fstab — после перезапуска сервера не монтируется ресурс
Добавьте в строку параметр: _netdev

timedatectl set-timezone Europe/Moscow
cat /var/lib/libvirt/dnsmasq/virbr0.status
curl icanhazip.com
rpm -qa --qf '%{NAME} ; %{VERSION} ; %{VENDOR} ; %{SUMMARY}\n' | sort
lid -g wheel
compgen -u
getent passwd | awk -F: '{ print $1}'
sudo nmtui
or
sudo nmcli connection
sudo nmcli con mod connection_name ipv4.dns "ip1 ip2"
or
vim /etc/sysconfig/network-scripts/ifcfg-ens192
sudo systemctl restart NetworkManager.service
grep -rl 'pam_winbind.so' /etc/ | xargs sed -i 's/pam_winbind.so/pam_sss.so/g'
ps aux | awk '{ print $1 }' | sed '1 d' | sort | uniq
ps -e -o ruser=WIDE-RUSER-COLUMN | awk '{ print $1 }' | sed '1 d' | sort | uniq

Не стартует oddjobd:

Error binding to service name «com.redhat.oddjob_mkhomedir»!
Error initializing service «com.redhat.oddjob_mkhomedir»!
Error registering with D-Bus layer!

service messagebus restart
systemctl restart oddjobd
lsattr
chattr
yum history list all
yum history info (number)
smbclient '\\server\share'
mask ""
recurse ON
prompt OFF
cd 'path\to\remote\dir'
lcd '~/path/to/download/to/'
mget *
authconfig-tui
ldd /usr/bin/whoami
lsns #посмотреть namespaces
systemd-cgls #список cgroups
sudo dnf update --exclude=kmod-kvdo,kernel* # CentOS

sudo apt-mark hold linux-image-generic linux-headers-generic && sudo apt-get update && sleep 1 && sudo apt-get upgrade -y && sudo apt-mark unhold linux-image-generic linux-headers-generic # Ubuntu
passwd --status username #проверка статуса пользователя
L - учётная запись заблокирована
P - учётная запись использует пароль
PS - пароль установлен
NP - пустой пароль
swapoff -a && sed -i '/swap/d' /etc/fstab	# отключение Swap
grep Swap /proc/meminfo								# просмотр Swap
touch /etc/tmux.conf
set -g mouse on
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done # поиск заданий CRONTAB по всем пользователям
crontab -u root -l # посмотреть задания пользователя, например root
find /dir/* -mtime +1 -exec gzip -9  {} \; # найти файлы и архивировать
while sleep 5; do curl -o /dev/null -s -w "%{http_code}\n" http://site; done >> ~/code.log

xargs -I % -P 5 curl -I "api.telegram.org" < <(printf '%s\n' {1..10}) # запрос 10 раз в 5 потоков
vim /etc/sysconfig/network-scripts/ifcfg-ens160 #тут пишем свой адаптер
systemctl restart NetworkManager.service
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg   # смотрим список kernel, первый по списку является нулевым к конфиге
grub2-set-default 0   # загрузка с первого по списоку kernel
grub2-mkconfig -o /boot/grub2/grub.cfg   # переконфигация Grub
reboot
dpkg -l | grep postgres   # Поиск установленных пакетов
sudo apt-get --purge remove postgresql-client-10   # Удаление установленого пакета
watch -n 5 ls -la   # запускает ls -la каждые 5 секунд, выводит на экоран изменения в выводе
# vim /etc/sysctl.conf
[...]
fs.file-max = 500000
[...]

sysctl -p   # Чтобы настройки вступили в силу

# vim /etc/security/limits.conf   Настройка лимитов для каждого пользователя
* hard nofile 500000
* soft nofile 500000
root hard nofile 500000
root soft nofile 500000
free -m -h #чтобы узнать, сколько оперативной памяти в настоящее время используется в качестве кэша страниц
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less # посмотреть кто потребляет SWAP
iostat -z -d -h -p sdb -x # статистика по диску sdb

Поиск

find . -name \*.log.gz -print0 | xargs -0 zgrep -i "text" # Поиск в сжатых файлах GZ вхождения по всем файлам в каталоге. Регистронезависимо.
find /var/lib/postgresql/14/main/pg_log -name "*.csv" | xargs rm # Найти всё .csv и удалить
find /var/lib/pgsql/11/data/log/* -mtime +1 -exec gzip -9  {} \; # найти и сжать
grep -r -i "recovey" /var/log/ # Поиск по всем файлам в каталоге. Регистронезависимо.
grep "^[^#*/;]" /opt/kafka/config/server.properties	# Показать файл без закоментированных строк.
ls /usr/local/kafka/bin/ | grep -E "console-producer|console-consumer" # Показать файла с указанным вхождением.
du -Sh /var | sort -rh | head -5 # Показать 5 самых больших каталога
find /var/logs -name '*.txt' -ls | awk '{sum+=$7} END {print sum}' # размер в байтах файлов по маске

Вывод без закоментированных строк, без пробелов:

grep -v '^#' имя_файла | grep -v '^$'
или
egrep -v '^#|^$' имя_файла

:g/^$/d	# Удаляет пустые строки в VIM

Оптимизация

Если ОС работает в среде виртуализации, желательно изменить планировщик ввода-вывода. Например VMware рекомендует NOOP

Для установки NOOP в Ubuntu, меняем /etc/default/grub, добавив elevator=noop

GRUB_CMDLINE_LINUX_DEFAULT=" security=default elevator=noop"
update-grub
reboot

Процессы

echo $?		#Просмотр кода завершения последнего процесса

Сеть

tcpdump src port 5002 -n # посмотреть активность на порту 5002, отображать IP, а не DNS имена
nc -zv hostname port
traceroute -p port hostname
telnet hostname port

Разное

 systemctl start name.service  # запуск сервиса, 
 systemctl stop name.service — остановка сервиса, 
 systemctl restart name.service — перезапуск сервиса,  
 systemctl try-restart name.service — перезапуск сервиса только, если он запущен, 
 systemctl reload name.service — перезагрузка конфигурации сервиса, 
 systemctl status name.service — проверка, запущен ли сервис с детальным выводом состояния сервиса, 
 systemctl is-active name.service — проверка, запущен ли сервис с простым ответом: active или inactive, 
 systemctl list-units --type service --all  # отображение статуса всех сервисов, 
 systemctl --failed  # отображение списка юнитов, которые не удалось запустить, 
 systemctl enable name.service  # активирует сервис (позволяет стартовать во время запуска системы), 
 systemctl disable name.service  # деактивирует сервис, 
 systemctl reenable name.service  # деактивирует сервис и сразу активирует его, 
 systemctl is #enabled name.service  # проверяет, активирован ли сервис, 
 systemctl list-unit-files --type service  # отображает все сервисы и проверяет, какие из них активированы, 
 systemctl mask name.service  # заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemd, 
 systemctl unmask name.service  # возвращает файл сервиса, делая юнит доступным для systemd.
 
 systemctl restart rsyslog.service # для освобождения места при удалении логов


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x