command_reference.md 10.7 KB
Newer Older
H
Herald Yu 已提交
1 2 3 4 5 6
# JuiceFS 命令参考

有许多命令可帮助您管理文件系统,该页面提供了有关这些命令的详细参考。

## 概览

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

9 10
```bash
$ juicefs -h
H
Herald Yu 已提交
11 12 13 14 15 16 17
NAME:
   juicefs - A POSIX file system built on Redis and object storage.

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

VERSION:
S
Sandy Xu 已提交
18
   0.15-dev (2021-06-16 b5d0cd8)
H
Herald Yu 已提交
19 20

COMMANDS:
21 22 23 24 25 26 27 28 29 30
   format   format a volume
   mount    mount a volume
   umount   unmount a volume
   gateway  S3-compatible gateway
   sync     sync between two storage
   rmr      remove directories recursively
   info     show internal information for paths or inodes
   bench    run benchmark to read/write/stat big/small files
   gc       collect any leaked objects
   fsck     Check consistency of file system
S
Sandy Xu 已提交
31
   profile  analyze access log
32 33
   status   show status of JuiceFS
   warmup   build cache for target directories/files
S
Sandy Xu 已提交
34 35
   dump     dump JuiceFS metadata into a standalone file
   load     load JuiceFS metadata from a previously dumped file
36
   help, h  Shows a list of commands or help for one command
H
Herald Yu 已提交
37 38 39 40 41 42 43 44 45 46 47 48 49

GLOBAL OPTIONS:
   --verbose, --debug, -v  enable debug log (default: false)
   --quiet, -q             only warning and errors (default: false)
   --trace                 enable trace log (default: false)
   --no-agent              Disable pprof (:6060) and gops (:6070) agent (default: false)
   --help, -h              show help (default: false)
   --version, -V           print only the version (default: false)

COPYRIGHT:
   AGPLv3
```

50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
**注意:**如果 `juicefs` 不在 `$PATH` 中,你需要指定程序所在的路径才能执行。例如,`juicefs` 如果在当前目录中,则可以使用 `./juicefs`。为了方便使用,建议将 `juicefs` 添加到  `$PATH` 中。可以参考 [快速上手指南](quick_start_guide.md) 了解安装相关内容。

## 自动补全

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

Bash:

```bash
$ source hack/autocomplete/bash_autocomplete
```

Zsh:

```bash
$ source hack/autocomplete/zsh_autocomplete
```
H
Herald Yu 已提交
67

68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
请注意自动补全功能仅对当前会话有效。如果你希望对所有新会话都启用此功能,请将 `source` 命令添加到 `.bashrc``.zshrc` 中:

```bash
$ echo "source path/to/bash_autocomplete" >> ~/.bashrc
```



```bash
$ echo "source path/to/zsh_autocomplete" >> ~/.zshrc
```

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

```bash
$ sudo cp hack/autocomplete/bash_autocomplete /etc/bash_completion.d/juicefs
$ source /etc/bash_completion.d/juicefs
```
H
Herald Yu 已提交
86

