问题描述
最近因为做各系统间数据集成,有一个需求是将某个目录下的文件增量备份到另一目录
解决方法
写了一个简短的shell程序实现,内部系统,够用就行,基本的思路是每次将按时间排序的最后一个文件名记录下来,每次拷贝比这个文件后更新的文件。
贴上源码供参考
#!/bin/bash
source_dir=/home/oracle/source
target_dir=/home/oracle/target
work_dir=$(cd `dirname $0`; pwd)
if [ ! -f $work_dir/lastfile.log ]; then
echo "first";
cp $source_dir/* $target_dir;
else
lastfile=`cat $work_dir/lastfile.log`
echo $lastfile;
echo "next"
cd $source_dir
find . -newer ${lastfile} -exec cp {} $target_dir \;
fi
echo $work_dir
ls $source_dir -lt | awk -F ' ' '{print $NF}' | head -n2 | tail -n1 > $work_dir/lastfile.log