码迷,mamicode.com
首页 > 其他好文 > 详细

rsync本地同步

时间:2021-04-21 12:23:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:loading   test   rm -rf   tar   异地备份   -o   --exclude   图片   lin   

rsync本地备份

制作异地镜像站点

目的:为异地备份做好准备工作

rsync原理

rsync远程传数据可以简单总结成三步
1、先验证用户身份
2、检查源路径到底需要哪些文件
3、传输

rsync总结

1、耗费cpu资源
2、源路径下如果是频繁改动的,rsync不适合,比如数据库文件
3、不适合同步大文件

软硬链接的区别

技术图片

脚本使用(解读)

#!/bin/bash
set -o errexit	#脚本发生错误就终止运行,不是一声不响的继续往下执行
set -o nounset	#在shell中,遇到变量不存在,会输出为空,继续执行代码
				#开启了nounset选项后,脚本若是碰到变量定义会报错并且终止运行
set -o pipefail	#上面的选项errexit针对管道是无效的,这个针对管道

readonly SOURCE_DIR="/opt"	#备份的源目录
readonly TARGET_START_DIR="/egon/backups"	#目标目录的起始目录
readonly TARGET_DIR="${TARGET_START_DIR}/$(date ‘+%Y-%m-%d_%H:%M:%s‘)"	#目标目录
readonly LATEST_LINK="${TARGET_START_DIR}/latest"	#基准目录

mkdir -p "${TARGET_START_DIR}"	#先把目标目录的起始目录创建好

rsync -av --delete "${SOURCE_DIR}/" --link-dest "${LATEST_LINK}" --exclude=".cache" "${TARGET_DIR}"

#删除基准目录LATEST_LINK,然后将最近一次备份的目录链接到LATEST_LINK作为下一次的基准目录
rm -rf "${LATEST_LINK}"
ln -s "${TARGET_DIR}" "${LATEST_LINK}"

脚本模板

#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail

readonly SOURCE_DIR="源目录"
readonly TARGET_START_DIR="目标目录的起始目录"
readonly TARGET_DIR="${TARGET_START_DIR}/$(date ‘+%Y-%m-%d_%H:%M:%s‘)"	#目标目录
readonly LATEST_LINK="${TARGET_START_DIR}/latest"	#基准目录

mkdir -p "${TARGET_START_DIR}"

rsync -av --delete "${SOURCE_DIR}/" --link-dest "${LATEST_LINK}" --exclude=".cache" "${TARGET_DIR}"

#删除基准目录LATEST_LINK,然后将最近一次备份的目录链接到LATEST_LINK作为下一次的基准目录
rm -rf "${LATEST_LINK}"
ln -s "${TARGET_DIR}" "${LATEST_LINK}"

rsync本地同步

标签:loading   test   rm -rf   tar   异地备份   -o   --exclude   图片   lin   

原文地址:https://www.cnblogs.com/zhaokunhao/p/14678791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!