df -h /home/web_server/ceph | awk NR==2{'print $5'} 去掉百分号
时间: 2024-06-14 16:05:32 浏览: 153
您可以使用sed命令来去掉df命令输出结果中的百分号。下面是一个示例:
```shell
df -h /home/web_server/ceph | awk NR==2{'print $5'} | sed 's/%//'
```
这个命令首先使用df命令获取指定路径的磁盘使用情况,然后使用awk命令提取第二行的第五列(即使用百分比),最后使用sed命令去掉百分号。
相关问题
我按照你提示先c.Close() 再c.mountinfo.SyncFs(),但是仍然报错runtime.cgocall(0x1e985a0, 0xc0010552c0) /usr/local/go/src/runtime/cgocall.go:157 +0x5c fp=0xc001055298 sp=0xc001055260 pc=0x40bdfc github.com/ceph/go-ceph/cephfs._Cfunc_ceph_is_mounted(0x0) _cgo_gotypes.go:664 +0x4c fp=0xc0010552c0 sp=0xc001055298 pc=0x99662c github.com/ceph/go-ceph/cephfs.(*MountInfo).IsMounted.func1(0x7f905805c230?) /home/ibu/cy/etp-server/vendor/github.com/ceph/go-ceph/cephfs/cephfs.go:234 +0x46 fp=0xc0010552f8 sp=0xc0010552c0 pc=0x99a746 github.com/ceph/go-ceph/cephfs.(*MountInfo).IsMounted(0x2a0fb00?) /home/ibu/cy/etp-server/vendor/github.com/ceph/go-ceph/cephfs/cephfs.go:234 +0x19 fp=0xc001055310 sp=0xc0010552f8 pc=0x99a6d9 etp-server/pkg/ceph.(*CephFSClientSet).Close(0xc00114ac30) /home/ibu/cy/etp-server/pkg/ceph/ceph.go:100 +0x2a fp=0xc001055328 sp=0xc001055310 pc=0x9a5daa etp-server/pkg/ceph.(*CephFSClientSet).Close(0xc00114ac30) /home/ibu/cy/etp-server/pkg/ceph/ceph.go:103 +0x54 fp=0xc001055340 sp=0xc001055328 pc=0x9a5dd4
这个错误可能是由于 CephFS 文件系统客户端关闭时出现异常导致的。你可以尝试在关闭客户端之前,添加一些检查和处理异常的代码,以确保客户端能够正常关闭,例如:
```go
func (c *CephFSClientSet) Close() error {
if c == nil {
return nil
}
if err := c.mountinfo.Unmount(); err != nil {
return err
}
if err := c.mountinfo.Release(); err != nil {
return err
}
if err := c.mountinfo.SyncFs(); err != nil {
return err
}
if err := c.fs.Shutdown(); err != nil {
return err
}
c.fs = nil
c.mountinfo = nil
return nil
}
```
这样可以确保在关闭文件系统客户端时,能够处理任何可能出现的异常。如果问题仍然存在,你可以尝试调试程序,检查异常的来源并进行处理。
报错内容如下:runtime.cgocall(0x1e984d0, 0xc000def308) /usr/local/go/src/runtime/cgocall.go:157 +0x5c fp=0xc000def2e0 sp=0xc000def2a8 pc=0x40bdfc github.com/ceph/go-ceph/cephfs._Cfunc_ceph_sync_fs(0x0) _cgo_gotypes.go:1139 +0x4c fp=0xc000def308 sp=0xc000def2e0 pc=0x9986ec github.com/ceph/go-ceph/cephfs.(*MountInfo).SyncFs.func1(0x2a0f960?) /home/ibu/cy/etp-server/vendor/github.com/ceph/go-ceph/cephfs/cephfs.go:228 +0x46 fp=0xc000def340 sp=0xc000def308 pc=0x99a686 github.com/ceph/go-ceph/cephfs.(*MountInfo).SyncFs(0xc000f58a70?) /home/ibu/cy/etp-server/vendor/github.com/ceph/go-ceph/cephfs/cephfs.go:228 +0x19 fp=0xc000def358 sp=0xc000def340 pc=0x99a5f9 etp-server/pkg/ceph.(*CephFSClientSet).Close(0xc000f5c378)
这个错误可能是由于您的CephFS客户端没有正确地关闭引起的。在执行`c.mountinfo.SyncFs()`之前,您应该确保您已经调用了CephFS客户端的`Close()`函数。例如:
```
c := cephfs.New(&cephConfig)
defer c.Shutdown()
defer c.Unmount()
defer c.Release()
defer c.Close()
// 在执行 SyncFs() 之前,确保您已经调用了 Close() 函数
c.Close()
c.Mount()
c.mountinfo.SyncFs()
```
请注意,`Close()`函数应该在最后调用,以确保所有资源都被正确释放。如果在调用`Close()`函数之后仍然出现错误,请提供更具体的错误信息。
阅读全文