我的日志文件是upd_yyyymmdd_slr.stats格式的。例如,我希望在两个日期之间将所有文件从服务器复制到本地服务器。
我希望日志文件中的所有文件都有日期,因为20151228和20160103意味着我希望从一组多个文件中复制以下文件。
upd_20151228_slr.stats
upd_20151229_slr.stats
upd_20151230_slr.stats
upd_20151231_slr.stats
upd_20160101_slr.stats
upd_20160102_slr.stats
upd_20160103_slr.stats我正在使用下面的命令,但它不起作用
scp server:/reports/logs/upd_20[15-16][12-01][29-03]*slr* ./log_files请找到我在Linux和shell脚本中所能做的最好的方法。
发布于 2016-08-31 12:27:32
请查看此脚本:
#!/bin/bash
for i in `ls upd_*_slr.stats`; do
# First strip off prefix and suffix strings.
s=`echo $i | sed 's/upd_//g' | sed 's/_slr.stats//g'`
if [[ $s -ge 20151230 && $s -le 20160102 ]]; then # Modify dates as needed
echo $i
cp $i /path/to/dest/dir
fi
done编辑:
在远程服务器的情况下,可以尝试这样做:
#!/bin/bash
for i in `ssh username@remoteaddress ls /path/to/dir/upd_*_slr.stats`; do
i=${i##*/}
# First strip off extra strings leaving only date.
s=`echo $i | sed 's/upd_//g' | sed 's/_slr.stats//g'`
if [[ $s -ge 20151230 && $s -le 20160102 ]]; then # Modify dates as needed
echo $i
scp username@remoteaddress:/path/to/dir/$i /path/to/dest/dir
fi
donehttps://stackoverflow.com/questions/39248577
复制相似问题