Шпаргалки по командам

MySQL

InfluxDB

Nginx

Http

Bash

Firewalld

Iptables

Docker

Systemd

Screen

Vim

openssl

awk

postfix

ovftool

rndc

yum

sed

MySQL

Посмотреть дату в базе (timestamp может отличаться от других временных функций):

select UNIX_TIMESTAMP();

Проверка конфига на ошибки:

/usr/sbin/mysqld --help --verbose | grep ERROR

Получить список партиций таблицы “history”:

SELECT TABLE_NAME,PARTITION_NAME FROM information_schema.partitions WHERE TABLE_SCHEMA='zabbix' AND TABLE_NAME = 'history';

Партиции в таблице:

SHOW CREATE TABLE table_name

Посмотреть параметры создания таблицы (показать table schema):

show create table zabbix.history_uint;

Удаление партиции:

ALTER TABLE history_uint DROP PARTITION p2018_09;

Информация о прогрессе импорта дампа БД:

 time zcat dump.sql.gz | pv -rb | mysql database

Выбор всех таблиц в имени которых есть *b_iblock*:

show tables like "%b_iblock%";

Дать все права пользователю на базу с указанием хоста и пароля:

grant all privileges on db_tmp.* to bitrix0@localhost identified by 'password';

Посмотреть текущие кодировки:

show variables like 'char%';

Посмотреть текущие представления:

show variables like '%colla%';

Конвертирование базы и таблицы в кодировку utf8mb4 и представление utf8mb4_unicode_ci:

ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Посмотреть кодировку конкретной базы:

SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = "db_name";

InfluxDB

Аргументы для вывода запроса с экранированными кавычками в терминал:

influx -database 'db_name' -username 'grafana' -password 'password' -execute "SELECT last(\"value\") FROM \"application.\" WHERE (\"app\" = 'test'"

Nginx

Проверка конфигурации и мягкая перезагрузка без обрывов соединений:

nginx -t && nginx -s reload

Httpd

Проверка конфигурации:

httpd -t

Bash

Зависимости (библиотеки):

ldd /bin/bash

Убить все процессы по шаблону:

pkill -f <pattern>

rsync dry-run:

rsync -n ./ /home/

Проверка правильности файла fstab (dry run):

mount -f

Найти через find и удалить всё в текущей директории кроме папки nodel:

find . -name 'nodel' -prune -o -exec rm -rf {} \;

Фоновый режим процессов:

man ls &
fg &[№ процесса]
jobs # список процессов

tar директории mysql на лету:

tar cvf - mysql | ( cd /destination; tar xf - )

Перенаправить стандартный вывод в лог-файл, а вывод ошибок – в /dev/null

command >file.log 2>&1

Посмотреть используемый MTA

alternatives --display mta

Обновить корневой сертификат в системе (путь /etc/pki/ca-trust/source/anchors/ в RHEL):

update-ca-trust

Очистка переменной от непечатаемых символов:

var="${var//[$'\t\r\n ']}"

Создание файла нужного размера (только на файловых системах, поддерживающих разреженные (sparse) файлы:

fallocate -l 10M out.txt

Создание файла (или уменьшение размера):

truncate -S 10M test.txt
truncate -S 0 test.txt
truncate -s +200K test.txt

Firewalld

Вывести всю информацию:

firewall-cmd --permanent --list-all

Перезагрузить без потери соединений:

firewall-cmd --reload

Открыть порт или диапазон:

firewall-cmd --permanent --zone=public --add-port=10050-10051/tcp

Добавить маскарадинг на интерфейс:

firewall-cmd --zone=external --add-masquerade --permanent

Перенаправить входящие соединения по 80 порту на другой хост:

firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.16.0.3 --permanent

Перенаправить с одного порта на другой порт и узел:

firewall-cmd --zone=external --add-forward port=port=2245:proto=tcp:toport=22:toaddr=10.16.0.3 --permanent

Iptables

Перенаправить с одного порта на другой порт и узел:

iptables -t nat -A PREROUTING -p tcp -d 10.16.0.1 --dport 80 -j DNAT --to-destination 10.16.0.13:8080 --permanent

Вывод правил NAT:

iptables -t nat -L

Сохранить правила:

iptables-save

Удалить правило по номеру строки:

iptables -t nat -L POSTROUTING --line-numbers
iptables -t nat -D POSTROUTING <number>

Docker

Список контейнеров:

docker ps -a

Подключиться к контейнеру:

docker exec -it container_name bash

Остановить все контейнеры:

docker stop $(docker ps -a -q)

Удалить все контейнеры, из которых вышли:

docker rm -v $(docker ps -aq -f status=exited)

Удалить образ:

docker rmi image_name

Создать образ:

docker build -t image_name .

Удалить все неиспользуемые тома:

docker volume prune

Systemd

Смена имени хоста без перезагрузки ОС:

hostnamectl set-hostname New_HostName
systemctl restart systemd-hostnamed

Screen

Просмотреть список сессий скрина:

screen -ls:

There are screens on:
        27617.pts-0.web-p-3     (Detached)
        2690.pts-0.web-p-3      (Attached)

Подключиться к сессии в состоянии “deattached”

screen -r 27617.pts-0.web-p-3

Подключиться к сессии в состоянии “attached”:

screen -x 27617.pts-0.web-p-3

Отключиться от сессии:

Ctrl+A D

Убить сессию:

screen -S 7617.pts-0.web-p-3 -X quit

Vim

Включить\отключить непечатаемые символы:

set list
set nolist

Включить нумерацию строк:

set num

openssl

Посмотреть информацию о сертификате (кем выдан и какой срок действия, например):

openssl x509 -noout -text -in /etc/letsencrypt/livermn-lux.ru/fullchain.pem

Подключение к почтовому серверу, используя SSL:

openssl s_client -starttls smtp -crlf -connect 10.89.65.20:25

Обновить корневые сертификаты:

update-ca-trust

awk

Суммирование значений в столбце $1 и вывод по окончании результата:

echo "$var1" | awk '{s+=$1} END {print s}'

postfix

Обновление записей о логинах\паролях:

postmap /etc/postfix/sasl_passwd 

ovftool

Экспорт виртуальной машины с ESXi в OVA:

ovftool "vi://root:pass@<ESXI-IP>/<VM-name>" /home/local-path/VM-copy-name.ova

rndc

Clear domain cache:

rndc flushname rmn-lux.ru

yum

Вывод списка всех версий пакетов на примере percona:

yum -q list available --showduplicates percona-server*

sed

Вывести содержимое файла в диапазоне между строкой 15 и 35:

cat file.txt | sed -n 15,35p