把远程linux服务器上的指定目录下的所有文件,增量备份到本地服务器上

把远程服务器上的指定目录下的所有文件,增量备份到本地服务器上

#!/bin/sh

ip=远程IP
dir=远程需要备份的路径
curTime=`date +%Y%m%d`
echo $curTime
BN=./backupfile/bkfile_number.txt  #用来保存最后一次备份的日期

num=`awk 'NR==1{print $0}' $BN`
t2=`date -d "$num" +%Y%m%d`
days=`expr  $t2 - $curTime`

查看远程服务器上的最近有变更的目录及文件
folderList=`ssh 远程IP find 远程需要备份的路径  -type d -ctime $days`
fileList=`ssh 远程IP find 远程需要备份的路径 -type f -ctime $days`


在本地创建新添加的目录,并复制远程服务器上的文件到本地

for folder in $folderList;do #循环判断folder是否存在 不存在就创建
           if [ ! -d $folder ];then
                  mkdir -p $folder
           fi;
      done;
for file in $fileList;do #循环判断文件是否存在 不存在就从机器1上考过来
           if [ ! -f $file ];then
                  scp root@$ip:$file $file
           fi;
     done;

echo $curTime > $BN

你可能感兴趣的:(把远程linux服务器上的指定目录下的所有文件,增量备份到本地服务器上)