OS-关于操作系统文件描述符(文件句柄)

# 获取文件描述符(文件句柄),经测试,Windows、Linux 同一逻辑磁盘下,重命名、移动都不会发生改变!可用于采集回滚日志文件的标识信息。

1.Python 获取文件描述符:

# Python(v3.7) 可用于 Windows 系统、Linux 系统。

fileinfo = os.stat(r"F:\\temp\\test\\log.txt.bak0")
print(fileinfo)

结果示例:

os.stat_result(st_mode=33206, st_ino=37436171902533750, st_dev=1284456603, st_nlink=1, st_uid=0, st_gid=0, st_size=10005, st_atime=1646814165, st_mtime=1646802880, st_ctime=1646802868)

2.Java 获取文件描述符:

# Java(v1.8) 只能用于 Linux 系统,Windows 系统获取值为 null。

BasicFileAttributeView fileAttributeView = Files.getFileAttributeView(file.toPath(), BasicFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
System.out.println(fileAttributeView.readAttributes().fileKey());

结果示例:

(dev=803,ino=2757232)

3.Shell 获取文件描述符:

# Linux、Windows Bash 环境下执行 stat ${filename} 可获取文件描述符信息。

结果示例:

# stat 1.txt
  File: `1.txt'
  Size: 3873          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 2757232     Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-03-09 15:48:43.423688344 +0800
Modify: 2022-03-09 15:45:25.012881584 +0800
Change: 2022-03-09 15:46:56.031251359 +0800

拓展:

Filebeat 标识一个文件:

Linux 系统:

{
  "source": "/opt/devops/logs/log.txt",
  "offset": 1204920,
  "timestamp": "2022-03-09T15:41:08.159551253+08:00",
  "ttl": -1,
  "type": "log",
  "meta": null,
  "FileStateOS": {
    "inode": 1314678,
    "device": 2051
  }
}

Windows系统:

{
  "source": "F:\\temp\\test\\log.txt.bak0",
  "offset": 10005,
  "timestamp": "2022-03-09T13:15:49.4323128+08:00",
  "ttl": -1,
  "type": "log",
  "meta": null,
  "FileStateOS": {
    "idxhi": 8650752,
    "idxlo": 16502,
    "vol": 1284456603
  }
}

注:idxhi/idxlo/vol    On windows the pair of (volume, idxhi, idxlo) uniquely identifies a file.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值