Clickhouse-disks
Утилита, предоставляющая файловые операции, похожие на операции с файловой системой, для дисков ClickHouse. Она может работать как в интерактивном, так и в неинтерактивном режимах.
Опции на уровне программы
--config-file, -C
-- путь к конфигурации ClickHouse, по умолчанию/etc/clickhouse-server/config.xml
.--save-logs
-- Логировать прогресс выполненных команд в/var/log/clickhouse-server/clickhouse-disks.log
.--log-level
-- Какой тип событий логировать, по умолчаниюnone
.--disk
-- какой диск использовать для командmkdir, move, read, write, remove
. По умолчаниюdefault
.--query, -q
-- один запрос, который может быть выполнен без запуска интерактивного режима.--help, -h
-- вывести все опции и команды с описанием.
Ленивая инициализация
Все диски, доступные в конфигурации, инициализируются лениво. Это значит, что соответствующий объект для диска инициализируется только тогда, когда этот диск используется в какой-либо команде. Это сделано для повышения стабильности утилиты и для предотвращения обращения к дискам, описанным в конфигурации, но не используемым пользователем, которые могут сработать с ошибкой при инициализации. Тем не менее, должен быть диск, который инициализируется при запуске clickhouse-disks. Этот диск указывается с помощью параметра --disk
через командную строку (значение по умолчанию default
).
Дефолтные диски
После запуска доступны два диска, которые не указаны в конфигурации, но могут быть инициализированы.
-
Диск
local
: Этот диск предназначен для имитации локальной файловой системы, из которой была запущена утилитаclickhouse-disks
. Его начальный путь — директория, из которой была запущенаclickhouse-disks
, и он примонтирован в корневую директорию файловой системы. -
Диск
default
: Этот диск смонтирован в локальную файловую систему в директории, указанной параметромclickhouse/path
в конфигурации (значение по умолчанию/var/lib/clickhouse
). Его начальный путь установлен на/
.
Состояние Clickhouse-disks
Для каждого добавленного диска утилита хранит текущую директорию (как в обычной файловой системе). Пользователь может изменять текущую директорию и переключаться между дисками.
Состояние отображается в подсказке "disk_name
:path_name
"
Команды
В этом документационном файле все обязательные позиционные аргументы обозначаются как <parameter>
, именованные аргументы обозначаются как [--parameter value]
. Все позиционные параметры могут быть указаны как именованный параметр с соответствующим именем.
cd (change-dir, change_dir) [--disk disk] <path>
Изменить директорию на путьpath
на дискеdisk
(значение по умолчанию — текущий диск). Переключение диска не происходит.copy (cp) [--disk-from disk_1] [--disk-to disk_2] <path-from> <path-to>
. Рекурсивно копировать данные сpath-from
на дискеdisk_1
(значение по умолчанию — текущий диск (параметрdisk
в неинтерактивном режиме)) наpath-to
на дискеdisk_2
(значение по умолчанию — текущий диск (параметрdisk
в неинтерактивном режиме)).current_disk_with_path (current, current_disk, current_path)
Вывести текущее состояние в формате:Диск: "current_disk" Путь: "текущий путь на текущем диске"
help [<command>]
Вывести сообщение справки о командеcommand
. Еслиcommand
не указана, вывести информацию о всех командах.move (mv) <path-from> <path-to>
. Переместить файл или директорию сpath-from
наpath-to
в пределах текущего диска.remove (rm, delete) <path>
. Удалитьpath
рекурсивно на текущем диске.link (ln) <path-from> <path-to>
. Создать жесткую ссылку сpath-from
наpath-to
на текущем диске.list (ls) [--recursive] <path>
Перечислить файлы вpath
на текущем диске. По умолчанию нерекурсивно.list-disks (list_disks, ls-disks, ls_disks)
. Перечислить имена дисков.mkdir [--recursive] <path>
на текущем диске. Создать директорию. По умолчанию нерекурсивно.read (r) <path-from> [--path-to path]
Прочитать файл сpath-from
вpath
(stdout
, если не указан).switch-disk [--path path] <disk>
Переключиться на дискdisk
на путиpath
(еслиpath
не указан, значение по умолчанию — предыдущий путь на дискеdisk
).write (w) [--path-from path] <path-to>
. Записать файл изpath
(stdin
, еслиpath
не указан, ввод должен завершиться с помощью Ctrl+D) вpath-to
.