如何解决如何使用python中的scp通过os.system获取最新文件?
我想使用python os.system 库从远程UNIX远程目录获取/发送最新文件夹,该目录是名称包括日期时间的文件夹系统,例如:
[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库中使用paramters而不使用其他库,例如paramiko,子进程..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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。