Files
JuiceFS/docs/zh_cn/reference/command_reference.md
timfeirg e2fabcc1c6 consolidate content regarding profile & stats (#3392)
* move knowledge to fault_diagnosis_and_analysis.md, which contains all troubleshooting methods and guides.
* add docs on how to interpret stats output

---------

Co-authored-by: Changjian Gao <gcj@juicedata.io>
2023-03-29 16:31:17 +08:00

35 KiB
Raw Blame History

title, sidebar_position, slug, description
title sidebar_position slug description
命令参考 1 /command_reference 本文提供 JuiceFS 包含的所有命令及选项的说明、用法和示例。

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

概览

在终端输入 juicefs 并执行,你就会看到所有可用的命令。另外,你可以在每个命令后面添加 -h/--help 标记获得该命令的详细帮助信息。

NAME:
   juicefs - A POSIX file system built on Redis and object storage.

USAGE:
   juicefs [global options] command [command options] [arguments...]

VERSION:
   1.0.0+2022-08-01.0e7afe2d

COMMANDS:
   ADMIN:
     format   Format a volume
     config   Change configuration of a volume
     destroy  Destroy an existing volume
     gc       Garbage collector of objects in data storage
     fsck     Check consistency of a volume
     dump     Dump metadata into a JSON file
     load     Load metadata from a previously dumped JSON file
     version  Show version
   INSPECTOR:
     status   Show status of a volume
     stats    Show real time performance statistics of JuiceFS
     profile  Show profiling of operations completed in JuiceFS
     info     Show internal information of a path or inode
     debug   Show information from multiple dimensions such as the operating environment and system logs
   SERVICE:
     mount    Mount a volume
     umount   Unmount a volume
     gateway  Start an S3-compatible gateway
     webdav   Start a WebDAV server
   TOOL:
     bench     Run benchmarks on a path
     objbench  Run benchmarks on an object storage
     warmup    Build cache for target directories/files
     rmr       Remove directories recursively
     sync      Sync between two storages

GLOBAL OPTIONS:
   --verbose, --debug, -v  enable debug log (default: false)
   --quiet, -q             show warning and errors only (default: false)
   --trace                 enable trace log (default: false)
   --no-agent              disable pprof (:6060) agent (default: false)
   --pyroscope value       pyroscope address
   --no-color              disable colors (default: false)
   --help, -h              show help (default: false)
   --version, -V           print version only (default: false)

COPYRIGHT:
   Apache License 2.0

:::note 注意 如果命令选项是布尔boolean类型例如 --debug ,无需设置任何值,只要在命令中添加 --debug 即代表启用该功能,反之则代表不启用。 :::

自动补全

:::note 注意 此特性需要使用 0.15.2 及以上版本的 JuiceFS。它基于 github.com/urfave/cli/v2 实现,更多信息请参见这里。 :::

通过加载 hack/autocomplete 目录下的对应脚本可以启用命令的自动补全,例如:

source hack/autocomplete/bash_autocomplete
source hack/autocomplete/zsh_autocomplete

请注意自动补全功能仅对当前会话有效。如果你希望对所有新会话都启用此功能,请将 source 命令添加到 .bashrc.zshrc 中:

echo "source path/to/bash_autocomplete" >> ~/.bashrc
echo "source path/to/zsh_autocomplete" >> ~/.zshrc

另外,如果你是在 Linux 系统上使用 bash也可以直接将脚本拷贝到 /etc/bash_completion.d 目录并将其重命名为 juicefs

sudo cp hack/autocomplete/bash_autocomplete /etc/bash_completion.d/juicefs
source /etc/bash_completion.d/juicefs

命令列表

juicefs format

创建文件系统,如果 META-URL 中已经存在一个文件系统,则不会再次进行格式化。如果文件系统创建后需要调整配置,请使用 juicefs config

使用

juicefs format [command options] META-URL NAME

选项

--block-size value
块大小;单位为 KiB (默认4096)。4M 是一个较好的默认值,不少对象存储(比如 S3都将 4M 设为内部的块大小,因此将 JuiceFS block size 设为相同大小,往往也能获得更好的性能

--capacity value
容量配额;单位为 GiB (默认:不限制)。如果启用了回收站,那么配额大小也将包含回收站文件

--inodes value
文件数配额 (默认:不限制)

--compress value
压缩算法 (lz4, zstd, none) (默认:"none"),开启压缩将不可避免地对性能产生一定影响,请权衡。

--shards value
将数据块根据名字哈希存入 N 个桶中 (默认0),当 N 大于 0 时,bucket 需要写成 %d 的形式,例如 --bucket "juicefs-%d"

--storage value
对象存储类型 (例如 s3gcsosscos) (默认:"file",请参考文档查看所有支持的对象存储类型)

--bucket value
存储数据的桶路径 (默认:"$HOME/.juicefs/local""/var/jfs")

--access-key value
对象存储的 Access Key (也可通过环境变量 ACCESS_KEY 设置)

--secret-key value
对象存储的 Secret Key (也可通过环境变量 SECRET_KEY 设置)

--session-token value
对象存储的 session token

--encrypt-rsa-key value
RSA 私钥的路径 (PEM)

--trash-days value
文件被自动清理前在回收站内保留的天数 (默认1)

--hash-prefix
给每个对象添加 hash 前缀 (默认false)

--force
强制覆盖当前的格式化配置 (默认false)

--no-update
不要修改已有的格式化配置 (默认false)

示例

# 创建一个简单的测试卷(数据将存储在本地目录中)
$ juicefs format sqlite3://myjfs.db myjfs

# 使用 Redis 和 S3 创建卷
$ juicefs format redis://localhost myjfs --storage s3 --bucket https://mybucket.s3.us-east-2.amazonaws.com

# 使用带有密码的 MySQL 创建卷
$ juicefs format mysql://jfs:mypassword@(127.0.0.1:3306)/juicefs myjfs
# 更安全的方法
$ META_PASSWORD=mypassword juicefs format mysql://jfs:@(127.0.0.1:3306)/juicefs myjfs

# 创建一个开启配额设置的卷
$ juicefs format sqlite3://myjfs.db myjfs --inode 1000000 --capacity 102400

# 创建一个关闭了回收站的卷
$ juicefs format sqlite3://myjfs.db myjfs --trash-days 0

juicefs mount

挂载一个已经创建的文件系统。

你可以用任意用户执行挂载命令,不过请确保该用户对缓存目录(--cache-dir)有写权限,请阅读「缓存位置」文档了解更多信息。

使用

juicefs mount [command options] META-URL MOUNTPOINT

选项

--metrics value
监控数据导出地址 (默认:"127.0.0.1:9567")

--consul value
Consul 注册中心地址 (默认:"127.0.0.1:8500")

--no-usage-report
不发送使用量信息 (默认false)

-d, --background
后台运行 (默认false)

--no-syslog
禁用系统日志 (默认false)

--log value
后台运行时日志文件的位置 (默认:$HOME/.juicefs/juicefs.log/var/log/juicefs.log)

-o value
其他 FUSE 选项,详见 FUSE 挂载选项

--attr-cache value
属性缓存过期时间;单位为秒 (默认1)。详见「内核元数据缓存」

--entry-cache value
文件项缓存过期时间;单位为秒 (默认1)。详见「内核元数据缓存」

--dir-entry-cache value
目录项缓存过期时间;单位为秒 (默认1)。详见「内核元数据缓存」

--enable-xattr
启用扩展属性 (xattr) 功能 (默认false)

--bucket value
为当前挂载点指定访问访对象存储的 endpoint

--get-timeout value
下载一个对象的超时时间;单位为秒 (默认60)

--put-timeout value
上传一个对象的超时时间;单位为秒 (默认60)

--io-retries value
网络异常时的重试次数 (默认10)

--max-uploads value
上传对象的连接数 (默认20)

--max-deletes value
删除对象的连接数 (默认10)

--buffer-size value
读写缓存的总大小;单位为 MiB (默认300)

--upload-limit value
上传带宽限制,单位为 Mbps (默认0)

--download-limit value
下载带宽限制,单位为 Mbps (默认0)

--prefetch value
并发预读 N 个块 (默认1)

--writeback
后台异步上传对象 (默认false)。阅读「客户端写缓存」了解更多

--cache-dir value
本地缓存目录路径;使用 :Linux、macOS;Windows隔离多个路径 (默认:"$HOME/.juicefs/cache""/var/jfsCache")。阅读「缓存」了解更多

--cache-size value
缓存对象的总大小;单位为 MiB (默认102400)。阅读「缓存」了解更多

--free-space-ratio value
最小剩余空间比例 (默认0.1)。如果启用了「客户端写缓存」,则该参数还控制着写缓存占用空间。阅读「缓存」了解更多

--cache-partial-only
仅缓存随机小块读 (默认false)。阅读「缓存」了解更多

--read-only
只读模式 (默认false)

--open-cache value
打开的文件的缓存过期时间0 代表关闭这个特性);单位为秒 (默认0)。阅读「缓存」了解更多

--subdir value
将某个子目录挂载为根 (默认:"")

--backup-meta value
自动备份元数据到对象存储的间隔时间;单位秒 (0 表示不备份) (默认3600)

--heartbeat value
发送心跳的间隔(单位秒),建议所有客户端使用相同的心跳值 (默认12)

--upload-delay value
数据上传到对象存储的延迟时间,支持秒分时精度,对应格式分别为 ("s", "m", "h"),默认为 0 秒。如果在等待的时间内数据被应用删除,则无需再上传到对象存储,既提升了性能也节省了成本,如果数据只是临时落盘,之后会迅速删除,考虑用该选项进行优化。

--no-bgjob
禁用后台作业清理、备份等默认false

示例

# 前台挂载
$ juicefs mount redis://localhost /mnt/jfs

# 使用带密码的 redis 后台挂载
$ juicefs mount redis://:mypassword@localhost /mnt/jfs -d
# 更安全的方式
$ META_PASSWORD=mypassword juicefs mount redis://localhost /mnt/jfs -d

# 将一个子目录挂载为根目录
$ juicefs mount redis://localhost /mnt/jfs --subdir /dir/in/jfs

# 启用 “writeback” 模式,这可以提高性能,但有丢失对象的风险
$ juicefs mount redis://localhost /mnt/jfs -d --writeback

# 开启只读模式
$ juicefs mount redis://localhost /mnt/jfs -d --read-only

# 关闭元数据自动备份
$ juicefs mount redis://localhost /mnt/jfs --backup-meta 0

juicefs umount

卸载一个文件文件系统。

使用

juicefs umount [command options] MOUNTPOINT

选项

-f, --force
强制卸载一个忙碌的文件系统 (默认false)

示例

juicefs umount /mnt/jfs

juicefs gateway

启动一个 S3 兼容的网关。

使用

juicefs gateway [command options] META-URL ADDRESS

选项

--bucket value
为当前网关指定访问访对象存储的 endpoint

--get-timeout value
下载一个对象的超时时间;单位为秒 (默认60)

--put-timeout value
上传一个对象的超时时间;单位为秒 (默认60)

--io-retries value
网络异常时的重试次数 (默认10)

--max-uploads value
上传对象的连接数 (默认20)

--max-deletes value
删除对象的连接数 (默认10)

--buffer-size value
读写缓存的总大小;单位为 MiB (默认300)

--upload-limit value
上传带宽限制,单位为 Mbps (默认0)

--download-limit value
下载带宽限制,单位为 Mbps (默认0)

--prefetch value
并发预读 N 个块 (默认1)

--writeback
后台异步上传对象 (默认false)

--cache-dir value
本地缓存目录路径;使用 :Linux、macOS;Windows隔离多个路径 (默认:"$HOME/.juicefs/cache"/var/jfsCache)。阅读「缓存」了解更多

--cache-size value
缓存对象的总大小;单位为 MiB (默认102400)。阅读「缓存」了解更多

--free-space-ratio value
最小剩余空间比例 (默认0.1)。阅读「缓存」了解更多

--cache-partial-only
仅缓存随机小块读 (默认false)。阅读「缓存」了解更多

--read-only
只读模式 (默认false)

--open-cache value
打开的文件的缓存过期时间0 代表关闭这个特性);单位为秒 (默认0)。阅读「缓存」了解更多

