两个文件夹数据同步

对家目录下的fd目录数据进行备份,要求始终保持保存最近3次的备份。待备份数据存放在/home/user/workdata中,最近三次备份文件分别命名为worknewdata.tar、work2nddata.tar和work3rddata.tar。

terminal命令:
 

命令行:

[root@localhost ~]# ls /home/lxc/fd/

test2  test3  test4  test5  test6  test7  test8  test9

[root@localhost ~]# ls /home/lxc/workdata

[root@localhost ~]# bash refresh.sh worknewdata.tar

------refreshing-------

del 0 file at /home/lxc/workdata/

/home/lxc/fd/test2

/home/lxc/fd/test3

/home/lxc/fd/test4

/home/lxc/fd/test5

/home/lxc/fd/test6

/home/lxc/fd/test7

/home/lxc/fd/test8

/home/lxc/fd/test9

8 copy from /home/lxc/fd to /home/lxc/workdata

---refresh successfully---

------backup------

/home/lxc/workdata/

/home/lxc/workdata/test2

/home/lxc/workdata/test3

/home/lxc/workdata/test4

/home/lxc/workdata/test5

/home/lxc/workdata/test6

/home/lxc/workdata/test7

/home/lxc/workdata/test8

/home/lxc/workdata/test9

backup successfully

[root@localhost ~]# rm -rf /home/lxc/fd/test2

[root@localhost ~]# bash refresh.sh work2nddata.tar

------refreshing-------

del test2 from /home/lxc/workdata

test2

del 1 file at /home/lxc/workdata/

0 copy from /home/lxc/fd to /home/lxc/workdata

---refresh successfully---

------backup------

tar: Removing leading `/' from member names

/home/lxc/workdata/

/home/lxc/workdata/test3

/home/lxc/workdata/test4

/home/lxc/workdata/test5

/home/lxc/workdata/test6

/home/lxc/workdata/test7

/home/lxc/workdata/test8

/home/lxc/workdata/test9

backup successfully

[root@localhost ~]# touch /home/lxc/fd/test100

[root@localhost ~]# bash refresh.sh work3rddata.tar

------refreshing-------

del 0 file at /home/lxc/workdata/

/home/lxc/fd/test100

1 copy from /home/lxc/fd to /home/lxc/workdata

---refresh successfully---

------backup------

tar: Removing leading `/' from member names

/home/lxc/workdata/

/home/lxc/workdata/test3

/home/lxc/workdata/test4

/home/lxc/workdata/test5

/home/lxc/workdata/test6

/home/lxc/workdata/test7

/home/lxc/workdata/test8

/home/lxc/workdata/test9

/home/lxc/workdata/test100

backup successfully

[root@localhost ~]# ls /home/lxc/backup

work2nddata.tar  work3rddata.tar  worknewdata.tar

脚本内容:

#对备份目录进行刷新
ls /home/lxc/fd/  >/tmp/.sourse
#把/fd的所有文件保存到/tmp/.sourse,把/workdata所有文件保存到/tmp/.dest
ls /home/lxc/workdata/ >/tmp/.dest
chmod 700 /tmp/.sourse /tmp/.dest
count=0

cd /home/lxc/workdata
#比较两个文件里/tmp/.souse 与/tmp/.dest的不同。
for i in $(comm -23 /tmp/.dest /tmp/.sourse) ; do
#删除/workdata里的多余文件
rm "$i" ; count=$((count+1))
echo "del $i from /home/lxc/workdata"
echo $i
done
echo "del $count file at /home/lxc/workdata/"
#重新获得文件的全名。初始化计数器。
ls /home/lxc/workdata/ >/tmp/.dest ; count=0

cd /home/lxc/workdata/
for i in $(comm -13 /tmp/.dest /tmp/.sourse) ; do
echo "/home/lxc/fd/$i"
#刷新文件夹
cp "/home/lxc/fd/$i" . ; count=$((count+1))
done
echo "$count copy from /home/lxc/fd to /home/lxc/workdata "

echo "refresh successful"

cho "------backup------"

DT=/home/lxc/backup

if [ ! -d "$DT" ]; then
  mkdir -p "$DT"  && echo "Directoyr $TD has been created."
else
  tar -czvf $DT/$1 /home/lxc/workdata
fi

echo "backup successfully"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值