Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумБраузеры и профили

Команда и общие профили: как не мешать друг другу

Максим Юрьев
Максим Юрьев
Знаток
сообщений 1720
с апр
8 июня, 11:17первое сообщение

Нас пятеро, кабинетов десять. Профили лежат на общем сетевом диске, каждый подключает папку к себе и запускает браузер оттуда.

Работало месяц, потом посыпалось: двое зашли в один кабинет с разницей в минуту, обоих выкинуло, один потом сутки подтверждал вход. Плюс раз в неделю профиль перестаёт открываться и ругается на занятый файл.

Как такое разводят в командах? Держать профили у каждого локально и передавать архивом?

Наиль Габдуллин
Наиль Габдуллин
Знаток
сообщений 1885
с мар
15 ноября, 14:34#2

Профиль браузера на сетевой шаре это первая беда, из неё все остальные и растут.

Хранилище внутри профиля лежит в файлах базы с журналом. База рассчитана на локальный диск и на честные замки от системы. По сети замки работают приблизительно, и два процесса, каждый из которых считает, что держит файл, спокойно пишут поверх друг друга. Отсюда и жалобы на занятый файл, и битые куки.

Chromium ставит SingletonLock в каталоге профиля и по нему видит второй запуск. На локальной машине этого хватает, по сети он читает замок с задержкой и открывает профиль вторым.

Дальше идёт вторая беда, уже без всякой техники: сервису видно двоих. Один человек утром, другой вечером с другого направления, набор окна разный, промежуток между входами короткий. Кабинет просит подтверждение, и правильно делает.

Разводить надо так: каждый профиль живёт на одной машине и работает по одному человеку в один момент времени.

разбираю чужие конфиги за печенье
Максим Юрьев
Максим Юрьев
Знаток
сообщений 1720
с апр
22 апреля, 17:51#3
Наиль Габдуллин: каждый профиль живёт на одной машине

Тогда как передавать кабинет между людьми? У нас смены, вечером подхватывает второй.

Ольга Ветрова
Ольга Ветрова
Участник
сообщений 590
с сен
1 сентября, 08:08#4

У нас передача идёт через одну машину, к ней подключаются по удалённому столу. Профили никуда не ездят, ездят люди.

Смена оформляется парой строк в общем чате: кто взял, кто отдал, во сколько. Скучно, зато за полгода ни одного двойного входа.

Когда удалённый стол не подходит, остаётся передача архивом, но правило там жёсткое: у профиля один хозяин в один момент, и архив уходит с отметкой в том же чате.

Света Панина
Света Панина
Новичок
сообщений 160
с мар, второй сезон
8 февраля, 11:25#5

а на удалённой машине браузер не тормозит? десять профилей же

Наиль Габдуллин
Наиль Габдуллин
Знаток
сообщений 1885
с мар
15 июля, 14:42#6

Света Панина, десять одновременно никто и не держит. Открыто два или три, остальные просто лежат каталогами. Памяти уходит немного, тяжелее приходится диску.

разбираю чужие конфиги за печенье
batchrunner
batchrunner
Участник
сообщений 470
с окт
22 декабря, 17:59#7

Поверх этого у нас висит файл-флаг, чтобы человек физически не открыл занятый профиль. Ярлык дёргает скрипт, скрипт смотрит флаг.

#!/bin/sh
P="/srv/profili/$1"
if [ -e "$P/.zanyat" ]; then
  echo "профиль занят: $(cat "$P/.zanyat")"
  exit 1
fi
echo "$USER $(date +%H:%M)" > "$P/.zanyat"
chromium --user-data-dir="$P" --proxy-server="socks5://$2"
rm -f "$P/.zanyat"

Грубо, зато двойных запусков нет вообще.

Максим Юрьев
Максим Юрьев
Знаток
сообщений 1720
с апр
1 мая, 08:16#8

Флаг забираю, это ровно то, чего не хватало. Остался вопрос по адресам: список общий, скрипт раздаёт строки по кругу, и утром человек садится не на тот адрес, что был у кабинета вчера.

Михаил Дроботов
Михаил Дроботов
Участник
сообщений 615
с сен
8 октября, 11:33#9

Вот отсюда и подтверждения по почте.

Список общий, значит и раздача должна быть постоянной, по имени профиля. Мы держим маленькую таблицу: профиль, строка, кто отвечает. Скрипт при запуске берёт свою строку по имени каталога, перебора по кругу нет.

Сам список забирается ссылкой в формате IP:PORT:LOGIN:PASS и обновляется в реальном времени, поэтому таблица пересобирается одной командой, руками переписывать ничего не надо. Мы под кабинеты берём приватные серверные адреса под рабочие профили, ротация внутри пула идёт сама.

Про привязки помните: их в пакете две, смена свободная. Поставите обе, лимит потоков поделится пополам. Для браузерных профилей это незаметно, но если на том же пакете ночью крутится сбор, посчитайте заранее.

десять лет в поддержке, всё видел
queue_master
queue_master
Участник
сообщений 410
с ноя
15 марта, 14:50#10

Таблица профиль-строка выручает ещё при разборе. Слетел кабинет, сразу видно, кто и с какой строки заходил.

очередь длиннее памяти
batchrunner
batchrunner
Участник
сообщений 470
с окт
22 августа, 17:07#11

queue_master, плюсую. Мы ту же таблицу пишем в лог запуска, одна строка на старт: имя профиля, кто запустил, время, строка из списка.

Когда кабинет просит подтверждение, разбор занимает минуту вместо вечера догадок. Скрипт из моего сообщения выше туда же и дописывает, две лишние строки кода.

Ольга Ветрова
Ольга Ветрова
Участник
сообщений 590
с сен
1 января, 08:24#12

Ещё мелочь из практики: условьтесь заранее про расширения. У нас человек поставил себе переводчик в общий профиль, и на следующий день кабинет попросил подтверждение у всех троих, кто туда ходил. Набор расширений со стороны тоже виден.

Максим Юрьев
Максим Юрьев
Знаток
сообщений 1720
с апр
8 июня, 11:41#13

Итог за неделю: профили съехали с сетевой шары на одну машину, вход по удалённому столу, флаг занятости на скрипте, таблица профиль-строка.

Двойных входов ноль, подтверждений тоже. Самым простым и самым полезным оказался файл занятости.