--subdir value
将某个子目录挂载为根 (默认:"")

--attr-cache value
属性缓存过期时间;单位为秒 (默认1)。详见「内核元数据缓存」

--entry-cache value
文件项缓存过期时间;单位为秒 (默认0)。详见「内核元数据缓存」

--dir-entry-cache value
目录项缓存过期时间;单位为秒 (默认1)。详见「内核元数据缓存」

--access-log value
访问日志的路径

--metrics value
监控数据导出地址 (默认:"127.0.0.1:9567")

--no-usage-report
不发送使用量信息 (默认false)

--no-banner
禁用 MinIO 的启动信息 (默认false)

--multi-buckets
使用第一级目录作为存储桶 (默认false)

--keep-etag
保留对象上传时的 ETag (默认false)

--storage value
对象存储类型 (例如 s3gcsosscos) (默认:"file",请参考文档查看所有支持的对象存储类型)

--upload-delay value
数据上传到对象存储的延迟时间,支持秒分时精度,对应格式分别为 ("s", "m", "h"),默认为 0 秒

--backup-meta value
自动备份元数据到对象存储的间隔时间;单位秒 (0 表示不备份) (默认3600)

--heartbeat value
发送心跳的间隔 (秒);建议所有客户端使用相同的心跳值 (默认12)。

