zoukankan      html  css  js  c++  java
  • rsync本地同步

    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}"
    
  • 相关阅读:
    【心得】软件团队Git工作流及Jira的基本知识和常见问题解释
    项目系统Netty的Channel和用户之间的关系绑定正确做法,以及Channel通道的安全性方案
    Redis中的事务(多命令)操作
    Redis中的订阅模式
    Redis中有序列表(ZSet)相关命令
    Redis散列(Hash)的相关命令
    输入输出流String间的转换
    linux 常用命令
    Gradle 使用
    c 学习笔记 0
  • 原文地址:https://www.cnblogs.com/zhaokunhao/p/14678791.html
Copyright © 2011-2022 走看看