FAQ

 

faq

Kubernetes

Kubernetes: запустить под с bash для тестов

 

Что бы запустить тестовый под для каких-либо проверок, например с Ubuntu — выполняем:

kubectl -n namespace-name run pod --rm -i --tty --image ubuntu -- bash

Kubernetes: получить список всех подов на всех WorkerNodes

 
Вариант 1 — сортировка по имени рабочих нод
kubectl get pod -o=custom-columns=NODE:.spec.nodeName,NAME:.metadata.name --all-namespaces | sort
ip-10-3-42-245.us-east-2.compute.internal   aws-node-668rk
ip-10-3-42-245.us-east-2.compute.internal   coredns-5fb4bd6df8-znbzr
ip-10-3-42-245.us-east-2.compute.internal   gorush-5c6775748b-s6jkp
...
Вариант 2 — сортировка по имени подов
kubectl get pod -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName --all-namespaces
prometheus-prometheus-node-exporter-99z6w                    Running     ip-10-3-43-168.us-east-2.compute.internal
prometheus-prometheus-node-exporter-b47k9                    Running     ip-10-3-49-200.us-east-2.compute.internal
prometheus-prometheus-node-exporter-brfvk                    Running     ip-10-3-58-193.us-east-2.compute.internal
...
Вариант 3 — только IP подов
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .status.podIP' | tail
"ip-10-3-43-168.us-east-2.compute.internal 10.3.43.168"
"ip-10-3-49-200.us-east-2.compute.internal 10.3.49.200"
"ip-10-3-58-193.us-east-2.compute.internal 10.3.58.193"

Kubernetes: получить логи всех подов

 

Находим деплоймент:

kubectl -n eks-dev-1-eat-backend-ns get deploy
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
eat-backend   2/2     2            2           11d

Читаем логи всех контейнеров в этом деплойменте:

kubectl -n eks-dev-1-eat-backend-ns logs -f deployment/eat-backend --all-containers=true --since=10m
Found 2 pods, using pod/eat-backend-d4f9fb9f8-vs8fr

Linux

Linux: узнать публичный IP сервера из консоли

 
dig
dig +short myip.opendns.com @resolver1.opendns.com
194.***.***.26
curl
curl ifconfig.co
curl ifconfig.me
curl icanhazip.com

Linux: консоль — удалить историю

 

С помощью history:

history -cw

См. --help:

history --help
history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
Display or manipulate the history list.
Display the history list with line numbers, prefixing each modified
entry with a `*'.  An argument of N lists only the last N entries.
Options:
-c        clear the history list by deleting all of the entries
-d offset delete the history entry at position OFFSET. Negative
offsets count back from the end of the history list
...

Linux: проверить подключение к порту

 
Telnet

Самый широкоизвестный и просто способ — с поомщью telnet:

telnet example.com 80
Trying 93.184.216.34…
Connected to example.com.
Escape character is ‘^]’.
NetCat

Другой вариант — NetCat (nc), больше возможностей:

nc -zv example.com 80
Warning: Inverse name lookup failed for `93.184.216.34'
example.com [93.184.216.34] 80 (http) open

Databases

MySQL: добавить пользователя и разрешить полный или read only доступ к базам

 

Добавить пользователя newuser, которому разрешён доступ только с localhost (самого сервера баз данных), и задать ему пароль password:

MySQL [(none)]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Разрешить ему доступ ко всем базам данных:

MySQL [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';

Или разрешить Read Only доступ ко всем базам:

MySQL [(none)]> GRANT SELECT on *.* to 'readonlyuser'@'%';

Или без отдельной команды CREATE USER — всё одной строкой, и создание, и выдача разрешений, на базу dbname, с доступом с любого хоста:

MySQL [(none)]> GRANT SELECT ON dbname.* TO 'readonlyuser'@'%' IDENTIFIED BY 'password';

При необходимости (на AWS RDS не требуется) обновляем списки доступов:

MySQL [(none)]> FLUSH PRIVILEGES;

MySQL: список пользователей

 

Получить всех пользователей со всеми полями:

MySQL [(none)]> select * from mysql.user;

Или определённые поля — получаем список полей:

MySQL [(none)]> desc mysql.user;
+--------------+----------------+------+-----+---------+-------+
| Field        | Type           | Null | Key | Default | Extra |
+--------------+----------------+------+-----+---------+-------+
| Host         | char(60)       | NO   | PRI |         |       |
| User         | char(32)       | NO   | PRI |         |       |
| Select_priv  | enum('N','Y')  | NO   |     | N       |       |
...

И повторяем SELECT с указанием нужных полей:

MySQL [(none)]> select user, host from mysql.user;
+-----------------------------+-----------+
| user                        | host      |
+-----------------------------+-----------+
| dbadmin                     | %         |
| mysql.sys                   | localhost |
| rdsadmin                    | localhost |
+-----------------------------+-----------+

MySQL: проверить права доступа

 

Используем SHOW GRANTS.

Проверить права текущего пользователя:

MariaDB [(none)]> SHOW GRANTS;
+-------------------------------------------------------------------------------+
| Grants for replicator@%                                                       |
+-------------------------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO `replicator`@`%` IDENTIFIED BY PASSWORD '*' |
+-------------------------------------------------------------------------------+

Другого юзера:

MariaDB [(none)]> SHOW GRANTS FOR 'username'@'%';

Security

SSH: get public key from a private key

 

Что бы извлечь публичную часть ключа — выполняем:

ssh-keygen -y -f ~/.ssh/id_rsa.pem > ~/.ssh/id_rsa.pub

SSH: get RSA key fingerprint

 

Что бы получить отпечаток публичной части ключа в SHA256 — выполняем:

ssh-keygen -lf ~/.ssh/id_rsa.pub
4096 SHA256:OYe3ZCb+qzY1hR6gLGE9/Lm28Qbp1lzfMp8bpy2g5J8 user@host.local (RSA)

Windows

Windows: найти файл или папку из командной строки

 

Поиск можно выполнить с помощью dir и опции /s:

/S Отображение файлов из указанного каталога и всех его
подкаталогов.

Пример:

dir docker /S
Том в устройстве C не имеет метки.
Серийный номер тома: 1CA2-DA5A
Содержимое папки C:\Users\setevoy\Work\***\Projects\LON.***\***-server-api\authserver\src\main
29.09.2016 14:38 <DIR> docker
0 файлов 0 байт