воскресенье, 23 апреля 2023 г.

rsync со сменой юзера

Иногда бывает нужно синхронизировать файлы, недоступные не от рута, а попасть можно только не-рутом.

 rsync -avz --rsync-path="sudo rsync" from to

Важное замечание, для корректной работы юзеру которым вошли нужно прописать NOPASSWD в sudoers

Если требуется работать без NOPASSWD то есть несколько вариантов ниже (не проверялось)

https://askubuntu.com/questions/719439/using-rsync-with-sudo-on-the-destination-machine

среда, 19 апреля 2023 г.

Довольно полное описание для nginx vts

 https://nginx-extras.getpagespeed.com/modules/vts/

Пересборка nginx для поддержки модуля vts

https://dragonflybsd.blogspot.com/2019/03/nginx-prometheus-dashboard-grafana.html

 Вводные: есть сервер с ubuntu 16.04, которому нужно добавить модуль vts, стоит nginx=1.17.10

Решаем задачу.

Запускаем контейнер с нужной версией

docker run -ti --rm --name ubuntu16 ubuntu:16.04

Подготовка

apt update

apt install -y build-essential wget git sudo vim curl

# для удобства

export VERSION=1.17.10

cd /usr/local/src/

1) вариант через пакеты

ansible versions

 Бывает, нужна какая-то версия ансибла.. а смтришь в пакеты...

Коротко:

https://pypi.org/project/ansible/#history

https://github.com/ansible/ansible/tags

Полно:

docker build unable to find user XXX: no matching entries in passwd file

 Также применимо к docker exec -ti -u XXX ...  и подобным

1) добавить юзеру ХХХ группу докера: # usermod -a -G docker XXX

2) использовать uid вместо юзера, можно через ... -u $(id -u XXX) ...

суббота, 15 апреля 2023 г.

Чем может грозить точка в конце доменного имени

Чем может грозить точка в конце доменного имени


Точку можно убрать такой конструкцией в блоке server:

if ($http_host ~ "\.$") { return 301 $scheme://$host$request_uri; }

И сразу замечание: если проверять конструкцию через curl, редиректа не будет.. потому что курл режет точку. А вот wget - нет. Бонусом - если нужно несколько редиректов сделать, вгет их сам сделает.

Бонус: часто есть желание вырезать несколько слэшей подряд, для этого нужны такие конструкции:

merge_slashes off;

if ($request_uri ~ "^(.*)/+$") { rewrite ^/(.*)/$ /$1 permanent; }