如何在 python 中使用 scp 获取 os.system 的最新文件?
How to get the latest file with os.system using scp in python?
我想使用pythonos.system库到get/scp来自远程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 带参数的库中做到这一点,而不使用其他库,如 paramiko、subprocess ..etc?
你知道文件夹的实际日期吗?
假设最后一个文件夹是昨天
然后用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)
试试这个:
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)
我想使用pythonos.system库到get/scp来自远程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 带参数的库中做到这一点,而不使用其他库,如 paramiko、subprocess ..etc?
你知道文件夹的实际日期吗?
假设最后一个文件夹是昨天
然后用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)
试试这个:
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)