--no-bgjob
禁用后台作业清理、备份等默认值false

--umask value 新文件和新目录的 umask 的八进制格式 (默认值:“022”)

--consul value
Consul 注册中心地址 (默认:"127.0.0.1:8500")

示例

export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
juicefs gateway redis://localhost localhost:9000

juicefs webdav

启动一个 WebDAV 服务。

使用

juicefs webdav [command options] META-URL ADDRESS
  • META-URL:用于元数据存储的数据库 URL详情查看「JuiceFS 支持的元数据引擎」。
  • ADDRESSWebDAV 服务监听的地址与端口,例如:localhost:9007

选项

--bucket value
为当前网关指定访问访对象存储的 endpoint

--get-timeout value
下载一个对象的超时时间;单位为秒 (默认60)

--put-timeout value
上传一个对象的超时时间;单位为秒 (默认60)

--io-retries value
网络异常时的重试次数 (默认10)

--max-uploads value
上传对象的连接数 (默认20)

--max-deletes value
删除对象的连接数 (默认10)

--buffer-size value
读写缓存的总大小;单位为 MiB (默认300)

--upload-limit value
上传带宽限制,单位为 Mbps (默认0)

--download-limit value
下载带宽限制,单位为 Mbps (默认0)

--prefetch value
并发预读 N 个块 (默认1)

