我在远程服务器中有一些子文件夹(A、B、C、D……),其中包含大约 100 个 .gz 文件。文件命名模式类似于 ND2_58_20151105173030_20151105173240_1234.log.gz,其中 _ 后面的第 3 和第 4 个字段是开始和结束时间。现在,如果开始时间/结束时间距当前时间有 15 分钟,我想获取该文件。有人可以建议我如何使用 shell 脚本来执行此操作吗?为了获取数据,我使用 rsync。
谢谢,Arn
答案1
您可以使用--include
和--exclude
选项来rsync
仅选择所需的文件。如果我理解正确的话,您需要名称包含当前日期/时间加减 15 分钟的文件。不确定您是否需要确切地15 分钟,但是这里有一个小脚本可以做到这一点:
#!/bin/sh
format='%Y%m%d%H%M'
for delta in $(seq -15 15); do
p='--include=*_'$(date +$format --date "+ $delta minutes")'*_*.gz'
include="$include $p"
done
rsync -av $include --exclude=* SRC/ DEST/
应该很容易修改确切地15分钟。