Toolserver/For users/Ru
- Toolserverангл
- Введениеангл
- Докладангл
- Проектыангл
- For users
- Новостиангл
- Журнал работангл
- Презентацияангл для Wikimania 2006
Здесь приведена информация для пользователей zedler.
Ваш аккаунт
[edit]У вас есть учётная запись. Вы можете зайте по ssh на сервере login-services.zedler.knams.wikimedia.org
(или or tools.wikimedia.org
— краткое имя). Сейчас его IP-адрес — 145.97.39.142.
Для всех аккаунтов задано время истечения в будущем (выводится при каждом входе). Используемые аккаунты нужно обновить в соответствии с правилами (см. Toolserver).
Применяется аутентификация с использованием публичных ключей. Чтобы добавить новый SSH-ключ, измените ~/.ssh/authorized_keys
и допишите его туда на новой строке (формат OpenSSH, только ключи второй версии SSH).
Если у вас возникли проблемы, напишите на zedler-admins@wikimedia.org
. В качестве альтернативы, можно воспользоваться списком рассылки toolserver-l или же спросить в IRC-канале #wikimedia-toolserver.
База данных
[edit]У вас есть база с названием «u_<имяпользователя>
». Пароль к ней записан в вашем файле ~/.my.cnf
. К ней имеете доступ на запись только вы, но таблицы, названия которых начинаются с «pub_
», может прочитать любой другой пользователь. Имя SQL-сервера — sql (но не localhost)
Для большинства открытых вики есть реплицируемые базы данных. Их названия имеют вид <язык><проект>_p
, где <язык> — это язык (например, «ru», «en»), а <проект> — кодовое название проекта («wiki» для Википедии, для остальных — «wiktionary», «wikibooks» и так далее). Вы можете их только читать. Список всех баз с информацией о языке и размере находится в таблице wiki
базы данных toolserver
.
Предоставлены следующие таблицы:
- categorylinks
- cur
- hitcounter
- image
- imagelinks
- interwiki
- logging
- math
- oldimage
- page
- pagelinks
- querycache
- revision
- site_stats
- text
- updates
- user_groups
- recentchanges
- archive
- user_ids (урезанная таблица user: только поля user_name и user_id)
Из-за бага в MySQL запросы насчёт представлений работают неэффективно; мы надеемся, что рано или поздно это будет исправлено.
В некоторых из этих баз есть дополнительные индексы, не описанные в стандарте. Справка по ним хранится в /usr/local/etc/views
. Если вам нужно добавить свой индекс, напишите нам.
Представление текста в таблицах cur и text
[edit]Текст в таблицах 'cur' и 'text' может быть сжатым или закодированным.
- для сжатого текста в old_flags есть флаг 'gzip' (zlib-сжатие без заголовков)
- текст с флагом «utf8» находится в кодировке UTF-8. Текст без этого флага может быть (а может и не быть) в ASCII (TODO: задокументировать).
- текст с флагом «object» закодирован как PHP-объект; это может встречаться в :
- отметках cur; объект PHP содержит cur_id строки в таблице cur с самим текстом.
- blob-ы истории. Это специальное сжатое хранилище (TODO: задокументировать).
- что-нибудь ещё?
- тест с флагом «external» в old_flags хранится во внешних базах и пока ещё не доступен на zedler.
Вы можете использовать MediaWiki-функцию Revision::getRevisionText
для получения текста (см. также Revision.php).
В будущем отсутствующий текст в базе будет браться из XML-дампа базы, но не ранее, чем мы сможем увеличить суммарный объём наших дисковых массивов.
Внимание: если в базе есть данные, помеченные флагом «latin1», то они закодированы не в ASCII. Чаще всего правильная кодировка — UTF-8. Это проблема возникла при создании совместимой с MySQL 4.0 реализации. Будьте внимательны и не давайте клиенту MySQL пробовать перевести данные в UTF-8 за вас, или вы получите мусор.
Отметки времени
[edit]Временные отметки — это не числа, а строки, состоящие из цифр. Поэтому всегда окружайте их кавычками (например, rc_timestamp > '200500000000' вместо rc_timestamp > 200500000000). Если вы об этом забудете, то запрос будет гораздо медленнее (в 50 раз и больше).
SQL-запросы
[edit]- Запросы-зомби: выход не останавливает длительные запросы. Если вы случайно инициировали запрос, требующий много времени, вы можете получить его идентификатор по команде
SHOW PROCESSLIST
и завершить его с помощьюKILL идентификатор
- Массовая вставка: вставка из файлов, в которых поля разделены символами табуляции, гораздо быстрее, чем вставка записей по отдельности. Используется следующая команда:
LOAD DATA LOCAL INFILE полный_путь_к_файлу IGNORE INTO TABLE имя_таблицы
- Если вам приходится запускать длительные запросы к базе данных, прочтите советы по оптимизации.
Веб-хостинг
[edit]Вам предоставляется хостинг по адресу http://tools.wikimedia.de/~<username>/
. Помещайте содержимое в ~/public_html/
. Вы можете использовать PHP или (в качестве альтернативы) CGI-скрипты (последние следует располагать в каталоге ~/public_html/cgi-bin/
). Как CGI-, так и PHP-скрипты запускаются под вашим идентификатором пользователя.
Статистика (сгенерированная с помощью Webalizer) для узла tools.wikimedia.de доступна здесь: [1] (обновляется раз в 6 часов). Обратитесь к участнику Duesentrieb в случае если с этим возникнут проблемы.
Дисковые квоты
[edit]Для вас установлена дисковая квота в 256 мегабайт на файловой системе /u01
. Это сделано не для того, чтобы ограничить использование, а чтобы не дать пользователям по ошибке занять слишком много места. Мы можем увеличить этот лимит; для этого напишите на zedler-admins@wikimedia.org
с указанием того, сколько места вам нужно и зачем.
Программы
[edit]Большинство обычных средств, которые могли бы вам понадобится, установлены здесь. Напишите администраторам, если вам понадобится что-то ещё. Следует заметить, что:
- 64-битное окружение
- по умолчанию на Solaris всё компилируется в 32-битном режиме. Чтобы получить 64-битный исполняемые файл, используйте «
-xarch=amd64
» (для cc) или «-m64
» (для gcc); mysql : 32-битные клиентские библиотеки находятся в/opt/mysql50/
, а 64-битные — в/usr/local/mysql/
- Компиляторы C/C++
- доступны два: GCC и Sun Studio. Если вы предпочитаете gcc, используйте
/usr/sfw/bin/gcc
(C) или/usr/sfw/bin/g++
(C++). Для Studio используйте/opt/SUNWspro/bin/cc
(C) или/opt/SUNWspro/bin/CC
(C++). /bin/sh
- не используйте его! Используйте
/usr/bin/ksh
или/usr/xpg4/bin/sh
Окружение GNU
[edit]Если вы предпочитаете использовать GNU-версии утилит, добавьте /usr/local/gnu/bin
в начало переменной окружения PATH:
$ export PATH=/usr/local/gnu/bin:$PATH
Вы можете добавить это в свой файл ~/.profile
.
Отложенные задания
[edit]Иногда возникает необходимость запустить длительные процессы, создающие большую нагрузку на процессор. Вы можете оптимизировать такие задачи с помощью Fair Share Scheduler[2] (он следит, чтобы система не перегружалась).
Чтобы запустить новый процесс в классе планирования batch
(отложенное задание), используйте newtask
:
$ /bin/id -p # (GNU id, /usr/local/gnu/bin/id, does not support the p flag) uid=1001(kate) gid=102(users) projid=3(default) $ newtask -p batch bash $ id -p uid=1001(kate) gid=102(users) projid=4(batch)
любые процессы, которые вы запустите здесь, продолжат выполняться с меньшим приоритетом, когда вы вернётесь в свою обычную оболочку с помощью
$ exit