--writeback
后台异步上传对象 (默认false)。阅读「客户端写缓存」了解更多

--upload-delay
数据上传到对象存储的延迟时间,支持秒分时精度,对应格式分别为 ("s", "m", "h"),默认为 0 秒

--cache-dir value
本地缓存目录路径;使用 :Linux、macOS;Windows隔离多个路径 (默认:"$HOME/.juicefs/cache"/var/jfsCache)。阅读「缓存」了解更多

--cache-size value
缓存对象的总大小;单位为 MiB (默认102400)。阅读「缓存」了解更多

--free-space-ratio value
最小剩余空间比例 (默认0.1)。阅读「缓存」了解更多

--cache-partial-only
仅缓存随机小块读 (默认false)。阅读「缓存」了解更多

--read-only
只读模式 (默认false)

--backup-meta value
在对象存储中自动备份元数据的时间间隔0 表示禁用备份默认值1h0m0s

--no-bgjob
禁用后台作业清理、备份等默认值false

--open-cache value
打开的文件的缓存过期时间0 代表关闭这个特性);单位为秒 (默认0)。阅读「缓存」了解更多

--subdir value
将某个子目录挂载为根 (默认:"")

--attr-cache value
属性缓存过期时间;单位为秒 (默认1)。详见「内核元数据缓存」

