注意
本文档适用于 Ceph 的开发版本。
cephfs-shell -- 像Shell一样的工具,与CephFS通信
概要
描述
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或更早版本。pyscript
dfed5b: 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或更早版本。load
dfed5b: 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