Содержание
Kubernetes
Kubernetes: найти Pod, на котором выполнялась Job
По умолчанию, у всех подов, которые запускались из job есть тег job-name
, который можно использовать в --selector
:
[simterm]
$ kubectl get pods --selector=job-name=your-job-name-27751740 NAME READY STATUS RESTARTS AGE your-pod-27751740-5h44n 0/1 Error 0 4h20m your-pod-27751740-bsk4n 0/1 Error 0 4h15m ...
[/simterm]
Kubernetes: запустить под с bash для тестов
Что бы запустить тестовый под для каких-либо проверок, например с Ubuntu – выполняем:
[simterm]
$ kubectl -n namespace-name run pod --rm -i --tty --image ubuntu -- bash
[/simterm]
Kubernetes: получить список всех подов на всех WorkerNodes
Вариант 1 – сортировка по имени рабочих нод
[simterm]
$ 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 ...
[/simterm]
Вариант 2 – сортировка по имени подов
[simterm]
$ 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 ...
[/simterm]
Вариант 3 – только IP подов
[simterm]
$ 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"
[/simterm]
Kubernetes: получить логи всех подов
Находим деплоймент:
[simterm]
$ kubectl -n eks-dev-1-eat-backend-ns get deploy NAME READY UP-TO-DATE AVAILABLE AGE eat-backend 2/2 2 2 11d
[/simterm]
Читаем логи всех контейнеров в этом деплойменте:
[simterm]
$ 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
[/simterm]
Linux
Linux: узнать публичный IP сервера из консоли
dig
[simterm]
$ dig +short myip.opendns.com @resolver1.opendns.com 194.***.***.26
[/simterm]
curl
[simterm]
$ curl ifconfig.co $ curl ifconfig.me $ curl icanhazip.com
[/simterm]
Linux: консоль – удалить историю
С помощью history
:
[simterm]
$ history -cw
[/simterm]
См. --help
:
[simterm]
$ 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 ...
[/simterm]
Linux: проверить подключение к порту
Telnet
Самый широкоизвестный и просто способ – с поомщью telnet
:
[simterm]
$ telnet example.com 80
Trying 93.184.216.34…
Connected to example.com.
Escape character is ‘^]’.
[/simterm]
NetCat
Другой вариант – NetCat (nc
), больше возможностей:
[simterm]
$ nc -zv example.com 80 Warning: Inverse name lookup failed for `93.184.216.34' example.com [93.184.216.34] 80 (http) open
[/simterm]
Databases
MySQL: добавить пользователя и разрешить полный или read only доступ к базам
Добавить пользователя newuser, которому разрешён доступ только с localhost (самого сервера баз данных), и задать ему пароль password:
[simterm]
MySQL [(none)]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
[/simterm]
Разрешить ему доступ ко всем базам данных:
[simterm]
MySQL [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
[/simterm]
Или разрешить Read Only доступ ко всем базам:
[simterm]
MySQL [(none)]> GRANT SELECT on *.* to 'readonlyuser'@'%';
[/simterm]
Или без отдельной команды CREATE USER
– всё одной строкой, и создание, и выдача разрешений, на базу dbname, с доступом с любого хоста:
[simterm]
MySQL [(none)]> GRANT SELECT ON dbname.* TO 'readonlyuser'@'%' IDENTIFIED BY 'password';
[/simterm]
При необходимости (на AWS RDS не требуется) обновляем списки доступов:
[simterm]
MySQL [(none)]> FLUSH PRIVILEGES;
[/simterm]
MySQL: список пользователей
Получить всех пользователей со всеми полями:
[simterm]
MySQL [(none)]> select * from mysql.user;
[/simterm]
Или определённые поля – получаем список полей:
[simterm]
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 | | ...
[/simterm]
И повторяем SELECT
с указанием нужных полей:
[simterm]
MySQL [(none)]> select user, host from mysql.user; +-----------------------------+-----------+ | user | host | +-----------------------------+-----------+ | dbadmin | % | | mysql.sys | localhost | | rdsadmin | localhost | +-----------------------------+-----------+
[/simterm]
MySQL: проверить права доступа
Используем SHOW GRANTS
.
Проверить права текущего пользователя:
[simterm]
MariaDB [(none)]> SHOW GRANTS; +-------------------------------------------------------------------------------+ | Grants for replicator@% | +-------------------------------------------------------------------------------+ | GRANT REPLICATION SLAVE ON *.* TO `replicator`@`%` IDENTIFIED BY PASSWORD '*' | +-------------------------------------------------------------------------------+
[/simterm]
Другого юзера:
[simterm]
MariaDB [(none)]> SHOW GRANTS FOR 'username'@'%';
[/simterm]
Security
SSH: get public key from a private key
Что бы извлечь публичную часть ключа – выполняем:
[simterm]
$ ssh-keygen -y -f ~/.ssh/id_rsa.pem > ~/.ssh/id_rsa.pub
[/simterm]
SSH: get RSA key fingerprint
Что бы получить отпечаток публичной части ключа в SHA256 – выполняем:
[simterm]
$ ssh-keygen -lf ~/.ssh/id_rsa.pub 4096 SHA256:OYe3ZCb+qzY1hR6gLGE9/Lm28Qbp1lzfMp8bpy2g5J8 [email protected] (RSA)
[/simterm]
Windows
Windows: найти файл или папку из командной строки
Поиск можно выполнить с помощью dir
и опции /s
:
/S
Отображение файлов из указанного каталога и всех его
подкаталогов.
Пример:
[simterm]
$ 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 байт
[/simterm]