--entry-cache value
文件项缓存过期时间;单位为秒 (默认0)。详见「内核元数据缓存」

--dir-entry-cache value
目录项缓存过期时间;单位为秒 (默认1)。详见「内核元数据缓存」

--cert-file
HTTPS 证书文件

--key-file
HTTPS 密钥文件

--gzip
通过 gzip 压缩提供的文件默认值false

--disallowList
禁止列出目录默认值false

--access-log value
访问日志的路径

--metrics value
监控数据导出地址 (默认:"127.0.0.1:9567")

--consul value
Consul 注册中心地址 (默认:"127.0.0.1:8500")

--no-usage-report
不发送使用量信息 (默认false)

--storage value
对象存储类型 (例如 s3gcsosscos) (默认:"file",请参考文档查看所有支持的对象存储类型)

--heartbeat value
发送心跳的间隔 (秒);建议所有客户端使用相同的心跳值 (默认12)。

示例

juicefs webdav redis://localhost localhost:9007

juicefs sync

在两个存储系统之间同步数据。

使用

juicefs sync [command options] SRC DST
  • SRC:源路径
  • DST:目标路径

源路径和目标路径的格式均为 [NAME://][ACCESS_KEY:SECRET_KEY[:TOKEN]@]BUCKET[.ENDPOINT][/PREFIX],其中:

  • NAMEJuiceFS 支持的数据存储类型(如 s3oss),请参考文档
  • ACCESS_KEYSECRET_KEY:访问数据存储所需的密钥信息,请参考文档
  • TOKEN 用来访问对象存储的 token部分对象存储支持使用临时的 token 以获得有限时间的权限
  • BUCKET[.ENDPOINT]:数据存储服务的访问地址,不同存储类型格式可能不同,具体请参考文档
  • [/PREFIX]:可选,源路径和目标路径的前缀,可用于限定只同步某些路径中的数据。

有关 sync 子命令的详细介绍,请参考文档

选项

--start KEY, -s KEY
同步的第一个对象名

--end KEY, -e KEY
同步的最后一个对象名

--threads value, -p value
并发线程数 (默认10)

--http-port PORT
监听的 HTTP 端口 (默认6070)

--update, -u
当源文件更新时修改已存在的文件 (默认false)

--force-update, -f
强制修改已存在的文件 (默认false)

--perms
保留权限设置 (默认false)

--dirs
同步目录 (默认false)

--dry
不拷贝文件 (默认false)

--delete-src, --deleteSrc
同步后删除源存储的对象 (默认false)

--delete-dst, --deleteDst
删除目标存储下的不相关对象 (默认false)

--exclude PATTERN
排除匹配 PATTERN 的 Key

--include PATTERN
不排除匹配 PATTERN 的 Key需要与 --exclude 选项配合使用。

--links, -l
将符号链接复制为符号链接 (默认false)

--limit value
限制将要处理的对象的数量 (默认:-1)

--manager value
管理者地址

--worker value
工作节点列表 (使用逗号分隔)

--bwlimit value
限制最大带宽;单位为 Mbps (0 表示不限制) (默认0)

--no-https
不要使用 HTTPS (默认false)

--check-all
验证源路径和目标路径中所有文件的数据完整性 (默认false)

--check-new
验证新拷贝文件的数据完整性 (默认false)

示例

# 从 OSS 同步到 S3
$ juicefs sync oss://mybucket.oss-cn-shanghai.aliyuncs.com s3://mybucket.s3.us-east-2.amazonaws.com

# 从 S3 同步到 JuiceFS
$ juicefs mount -d redis://localhost /mnt/jfs
$ juicefs sync s3://mybucket.s3.us-east-2.amazonaws.com/ /mnt/jfs/

# 源端: a1/b1,a2/b2,aaa/b1   目标端: empty   同步结果: aaa/b1
$ juicefs sync --exclude='a?/b*' s3://mybucket.s3.us-east-2.amazonaws.com/ /mnt/jfs/

# 源端: a1/b1,a2/b2,aaa/b1   目标端: empty   同步结果: a1/b1,aaa/b1
$ juicefs sync --include='a1/b1' --exclude='a[1-9]/b*' s3://mybucket.s3.us-east-2.amazonaws.com/ /mnt/jfs/

# 源端: a1/b1,a2/b2,aaa/b1,b1,b2  目标端: empty   同步结果: a1/b1,b2
$ juicefs sync --include='a1/b1' --exclude='a*' --include='b2' --exclude='b?' s3://mybucket.s3.us-east-2.amazonaws.com/ /mnt/jfs/

juicefs rmr

快速删除目录里的所有文件和子目录,效果等同于 rm -rf,但该命令直接操纵元数据,不经过 POSIX所以速度更快。

如果文件系统启用了回收站功能,被删除的文件会进入回收站。详见「回收站」

使用

juicefs rmr PATH ...

示例

juicefs rmr /mnt/jfs/foo

juicefs info

显示指定路径或 inode 的内部信息。

使用

juicefs info [command options] PATH or INODE

选项

--inode, -i
使用 inode 号而不是路径 (当前目录必须在 JuiceFS 挂载点内) (默认false)

--recursive, -r
递归获取所有子目录的概要信息(注意:当指定一个目录结构很复杂的路径时可能会耗时很长) (默认false)

--raw
显示内部原始信息 (默认false)

示例

# 检查路径
$ juicefs info /mnt/jfs/foo

# 检查 inode
$ cd /mnt/jfs
$ juicefs info -i 100

juicefs bench

对指定的路径做基准测试,包括对大文件和小文件的读/写/获取属性操作。

使用

juicefs bench [command options] PATH

有关 bench 子命令的详细介绍,请参考文档

选项

--block-size value
块大小;单位为 MiB (默认1)

--big-file-size value
大文件大小;单位为 MiB (默认1024)

--small-file-size value
小文件大小;单位为 MiB (默认0.1)

--small-file-count value
小文件数量 (默认100)

--threads value, -p value
并发线程数 (默认1)

示例

# 使用4个线程运行基准测试
$ juicefs bench /mnt/jfs -p 4

# 只运行小文件的基准测试
$ juicefs bench /mnt/jfs --big-file-size 0

juicefs objbench

测试对象存储接口的正确性与基本性能

使用

juicefs objbench [command options] BUCKET

有关 objbench 子命令的详细介绍,请参考文档

选项

--storage value
对象存储类型 (例如 s3gcsosscos) (默认:"file",请参考文档查看所有支持的对象存储类型)

--access-key value
对象存储的 Access Key (也可通过环境变量 ACCESS_KEY 设置)

--secret-key value
对象存储的 Secret Key (也可通过环境变量 SECRET_KEY 设置)

--block-size value
每个 IO 块的大小(以 KiB 为单位默认值4096

--big-object-size value
大文件的大小(以 MiB 为单位默认值1024

--small-object-size value
每个小文件的大小(以 KiB 为单位默认值128

--small-objects value
小文件的数量默认值100

--skip-functional-tests
跳过功能测试默认值false

--threads value, -p value
上传下载等操作的并发数默认值4

示例

# 测试 S3 对象存储的基准性能
$ ACCESS_KEY=myAccessKey SECRET_KEY=mySecretKey juicefs objbench --storage s3  https://mybucket.s3.us-east-2.amazonaws.com -p 6

juicefs gc

用来处理「对象泄漏」,以及因为覆盖写而产生的碎片数据的命令。详见「状态检查 & 维护」

使用

juicefs gc [command options] META-URL

选项

--delete
删除泄漏的对象 (默认false)

--compact
整理所有文件的碎片 (默认false).

--threads value
用于删除泄漏对象的线程数 (默认10)

示例

# 只检查,没有更改的能力
$ juicefs gc redis://localhost

# 触发所有 slices 的压缩
$ juicefs gc redis://localhost --compact

# 删除泄露的对象
$ juicefs gc redis://localhost --delete

juicefs fsck

检查文件系统一致性。

使用

juicefs fsck [command options] META-URL

示例

juicefs fsck redis://localhost

juicefs profile

分析访问日志

使用

juicefs profile [command options] MOUNTPOINT/LOGFILE

选项

--uid value, -u value
仅跟踪指定 UIDs (用逗号分隔)

--gid value, -g value
仅跟踪指定 GIDs (用逗号分隔)

--pid value, -p value
仅跟踪指定 PIDs (用逗号分隔)

--interval value
显示间隔;在回放模式中将其设置为 0 可以立即得到整体的统计结果;单位为秒 (默认2)

示例

# 监控实时操作
$ juicefs profile /mnt/jfs

# 重放访问日志
$ cat /mnt/jfs/.accesslog > /tmp/jfs.alog
# 一段时间后按 Ctrl-C 停止 “cat” 命令
$ juicefs profile /tmp/jfs.alog

# 分析访问日志并立即打印总统计数据
$ juicefs profile /tmp/jfs.alog --interval 0

juicefs stats

展示实时的性能统计信息。

使用

juicefs stats [command options] MOUNTPOINT

选项

--schema value
控制输出内容的标题字符串 (u: usage, f: fuse, m: meta, c: blockcache, o: object, g: go) (默认:"ufmco")

--interval value
更新间隔;单位为秒 (默认1)

--verbosity value
详细级别;通常 0 或 1 已足够 (默认0)

示例

$ juicefs stats /mnt/jfs

# 更多的指标
$ juicefs stats /mnt/jfs -l 1

juicefs status

显示 JuiceFS 的状态。

使用

juicefs status [command options] META-URL

选项

--session value, -s value
展示指定会话 (SID) 的具体信息 (默认0)

示例

juicefs status redis://localhost

juicefs warmup

将文件提前下载到缓存,提升后续本地访问的速度。可以指定某个挂载点路径,递归对这个路径下的所有文件进行缓存预热;也可以通过 --file 选项指定文本文件,在文本文件中指定需要预热的文件名。

如果需要预热的文件分布在许多不同的目录,推荐将这些文件名保存到文本文件中并用 --file 参数传给预热命令,这样做能利用 warmup 的并发功能,速度会显著优于多次调用 juicefs warmup,在每次调用里传入单个文件。

使用

juicefs warmup [command options] [PATH ...]

选项

--file value, -f value
指定一个包含一组路径的文件(每一行为一个文件路径)

--threads value, -p value
并发的工作线程数,默认 50。如果带宽不足导致下载失败需要减少并发度控制下载速度

--background, -b
后台运行默认false

示例

# 预热目录中的所有文件
$ juicefs warmup /mnt/jfs/datadir

# 只预热目录中 3 个文件
$ cat /tmp/filelist
/mnt/jfs/datadir/f1
/mnt/jfs/datadir/f2
/mnt/jfs/datadir/f3
$ juicefs warmup -f /tmp/filelist

juicefs dump

导出元数据。阅读「元数据备份」以了解更多。

使用

juicefs dump [command options] META-URL [FILE]

# 导出元数据至 meta-dump.json
juicefs dump redis://localhost meta-dump.json

# 只导出文件系统的一个子目录的元数据
juicefs dump redis://localhost sub-meta-dump.json --subdir /dir/in/jfs

选项

META-URL
用于元数据存储的数据库 URL详情查看「JuiceFS 支持的元数据引擎」

FILE
导出文件路径,如果不指定,则会导出到标准输出。如果文件名以 .gz 结尾,将会自动压缩。

--subdir value
只导出指定子目录的元数据。

--keep-secret-key
导出对象存储认证信息,默认为 false。由于是明文导出,使用时注意数据安全。如果导出文件不包含对象存储认证信息,后续的导入完成后,需要用 juicefs config 重新配置对象存储认证信息。

juicefs load

将元数据导入一个空的文件系统。阅读「元数据恢复与迁移」以了解更多。

使用

juicefs load [command options] META-URL [FILE]

# 将元数据备份文件 meta-dump.json 导入数据库
juicefs load redis://127.0.0.1:6379/1 meta-dump.json

选项

META-URL
用于元数据存储的数据库 URL详情查看「JuiceFS 支持的元数据引擎」

FILE
导入文件路径,如果不指定,则会从标准输入导入。如果文件名以 .gz 结尾,将会自动解压。

--encrypt-rsa-key value
加密所使用的 RSA 私钥文件路径。

--encrypt-algo value
加密算法,默认为 aes256gcm-rsa

juicefs config

修改指定文件系统的配置项。注意更新某些设置以后,客户端未必能立刻生效,需要等待一定时间,具体的等待时间可以通过 --heartbeat 选项控制。

使用

juicefs config [command options] META-URL

选项

--capacity value
容量配额,单位为 GiB

--inodes value
文件数配额

--bucket value
存储数据的桶路径

--access-key value
对象存储的 Access key

--secret-key value
对象存储的 Secret key

--session-token value
对象存储的 session token

--trash-days value
文件被自动清理前在回收站内保留的天数

--force
跳过合理性检查并强制更新指定配置项 (默认false)

--encrypt-secret
如果密钥之前以原格式存储,则加密密钥 (默认值false)

--min-client-version value
允许连接的最小客户端版本

--max-client-version value
允许连接的最大客户端版本

示例

# 显示当前配置
$ juicefs config redis://localhost

# 改变目录的配额
$ juicefs config redis://localhost --inode 10000000 --capacity 1048576

# 更改回收站中文件可被保留的最长天数
$ juicefs config redis://localhost --trash-days 7

# 限制允许连接的客户端版本
$ juicefs config redis://localhost --min-client-version 1.0.0 --max-client-version 1.1.0

juicefs destroy

销毁一个已经存在的文件系统,将会清空元数据引擎与对象存储中的相关数据。详见「如何销毁文件系统」

使用

juicefs destroy [command options] META-URL UUID

选项

--force
跳过合理性检查并强制销毁文件系统 (默认false)

示例

juicefs destroy redis://localhost e94d66a8-2339-4abd-b8d8-6812df737892

juicefs debug

从运行环境、系统日志等多个维度收集和展示信息,帮助更好地定位错误

使用

juicefs debug [command options] MOUNTPOINT

选项

--out-dir value
结果输出目录,若目录不存在则自动创建 (默认:./debug/)

--stats-sec value
.stats 文件采样秒数 (默认5)

--limit value
收集的日志条目数,从新到旧,若不指定则收集全部条目

--trace-sec value
trace 指标采样秒数 (默认5)

--profile-sec value
profile 指标采样秒数 (默认30)

示例

# 收集并展示挂载点 /mnt/jfs 的各类信息
$ juicefs debug /mnt/jfs

# 指定输出目录为 /var/log
$ juicefs debug --out-dir=/var/log /mnt/jfs

# 收集最后 1000 条日志条目
$ juicefs debug --out-dir=/var/log --limit=1000 /mnt/jfs