我有一个python代码,需要在远程主机上获取Unix/Linux(操作系统名称:HP-UX/RedHat的/在SunOS/AIX/Linux的/等)。什么是获得Unix/Linux远程主机上支持的文件/目录信息的最佳方式
程序SSH到远程主机(使用paramiko库)并执行ls -l
或ls -ld
取决于它是否是文件或目录。
信息,我需要的是:
- 权限(用户/组/其他)
- 用户所有者
- 集团所有者
- 最后修改
- 文件名
然而,ls
的问题是:
- 输出与平台不同,因此需要进行特殊处理,从而使代码冗长使用检查。
- 取决于环境变量(对于GNU coreutils,BLOCK_SIZE),文件大小单位可能在输出方面有所不同,或者有些甚至可能不支持这一点。这也需要特定于平台的检查。
我正在寻找一个python库或简单的可移植可执行文件(如果有的话)。
解决方案我认为(但似乎不可行)
- 使用正则表达式来检查输出和处理的格式,如果它konwn格式相匹配。但是,由于尝试检查,这似乎很容易出错。
- 也尝试检查文件大小的环境变量,并找出输出中的文件大小单位。 (例如,将少量字符回显到文件并检查单元,如果写入4个字符并且大小为1,那么我确信单元大于1个字节,重复步骤)。这似乎也容易出错
- 在每台主机上安装跨平台编译器,编译并执行。不能这样做,因为如果主机操作系统重新安装或恢复到没有编译器的位置,则需要重复此安装过程。
有什么建议吗?
HP-UX和AIX没有安装'stat'。由于受到限制,我们无法在系统上安装新软件包。 –
你可能想尝试python库。它可能仍然有效,因为它使用stat Linux库调用,而不是可执行文件。查看我编辑的答案 –
'stat' python包是否可以与远程主机一起使用?我认为这只适用于本地文件 –