注意

本文档适用于 Ceph 的开发版本。

cephfs-shell -- 像Shell一样的工具,与CephFS通信

概要

cephfs-shell 进行脚本编写。[选项] [命令]
cephfs-shell 进行脚本编写。[选项] -- [命令, 命令,…]

描述

CephFS Shell提供像Shell一样的命令,直接与Ceph文件系统交互。

该工具可以在交互模式和非交互模式下使用。在前一种模式下,cephfs-shell打开一个Shell会话,在给定的命令完成后,它会打印提示字符串并无限期等待。当Shell会话结束时,cephfs-shell会退出,并返回最后一个执行命令的返回值。在非交互模式下,cephfs-shell发出一个命令,并在命令执行完成后立即退出,并返回命令的返回值。

可以使用cephfs-shell.conf. 参考文档CephFS Shell配置文件详细信息。

选项

-b, --batch FILE

批处理文件路径。

-c, --config FILE

cephfs-shell.conf路径

-f, --fs FS

要挂载的文件系统名称。

-t, --test FILE

FILE中的测试转录路径

注意

运行cephfs-shell需要cmd2模块的最新版本。如果通过源代码安装CephFS,请在构建目录中执行cephfs-shell。它也可以使用virtualenv以下方式执行:

[build]$ python3 -m venv venv && source venv/bin/activate && pip3 install cmd2 colorama
[build]$ source vstart_environment.sh && source venv/bin/activate && python3 ../src/tools/cephfs/shell/cephfs-shell

Commands

注意

除了Ceph文件系统之外,CephFS Shell命令还可以直接与本地文件系统交互。为此,!(感叹号)必须先于CephFS Shell命令。

用法 :

!<cephfs_shell_command>

例如,

CephFS:~/>>> !ls # Lists the local file system directory contents.
CephFS:~/>>> ls  # Lists the Ceph File System directory contents.

mkdir

创建目录(如果它们尚不存在)。

用法 :

mkdir [-选项] <目录>…

  • 目录 - 要创建的目录的名称。

选项 :
-m MODE

设置新目录的访问模式。

-p, --parent

如有必要创建父目录。当指定此选项时,如果目录已存在,则不会报告错误。

put

从本地文件系统将文件/目录复制到Ceph文件系统。

用法 :

put [选项] <源路径> <目标路径>

  • 源路径 - 要复制到cephfs的本地文件/目录路径。
    • 如果. copies all the file/directories in the local working directory.

    • 如果-从标准输入读取输入。

  • 目标路径 - 文件/目录要复制到的远程目录路径。
    • 如果.文件/目录复制到远程工作目录。

选项 :
-f, --force

如果目标已存在,则覆盖目标。

get

从Ceph文件系统将文件复制到本地文件系统。

用法 :

get [选项] <源路径> <目标路径>

  • 源路径 - 要复制到本地文件系统的远程文件/目录路径。
    • 如果.复制远程工作目录中的所有文件/目录。

  • 目标路径 - 要复制文件/目录到的本地目录路径。
    • 如果.文件/目录复制到本地工作目录。

    • 如果-将输出写入标准输出。

选项:
-f, --force

如果目标已存在,则覆盖目标。

ls

列出当前工作目录中的所有文件和目录。

用法 :

ls [选项] [目录]…

  • 目录 - 要列出其文件/目录的目录的名称。
    • 默认情况下,列出当前工作目录的文件/目录。

选项:
-l, --long

长格式列表 - 显示权限

-r, --reverse

逆序排序

-H

人类可读

-a, -all

忽略以.开头的条目

-S

按文件大小排序

cat

连接文件并在标准输出上打印

用法 :

cat <文件>…。

  • 文件 - 文件的名称

ln

为现有文件添加硬链接,或为现有文件或目录创建符号链接。

用法:

ln [选项] <目标> [链接名称]

  • 目标 - 要创建链接的文件/目录

  • 链接名称 - 命名为链接名称的目标链接

选项:
-s, --symbolic

创建符号链接

-v, --详细

打印每个链接文件的名称

-f, --force

强制创建链接/符号链接

cd

更改当前工作目录。

用法 :

cd [目录]

  • 目录 - 路径/目录名称。如果没有提到目录,则更改为根目录。
    • 如果‘.’,则移动到当前目录的父目录。

cwd

获取当前工作目录。

用法 :

cwd

退出/Ctrl + D

关闭Shell。

chmod

更改文件/目录的权限。

用法 :

chmod <模式> <文件/目录>

mv

将文件/目录从源移动到目标。

用法 :

mv <源路径> <目标路径>

rmdir

删除目录(如果)。

用法 :

rmdir <目录名称>…..

rm

删除文件(如果)。

用法 :

rm <文件名/模式>…

write

创建并写入文件。

用法 :

write <文件名>

lls

列出指定目录中的所有文件和目录。如果没有提到路径,则列出当前本地目录的文件和目录

用法:

lls <路径>…..

lcd

移动到给定的本地目录。

用法 :

lcd <路径>

lpwd

打印当前本地目录的绝对路径。

用法 :

lpwd

umask

设置和获取文件模式创建掩码

用法 :

umask [模式]

alias

定义或显示别名

用法:

alias [名称] | [<名称> <值>]

  • 名称 - 正在查找、添加或替换的别名的名称

  • 值 - 别名将解析为的内容(如果添加或替换),这可以包含空格,并且不需要引号

