command_reference.md 11.1 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
> **注意**:如果 `juicefs` 不在 `$PATH` 中,你需要指定程序所在的路径才能执行。例如,`juicefs` 如果在当前目录中,则可以使用 `./juicefs`。为了方便使用,建议将 `juicefs` 添加到  `$PATH` 中。可以参考 [快速上手指南](quick_start_guide.md) 了解安装相关内容。
51 52 53

## 自动补全

54 55
> **注意**:此特性需要使用 0.15.0 及以上版本的 JuiceFS。它基于 `github.com/urfave/cli/v2` 实现,更多信息请参见[这里](https://github.com/urfave/cli/blob/master/docs/v2/manual.md#enabling)。

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

58
Bash:
59 60 61 62 63

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

64
Zsh:
65 66 67 68

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

70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
请注意自动补全功能仅对当前会话有效。如果你希望对所有新会话都启用此功能,请将 `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 已提交
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
juicefs format [command options] META-URL NAME
H
Herald Yu 已提交
101 102
```

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
juicefs mount [command options] META-URL MOUNTPOINT
H
Herald Yu 已提交
151 152
```

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 180 181
`--open-cache value`\
打开的文件的缓存过期时间;单位为秒 (默认: 0)

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

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

188 189 190
`--subdir`\
将某个子目录挂载为根 (默认: "")

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

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

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

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

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

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

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

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

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

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

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

224
### juicefs umount
H
Herald Yu 已提交
225

226
#### 描述
H
Herald Yu 已提交
227

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

230
#### 使用
H
Herald Yu 已提交
231 232

```
S
Sandy Xu 已提交
233
juicefs umount [command options] MOUNTPOINT
H
Herald Yu 已提交
234 235
```

236
#### 选项
H
Herald Yu 已提交
237 238

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

241
### juicefs gateway
H
Herald Yu 已提交
242

243
#### 描述
H
Herald Yu 已提交
244

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

247
#### 使用
H
Herald Yu 已提交
248 249

```
250
juicefs gateway [command options] META-URL ADDRESS
H
Herald Yu 已提交
251 252
```

253
#### 选项
H
Herald Yu 已提交
254 255

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

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

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

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

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

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

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

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

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

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

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

`--access-log value`\
S
Sandy Xu 已提交
289
访问日志的路径
H
Herald Yu 已提交
290 291

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

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

297
### juicefs sync
H
Herald Yu 已提交
298

299
#### 描述
H
Herald Yu 已提交
300

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

303
#### 使用
H
Herald Yu 已提交
304 305 306 307 308

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

309
#### 选项
H
Herald Yu 已提交
310 311

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

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

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

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

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

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

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

`--dirs`\
S
Sandy Xu 已提交
333
同步目录 (默认: false)
H
Herald Yu 已提交
334 335

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

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

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

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

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

`--manager value`\
S
Sandy Xu 已提交
351
管理者地址
H
Herald Yu 已提交
352 353

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

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

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

362
### juicefs rmr
H
Herald Yu 已提交
363

364
#### 描述
H
Herald Yu 已提交
365

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

368
#### 使用
H
Herald Yu 已提交
369 370 371 372 373

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

374
### juicefs info
H
Herald Yu 已提交
375

376
#### 描述
H
Herald Yu 已提交
377

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

380
#### 使用
H
Herald Yu 已提交
381 382 383 384 385

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

386
#### 选项
H
Herald Yu 已提交
387 388

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


392
### juicefs bench
H
Herald Yu 已提交
393

394
#### 描述
H
Herald Yu 已提交
395

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

398
#### 使用
H
Herald Yu 已提交
399 400

```
401
juicefs bench [command options] PATH
H
Herald Yu 已提交
402 403
```

404
#### 选项
H
Herald Yu 已提交
405 406

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

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

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

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

418
### juicefs gc
H
Herald Yu 已提交
419

420
#### 描述
H
Herald Yu 已提交
421

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

424
#### 使用
H
Herald Yu 已提交
425 426

```
427
juicefs gc [command options] META-URL
H
Herald Yu 已提交
428 429
```

430
#### 选项
H
Herald Yu 已提交
431 432

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

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

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

441
### juicefs fsck
H
Herald Yu 已提交
442

443
#### 描述
H
Herald Yu 已提交
444

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

447
#### 使用
H
Herald Yu 已提交
448 449

```
450
juicefs fsck [command options] META-URL
H
Herald Yu 已提交
451 452
```

453
### juicefs profile
H
Herald Yu 已提交
454

455
#### 描述
H
Herald Yu 已提交
456

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

459
#### 使用
H
Herald Yu 已提交
460 461 462 463 464

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

465
#### 选项
H
Herald Yu 已提交
466 467

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

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

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

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

479
### juicefs status
480

481
#### 描述
482

S
Sandy Xu 已提交
483
显示 JuiceFS 的状态。
484

485
#### 使用
486 487

```
488
juicefs status [command options] META-URL
489 490
```

491
#### 选项
492 493

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

496
### juicefs warmup
497

498
#### 描述
499

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

502
#### 使用
503 504 505 506 507

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

508
#### 选项
509 510

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

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

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

519
### juicefs dump
S
Sandy Xu 已提交
520

521
#### 描述
S
Sandy Xu 已提交
522 523 524

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

525
#### 使用
S
Sandy Xu 已提交
526 527

```
528
juicefs dump [command options] META-URL [FILE]
S
Sandy Xu 已提交
529 530
```

531 532
如果没有指定导出文件路径,会导出到标准输出。

533 534 535 536 537
#### 选项

`--subdir value`\
只导出一个子目录。

538
### juicefs load
S
Sandy Xu 已提交
539

540
#### 描述
S
Sandy Xu 已提交
541 542 543

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

544
#### 使用
S
Sandy Xu 已提交
545 546

```
547
juicefs load [command options] META-URL [FILE]
S
Sandy Xu 已提交
548
```
549 550

如果没有指定导入文件路径,会从标准输入导入。