您好,pvs 命令给出以下输出:
PV VG Fmt Attr PSize PFree
/dev/sd** ***** lvm2 a- 59.49g 47.49g
/dev/sd** ***** lvm2 a- 25.00g 8.00m
这仅在我是 root 用户时有效。
是否可以使用不同的命令以非 root 用户身份获取此信息。
答案1
任何用户都可以通过 获取信息lsblk
。它具有允许您获得简单输出、完整详细或自定义输出的选项。
尝试:
lsblk
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 238,5G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 700M 0 part /boot └─sda3 8:3 0 206,4G 0 part ├─fed21_ssd_pcsolo-swap 253:0 0 29,8G 0 lvm [SWAP] ├─fed21_ssd_pcsolo-root 253:1 0 80G 0 lvm / ├─fed21_ssd_pcsolo-home 253:2 0 50G 0 lvm /home └─fed21_ssd_pcsolo-tmp 253:3 0 46,6G 0 lvm /tmp sdb 8:16 0 2,7T 0 disk ⋮
lsblk -f
(输出有关文件系统的信息)lsblk -b
(以字节为单位而不是以人类可读的格式打印 SIZE 列)或lsblk -m
(输出有关设备所有者、组和模式的信息)lsblk -O
(大写“o”)这是完整详细的lsblk -o
(指定要打印哪些输出列)您可以定义自定义格式
答案2
该pvs
命令是 的一部分lvm
。如果您以 root 身份需要为非 root 用户启用此功能,则可以使用setcap
, 设置 lvm 可执行权限以执行默认情况下限制为 root 的操作。
这适用于需要执行 root 权限操作的任何可执行文件。
了解有关文件功能的更多信息:http://man7.org/linux/man-pages/man7/capability.7.html
一个例子:之前setcap
$ pvs
WARNING: Running as a non-root user. Functionality may be unavailable.
/run/lvm/lvmetad.socket: connect failed: Permission denied
WARNING: Failed to connect to lvmetad: Permission denied. Falling back to internal scanning.
/run/lvm/lvmetad.socket: connect failed: Permission denied
/run/lock/lvm/P_global:aux: open failed: Permission denied
Unable to obtain global lock.
后
setcap "cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_admin,cap_sys_chroot,cap_sys_admin,cap_sys_resource,cap_audit_control,cap_setfcap=+eip" /sbin/lvm
$ pvs
WARNING: Running as a non-root user. Functionality may be unavailable.
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 15.51g 0
/dev/sdb DataPool lvm2 a-- 50.00g 0
/dev/sdc DataPool lvm2 a-- 60.00g 0
/dev/sdd DBArchivePool lvm2 a-- 50.00g 0
请注意,我使用的大写字母比需要的大写字母多得多,可能是因为我只是复制了我曾经使用过的东西,但您可能会发现最小的大写字母组......
不要忘记引用您要设置的上限。