87
**注意:**此特性基于 `github.com/urfave/cli/v2` 实现,更多信息请参见[这里](https://github.com/urfave/cli/blob/master/docs/v2/manual.md#enabling)
H
Herald Yu 已提交
88

89
## 命令列表
H
Herald Yu 已提交
90

91
### juicefs format
H
Herald Yu 已提交
92

93
#### 描述
H
Herald Yu 已提交
94

S
Sandy Xu 已提交
95
格式化文件系统;这是使用新文件系统的第一步。
H
Herald Yu 已提交
96

97
#### 使用
H
Herald Yu 已提交
98 99 100 101 102

```
juicefs format [command options] REDIS-URL NAME
```

103
#### 选项
H
Herald Yu 已提交
104 105

`--block-size value`\
S
Sandy Xu 已提交
106
块大小;单位为 KiB (默认: 4096)
H
Herald Yu 已提交
107

D
Davies Liu 已提交
108
`--capacity value`\
S
Sandy Xu 已提交
109
容量配额;单位为 GiB (默认: 不限制)
D
Davies Liu 已提交
110 111

`--inodes value`\
S
Sandy Xu 已提交
112
文件数配额 (默认: 不限制)
D
Davies Liu 已提交
113

H
Herald Yu 已提交
114
`--compress value`\
S
Sandy Xu 已提交
115
压缩算法 (lz4, zstd, none) (默认: "none")
H
Herald Yu 已提交
116 117

`--shards value`\
S
Sandy Xu 已提交
118
将数据块根据名字哈希存入 N 个桶中 (默认: 0)
H
Herald Yu 已提交
119 120

`--storage value`\
S
Sandy Xu 已提交
121
对象存储类型 (例如 s3, gcs, oss, cos) (默认: "file")
H
Herald Yu 已提交
122 123

`--bucket value`\
S
Sandy Xu 已提交
124
存储数据的桶路径 (默认: `"$HOME/.juicefs/local"``"/var/jfs"`)
H
Herald Yu 已提交
125 126

`--access-key value`\
S
Sandy Xu 已提交
127
对象存储的 Access key (env `ACCESS_KEY`)
H
Herald Yu 已提交
128 129

`--secret-key value`\
S
Sandy Xu 已提交
130
对象存储的 Secret key (env `SECRET_KEY`)
H
Herald Yu 已提交
131 132

`--encrypt-rsa-key value`\
S
Sandy Xu 已提交
133
RSA 私钥的路径 (PEM)
H
Herald Yu 已提交
134 135

`--force`\
S
Sandy Xu 已提交
136
强制覆盖当前的格式化配置 (默认: false)
H
Herald Yu 已提交
137 138

`--no-update`\
S
Sandy Xu 已提交
139
不要修改已有的格式化配置 (默认: false)
H
Herald Yu 已提交
140

141
### juicefs mount
H
Herald Yu 已提交
142

143
#### 描述
H
Herald Yu 已提交
144

S
Sandy Xu 已提交
145
挂载一个已经格式化的文件系统。
H
Herald Yu 已提交
146

147
#### 使用
H
Herald Yu 已提交
148 149 150 151 152

```
juicefs mount [command options] REDIS-URL MOUNTPOINT
```

153
#### 选项
H
Herald Yu 已提交
154 155

`--metrics value`\
S
Sandy Xu 已提交
156
监控数据导出地址 (默认: "127.0.0.1:9567")
H
Herald Yu 已提交
157 158

`--no-usage-report`\
S
Sandy Xu 已提交
159
不发送使用量信息 (默认: false)
H
Herald Yu 已提交
160 161

`-d, --background`\
S
Sandy Xu 已提交
162
后台运行 (默认: false)
H
Herald Yu 已提交
163 164

`--no-syslog`\
S
Sandy Xu 已提交
165
禁用系统日志 (默认: false)
H
Herald Yu 已提交
166 167

`-o value`\
S
Sandy Xu 已提交
168
其他 FUSE 选项 (参见[此文档](fuse_mount_options.md)来了解更多信息)
H
Herald Yu 已提交
169 170

`--attr-cache value`\
S
Sandy Xu 已提交
171
属性缓存过期时间;单位为秒 (默认: 1)
H
Herald Yu 已提交
172 173

`--entry-cache value`\
S
Sandy Xu 已提交
174
文件项缓存过期时间;单位为秒 (默认: 1)
H
Herald Yu 已提交
175 176

`--dir-entry-cache value`\
S
Sandy Xu 已提交
177
目录项缓存过期时间;单位为秒 (默认: 1)
H
Herald Yu 已提交
178 179

`--enable-xattr`\
S
Sandy Xu 已提交
180
启用扩展属性 (xattr) 功能 (默认: false)
H
Herald Yu 已提交
181

D
Davies Liu 已提交
182
`--read-only`\
S
Sandy Xu 已提交
183
只读模式 (默认: false)
D
Davies Liu 已提交
184

H
Herald Yu 已提交
185
`--get-timeout value`\
S
Sandy Xu 已提交
186
下载一个对象的超时时间;单位为秒 (默认: 60)
H
Herald Yu 已提交
187 188

`--put-timeout value`\
S
Sandy Xu 已提交
189
上传一个对象的超时时间;单位为秒 (默认: 60)
H
Herald Yu 已提交
190 191

`--io-retries value`\
S
Sandy Xu 已提交
192
网络异常时的重试次数 (默认: 30)
H
Herald Yu 已提交
193 194

`--max-uploads value`\
S
Sandy Xu 已提交
195
上传对象的连接数 (默认: 20)
H
Herald Yu 已提交
196 197

`--buffer-size value`\
S
Sandy Xu 已提交
198
读写缓存的总大小;单位为 MiB (默认: 300)
H
Herald Yu 已提交
199 200

`--prefetch value`\
S
Sandy Xu 已提交
201
并发预读 N 个块 (默认: 1)
H
Herald Yu 已提交
202 203

`--writeback`\
S
Sandy Xu 已提交
204
后台异步上传对象 (默认: false)
H
Herald Yu 已提交
205 206

`--cache-dir value`\
S
Sandy Xu 已提交
207
本地缓存目录路径;使用冒号隔离多个路径 (默认: `"$HOME/.juicefs/cache"``"/var/jfsCache"`)
H
Herald Yu 已提交
208 209

`--cache-size value`\
S
Sandy Xu 已提交
210
缓存对象的总大小;单位为 MiB (默认: 1024)
H
Herald Yu 已提交
211 212

`--free-space-ratio value`\
S
Sandy Xu 已提交
213
最小剩余空间比例 (默认: 0.1)
H
Herald Yu 已提交
214 215

`--cache-partial-only`\
S
Sandy Xu 已提交
216
仅缓存随机小块读 (默认: false)
H
Herald Yu 已提交
217

218
### juicefs umount
H
Herald Yu 已提交
219

220
#### 描述
H
Herald Yu 已提交
221

S
Sandy Xu 已提交
222
卸载一个文件文件系统。
H
Herald Yu 已提交
223

224
#### 使用
H
Herald Yu 已提交
225 226

```
S
Sandy Xu 已提交
227
juicefs umount [command options] MOUNTPOINT
H
Herald Yu 已提交
228 229
```

230
#### 选项
H
Herald Yu 已提交
231 232

`-f, --force`\
S
Sandy Xu 已提交
233
强制卸载一个忙碌的文件系统 (默认: false)
H
Herald Yu 已提交
234

235
### juicefs gateway
H
Herald Yu 已提交
236

237
#### 描述
H
Herald Yu 已提交
238

S
Sandy Xu 已提交
239
启动一个 S3 兼容的网关。
H
Herald Yu 已提交
240

241
#### 使用
H
Herald Yu 已提交
242 243 244 245 246

```
juicefs gateway [command options] REDIS-URL ADDRESS
```

247
#### 选项
H
Herald Yu 已提交
248 249

`--get-timeout value`\
S
Sandy Xu 已提交
250
下载一个对象的超时时间;单位为秒 (默认: 60)
H
Herald Yu 已提交
251 252

`--put-timeout value`\
S
Sandy Xu 已提交
253
上传一个对象的超时时间;单位为秒 (默认: 60)
H
Herald Yu 已提交
254 255

`--io-retries value`\
S
Sandy Xu 已提交
256
网络异常时的重试次数 (默认: 30)
H
Herald Yu 已提交
257 258

`--max-uploads value`\
S
Sandy Xu 已提交
259
上传对象的连接数 (默认: 20)
H
Herald Yu 已提交
260 261

`--buffer-size value`\
S
Sandy Xu 已提交
262
读写缓存的总大小;单位为 MiB (默认: 300)
H
Herald Yu 已提交
263 264

`--prefetch value`\
S
Sandy Xu 已提交
265
并发预读 N 个块 (默认: 3)
H
Herald Yu 已提交
266 267

`--writeback`\
S
Sandy Xu 已提交
268
后台异步上传对象 (默认: false)
H
Herald Yu 已提交
269 270

`--cache-dir value`\
S
Sandy Xu 已提交
271
本地缓存目录路径;使用冒号隔离多个路径 (默认: `"$HOME/.juicefs/cache"``/var/jfsCache`)
H
Herald Yu 已提交
272 273

`--cache-size value`\
S
Sandy Xu 已提交
274
缓存对象的总大小;单位为 MiB (默认: 1024)
H
Herald Yu 已提交
275 276

`--free-space-ratio value`\
S
Sandy Xu 已提交
277
最小剩余空间比例 (默认: 0.1)
H
Herald Yu 已提交
278 279

`--cache-partial-only`\
S
Sandy Xu 已提交
280
仅缓存随机小块读 (默认: false)
H
Herald Yu 已提交
281 282

`--access-log value`\
S
Sandy Xu 已提交
283
访问日志的路径
H
Herald Yu 已提交
284 285

`--no-usage-report`\
S
Sandy Xu 已提交
286
不发送使用量信息 (默认: false)
H
Herald Yu 已提交
287 288

`--no-banner`\
S
Sandy Xu 已提交
289
禁用 MinIO 的启动信息 (默认: false)
H
Herald Yu 已提交
290

291
### juicefs sync
H
Herald Yu 已提交
292

293
#### 描述
H
Herald Yu 已提交
294

S
Sandy Xu 已提交
295
在两个存储系统之间同步数据。
H
Herald Yu 已提交
296

297
#### 使用
H
Herald Yu 已提交
298 299 300 301 302

```
juicefs sync [command options] SRC DST
```

303
#### 选项
H
Herald Yu 已提交
304 305

`--start KEY, -s KEY`\
S
Sandy Xu 已提交
306
同步的第一个对象名
H
Herald Yu 已提交
307 308

`--end KEY, -e KEY`\
S
Sandy Xu 已提交
309
同步的最后一个对象名
H
Herald Yu 已提交
310 311

`--threads value, -p value`\
S
Sandy Xu 已提交
312
并发线程数 (默认: 10)
H
Herald Yu 已提交
313 314

`--http-port PORT`\
S
Sandy Xu 已提交
315
监听的 HTTP 端口 (默认: 6070)
H
Herald Yu 已提交
316 317

`--update, -u`\
S
Sandy Xu 已提交
318
当源文件更新时修改已存在的文件 (默认: false)
H
Herald Yu 已提交
319 320

`--force-update, -f`\
S
Sandy Xu 已提交
321
强制修改已存在的文件 (默认: false)
H
Herald Yu 已提交
322 323

`--perms`\
S
Sandy Xu 已提交
324
保留权限设置 (默认: false)
H
Herald Yu 已提交
325 326

`--dirs`\
S
Sandy Xu 已提交
327
同步目录 (默认: false)
H
Herald Yu 已提交
328 329

`--dry`\
S
Sandy Xu 已提交
330
不拷贝文件 (默认: false)
H
Herald Yu 已提交
331 332

`--delete-src, --deleteSrc`\
S
Sandy Xu 已提交
333
同步后删除源存储的对象 (默认: false)
H
Herald Yu 已提交
334 335

`--delete-dst, --deleteDst`\
S
Sandy Xu 已提交
336
删除目标存储下的不相关对象 (默认: false)
H
Herald Yu 已提交
337 338

`--exclude PATTERN`\
S
Sandy Xu 已提交
339
跳过包含 PATTERN (POSIX正则表达式) 的对象名
H
Herald Yu 已提交
340 341

`--include PATTERN`\
S
Sandy Xu 已提交
342
仅同步包含 PATTERN (POSIX正则表达式) 的对象名
H
Herald Yu 已提交
343 344

`--manager value`\
S
Sandy Xu 已提交
345
管理者地址
H
Herald Yu 已提交
346 347

`--worker value`\
S
Sandy Xu 已提交
348
工作节点列表 (使用逗号分隔)
H
Herald Yu 已提交
349 350

`--bwlimit value`\
S
Sandy Xu 已提交
351
限制最大带宽;单位为 Mbps (0 表示不限制) (默认: 0)
H
Herald Yu 已提交
352 353

`--no-https`\
S
Sandy Xu 已提交
354
不要使用 HTTPS (默认: false)
H
Herald Yu 已提交
355

356
### juicefs rmr
H
Herald Yu 已提交
357

358
#### 描述
H
Herald Yu 已提交
359

S
Sandy Xu 已提交
360
递归删除指定目录下的所有文件。
H
Herald Yu 已提交
361

362
#### 使用
H
Herald Yu 已提交
363 364 365 366 367

```
juicefs rmr PATH ...
```

368
### juicefs info
H
Herald Yu 已提交
369

370
#### 描述
H
Herald Yu 已提交
371

S
Sandy Xu 已提交
372
显示指定路径或 inode 的内部信息。
H
Herald Yu 已提交
373

374
#### 使用
H
Herald Yu 已提交
375 376 377 378 379

```
juicefs info [command options] PATH or INODE
```

380
#### 选项
H
Herald Yu 已提交
381 382

`--inode, -i`\
S
Sandy Xu 已提交
383
使用 inode 号而不是路径 (当前目录必须在 JuiceFS 挂载点内) (默认: false)
H
Herald Yu 已提交
384 385


386
### juicefs bench
H
Herald Yu 已提交
387

388
#### 描述
H
Herald Yu 已提交
389

S
Sandy Xu 已提交
390
跑一轮基准性能测试,包括对大文件和小文件的读/写/获取属性操作。
H
Herald Yu 已提交
391

392
#### 使用
H
Herald Yu 已提交
393 394

```
395
juicefs bench [command options] PATH
H
Herald Yu 已提交
396 397
```

398
#### 选项
H
Herald Yu 已提交
399 400

`--block-size value`\
S
Sandy Xu 已提交
401
块大小;单位为 MiB (默认: 1)
H
Herald Yu 已提交
402 403

`--big-file-size value`\
S
Sandy Xu 已提交
404
大文件大小;单位为 MiB (默认: 1024)
H
Herald Yu 已提交
405 406

`--small-file-size value`\
S
Sandy Xu 已提交
407
小文件大小;单位为 MiB (默认: 0.1)
H
Herald Yu 已提交
408 409

`--small-file-count value`\
S
Sandy Xu 已提交
410
小文件数量 (默认: 100)
H
Herald Yu 已提交
411

412
### juicefs gc
H
Herald Yu 已提交
413

414
#### 描述
H
Herald Yu 已提交
415

S
Sandy Xu 已提交
416
收集泄漏的对象。
H
Herald Yu 已提交
417

418
#### 使用
H
Herald Yu 已提交
419 420 421 422 423

```
juicefs gc [command options] REDIS-URL
```

424
#### 选项
H
Herald Yu 已提交
425 426

`--delete`\
S
Sandy Xu 已提交
427
删除泄漏的对象 (默认: false)
H
Herald Yu 已提交
428 429

`--compact`\
S
Sandy Xu 已提交
430
整理所有文件的碎片 (默认: false).
H
Herald Yu 已提交
431 432

`--threads value`\
S
Sandy Xu 已提交
433
用于删除泄漏对象的线程数 (默认: 10)
H
Herald Yu 已提交
434

435
### juicefs fsck
H
Herald Yu 已提交
436

437
#### 描述
H
Herald Yu 已提交
438

S
Sandy Xu 已提交
439
检查文件系统一致性。
H
Herald Yu 已提交
440

441
#### 使用
H
Herald Yu 已提交
442 443 444 445 446

```
juicefs fsck [command options] REDIS-URL
```

447
### juicefs profile
H
Herald Yu 已提交
448

449
#### 描述
H
Herald Yu 已提交
450

S
Sandy Xu 已提交
451
分析访问日志。
H
Herald Yu 已提交
452

453
#### 使用
H
Herald Yu 已提交
454 455 456 457 458

```
juicefs profile [command options] MOUNTPOINT/LOGFILE
```

459
#### 选项
H
Herald Yu 已提交
460 461

`--uid value, -u value`\
S
Sandy Xu 已提交
462
仅跟踪指定 UIDs (用逗号 , 分隔)
H
Herald Yu 已提交
463 464

`--gid value, -g value`\
S
Sandy Xu 已提交
465
仅跟踪指定 GIDs (用逗号 , 分隔)
H
Herald Yu 已提交
466 467

`--pid value, -p value`\
S
Sandy Xu 已提交
468
仅跟踪指定 PIDs (用逗号 , 分隔)
H
Herald Yu 已提交
469 470

`--interval value`\
S
Sandy Xu 已提交
471
显示间隔;单位为秒 (默认: 2)
472

473
### juicefs status
474

475
#### 描述
476

S
Sandy Xu 已提交
477
显示 JuiceFS 的状态。
478

479
#### 使用
480 481 482 483 484

```
juicefs status [command options] REDIS-URL
```

485
#### 选项
486 487

`--session value, -s value`\
S
Sandy Xu 已提交
488
展示指定会话 (sid) 的具体信息 (默认: 0)
489

490
### juicefs warmup
491

492
#### 描述
493

S
Sandy Xu 已提交
494
主动为指定目录/文件建立缓存。
495

496
#### 使用
497 498 499 500 501

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

502
#### 选项
503 504

`--file value, -f value`\
S
Sandy Xu 已提交
505
指定一个包含一组路径的文件
506 507

`--threads value, -p value`\
S
Sandy Xu 已提交
508
并发的工作线程数 (默认: 50)
509 510

`--background, -b`\
S
Sandy Xu 已提交
511 512
后台运行 (默认: false)

513
### juicefs dump
S
Sandy Xu 已提交
514

515
#### 描述
S
Sandy Xu 已提交
516 517 518

将元数据导出到一个 JSON 文件中。

519
#### 使用
S
Sandy Xu 已提交
520 521 522 523 524

```
juicefs dump [command options] META-ADDR FILE
```

525
### juicefs load
S
Sandy Xu 已提交
526

527
#### 描述
S
Sandy Xu 已提交
528 529 530

从之前导出的 JSON 文件中加载元数据。

531
#### 使用
S
Sandy Xu 已提交
532 533 534 535

```
juicefs load [command options] META-ADDR FILE
```