繁体   English   中英

如何在python中使用scp获取os.system的最新文件?

[英]How to get the latest file with os.system using scp in python?

我想使用 python os.system库从远程远程 UNIX 目录中获取/scp 最新文件夹,这是一个文件夹系统,其名称包括日期时间,例如:

[usr1@server1 stats_from_dir]$ pwd
/tmp/dir1/stats_from_dir

[usr1@server1 stats_from_dir]$ ls -alrth
drwxr-x---  2  23K Aug 28 12:50 pmexport_20200825
drwxr-x---  2  23K Aug 28 12:50 pmexport_20200826
drwxr-x---  2  21K Aug 28 12:50 pmexport_20200827

我可以得到所有这样的文件夹;

import os
    
get_files = 'scp -r usr1@10.1.1.39:/tmp/dir1/stats_from_dir/* /dir2/.'
    
os.system(get_files)

但是我怎样才能得到最新的文件夹? 有没有办法在 os.system 库中使用参数来做到这一点,而无需使用其他库,例如 paramiko、subprocess ..etc ?

试试这个:

import os
    
get_files = "scp -r usr1@10.1.1.39:/tmp/dir1/stats_from_dir/$(ssh usr1@10.1.1.39 'ls -t /tmp/dir1/stats_from_dir/ | head -1') /dir2/."
    
os.system(get_files)

你知道文件夹的实际日期吗?

假设最后一个文件夹是昨天

然后使用 dateetime.date 编译昨天的日期并使用 datetime.timedelta 减去一天

然后使用 strftime 将昨天转换为您需要的强格式。

最后,将那天附加到您使用 os.system 的字符串中。

import os
import datetime
    

yesterday = datetime.date.today() - datetime.timedelta(days=1)
yesterday_string = yesterday.strftime('%Y%m%d')

get_files = 'scp -r usr1@10.1.1.39:/tmp/dir1/stats_from_dir/pmexport_{} /dir2/.'.format(yesterday_string)
    
os.system(get_files)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM