跳转到主要内容
一个为 ClickHouse 磁盘 提供类似文件系统操作的实用工具。它既支持交互模式,也支持非交互模式。

程序级选项

  • --config-file, -C — ClickHouse 配置文件的 path,默认为 /etc/clickhouse-server/config.xml
  • --save-logs — 将所调用命令的进度日志记录到 /var/log/clickhouse-server/clickhouse-disks.log
  • --log-level — 要记录的type事件,默认为 none
  • --diskmkdir, move, read, write, remove 命令使用哪个 磁盘。默认为 default
  • --query, -q — 无需启动交互模式即可执行的单个查询
  • --help, -h — 打印所有选项和命令及其说明

惰性初始化

配置中所有可用的 磁盘 都采用惰性初始化。这意味着,只有当某个 磁盘 在某条命令中实际被使用时,才会初始化其对应的对象。这样做是为了提高该工具的稳健性,并避免访问那些虽在配置中定义但用户并未使用、且可能在初始化过程中失败的 磁盘。不过,在启动 clickhouse-disks 时,仍需有一个已初始化的 磁盘。该 磁盘 通过命令行参数 --disk 指定 (默认值为 default) 。

默认磁盘

启动后,有两个未在配置中指定但可用于初始化的磁盘。
  1. local 磁盘:该磁盘用于模拟启动 clickhouse-disks 实用工具时所在的本地文件系统。其初始路径为启动 clickhouse-disks 时所在的目录,并挂载在文件系统的根目录下。
  2. default 磁盘:该磁盘挂载到本地文件系统中由配置里的 clickhouse/path 参数指定的目录 (默认值为 /var/lib/clickhouse) 。其初始路径设为 /

Clickhouse-disks 状态

对于每个已添加的磁盘,该工具都会保存当前目录 (就像普通文件系统一样) 。用户可以更改当前目录,并在不同磁盘之间切换。 状态会显示在提示符 “disk_name:path_name” 中

命令

在本文档文件中,所有必需的位置参数均记为 <parameter>,命名参数记为 [--parameter value]。所有位置参数也都可以用具有相应名称的命名参数表示。
  • cd (change-dir, change_dir) [--disk disk] <path> 将当前目录切换到磁盘 disk 上的路径 path (默认值为当前磁盘) 。不会切换磁盘。
  • copy (cp) [--disk-from disk_1] [--disk-to disk_2] <path-from> <path-to>. 递归地将磁盘 disk_1path-from 的数据复制 到磁盘 disk_2 上的 path-to (disk_1disk_2 的默认值均为当前磁盘,在非交互模式下为参数 disk) 。
  • current_disk_with_path (current, current_disk, current_path) 按如下格式打印当前状态: Disk: "current_disk" Path: "current path on 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-frompath-to 的硬链接。
  • list (ls) [--recursive] <path> 列出当前磁盘上 path 中的文件。默认非递归。
  • list-disks (list_disks, ls-disks, ls_disks). 列出磁盘名称。
  • mkdir [--recursive] <path> on a current disk. 创建目录。默认非递归。
  • read (r) <path-from> [--path-to path]path-from 中的文件读取到 path (如果未提供,则输出到 stdout) 。
  • switch-disk [--path path] <disk> 切换到路径 path 上的磁盘 disk (如果未指定 path,则默认使用磁盘 disk 上之前的路径) 。
  • write (w) [--path-from path] <path-to>. 将来自 path 的文件写入 path-to (如果未提供 path 则为 stdin,输入必须以 Ctrl+D 结束) 。
最后修改于 2026年6月12日