run_pyscript

在控制台中运行Python脚本文件

用法:

run_pyscript <脚本路径> [脚本参数]

  • 控制台命令可以在该脚本中执行,使用cmd(“你的命令”)

注意

此命令适用于cmd2版本0.9.13或更早版本。pyscriptdfed5b: py

py

调用Python命令、Shell或脚本

用法 :

py <命令>: 执行Python命令。

shortcuts

列出可用的快捷方式(别名)

用法 :

shortcuts

history

查看、运行、编辑和保存之前输入的命令。

用法 :

history [-h] [-r | -e | -s | -o FILE | -t TRANSCRIPT] [参数]

选项:
-h

显示此帮助消息并退出

-r

运行选定的历史记录项

-e

编辑然后运行选定的历史记录项

-s

脚本格式;没有分隔线

-o FILE

将命令输出到脚本文件

-tTRANSCRIPT

将命令和结果输出到转录文件

unalias

取消设置别名

用法 :

unalias [-a] 名称 [名称 …]

  • 名称 - 正在取消设置的别名

选项:
-a

删除所有别名定义

set

设置可设置参数或显示参数的当前设置。

用法 :

set [-h] [-a] [-l] [可设置 [可设置 …]]

  • 无参数调用以列出可设置参数及其值。

选项 :
-h

显示此帮助消息并退出

-a

显示只读设置

-l

描述参数的功能

edit

在文本编辑器中编辑文件。

用法:

edit [文件路径]

  • 文件路径 - 在编辑器中打开的文件的路径

run_script

运行脚本文件中的命令,该脚本文件编码为ASCII或UTF-8文本。

用法:

run_script <文件路径>

  • 文件路径 - 指向脚本的文件路径

注意

此命令适用于cmd2版本0.9.13或更早版本。loaddfed5b: py

shell

像在操作系统提示符下一样执行命令。

用法:

shell <命令> [参数]

locate

在文件系统中查找项目

用法:

locate [选项] <名称>

选项 :
-c

计算找到的项目数量

-i

忽略大小写

stat

显示文件状态。

用法 :

stat [-h] <文件名> [文件名 …]

选项 :
-h

显示帮助消息

snap

创建或删除快照

用法:

snap {create|delete} <快照名称> <目录名称>

  • 快照名称 - 要创建或删除的快照名称

  • 目录名称 - 应在其中创建或删除快照的目录

setxattr

为文件设置扩展属性

用法 :

setxattr [-h] <路径> <名称> <值>

  • 路径 - 文件的路径

  • 名称 - 要获取或设置的扩展属性名称

  • 值 - 要设置的扩展属性值

选项:
-h, --help

显示帮助消息

getxattr

获取与路径关联的名称的扩展属性值

用法 :

getxattr [-h] <路径> <名称>

  • 路径 - 文件的路径

  • 名称 - 要获取或设置的扩展属性名称

选项:
-h, --help

显示帮助消息

listxattr

列出与路径关联的扩展属性名称

用法 :

listxattr [-h] <路径>

  • 路径 - 文件的路径

选项:
-h, --help

显示帮助消息

df

显示可用磁盘空间量

用法 :

df [-h] [文件 [文件 …]]

  • 文件 - 文件的名称

选项:
-h, --help

显示帮助消息

du

显示目录的磁盘使用情况

用法 :

du [-h] [-r] [路径 [路径 …]]

  • 路径 - 目录的名称

选项:
-h, --help

显示帮助消息

-r

递归所有目录的磁盘使用情况

quota

目录的配额管理

用法 :

quota [-h] [--max_bytes [MAX_BYTES]] [--max_files [MAX_FILES]] {get,set} 路径

  • {get,set} - 配额操作类型。

  • 路径 - 目录的名称。

选项 :
-h, --help

显示帮助消息

--max_bytesMAX_BYTES

设置此目录下数据的最大累积大小

--max_filesMAX_FILES

设置此目录树下的文件总数

CephFS Shell配置文件

默认情况下,CephFS Shell在环境变量cephfs-shell.conf提供的路径中查找CEPHFS_SHELL_CONF然后在用户的主目录 (~/.cephfs-shell.conf).

目前,CephFS Shell从其依赖项cmd2继承所有选项。cmd2版本而变化。参考cmd2文档,了解这些选项的描述。

以下是示例cephfs-shell.conf

[cephfs-shell]
prompt = CephFS:~/>>>
continuation_prompt = >

quiet = False
timing = False
colors = True
debug = False

abbrev = False
autorun_on_edit = False
echo = False
editor = vim
feedback_to_output = False
locals_in_py = True

退出代码

以下退出代码由cephfs shell返回

错误类型

退出代码

其他

1

键盘中断

2

操作不允许

3

权限被拒绝

4

文件或目录不存在

5

I/O错误

6

设备上没有剩余空间

7

文件已存在

8

没有可用数据

9

无效参数

10

在传输端点上不支持操作

11

范围错误

12

操作将被阻塞

13

目录不为空

14

不是目录

15

超出磁盘配额

16

管道损坏

17

传输端点关闭后无法发送

18

连接被中止

19

连接被拒绝

20

连接被重置

21

中断的函数调用

22

文件

~/.cephfs-shell.conf

由 Ceph 基金会提供

Ceph 文档是一个由非盈利Ceph 基金会资助和托管的社会资源。如果您想支持此项目和其他工作,请考虑现在加入.