数据备份的策略

在企业服务器架构中,Rsyncd同步服务常用于数据备份,在提及Rsyncd同步服务之前,我们需要了解三种数据备份区别。

三种数据备份

  • 全量备份:对选择的所有文件进行数据备份,若文件存在则覆盖。
  • 增量备份:针对于上一次备份(无论是哪种备份),备份上一次备份后(包含全量备份、差异备份、增量备份),所有发生变化的文件。
  • 差异备份:针对于上一次完全备份,备份上一次的完全备份后发生变化的所有文件。

三种数据备份的比较(转载)

  • 按备份数据量,从多到少排序:

    全量备份->差异备份->增量备份
  • 按数据恢复速度,从快到慢排序:

    全量备份->差异备份->增量备份

不同数据备份类型组合说明(转载)

  • 全量备份和增量备份结合

    以每周数据备份为例,在星期一进行全量备份,在星期二至星期五进行增量备份。如果在星期五数据被破坏了,则你需要还原星期一的完全备份和从星期二至星期五的所有增量备份。这种策略备份数据需要较少的时间,但还原数据使用较多的时间。还原数据的步骤是这样的:先还原周一的完全备份,然后依次还原周二至周四的增量备份。总共 4 次还原过程。
  • 全量备份和差异备份结合(建议使用)

    以每周数据备份计划为例,在星期一进行全量备份,在星期二至星期五进行差异备份。如果在星期五数据被破坏了,则你只需要还原星期一完全的备份和星期四的差异备份。这种策略备份数据需要较多的时间,但还原数据使用较少的时间。还原的步骤:先还原周一的完全备份,然后直接用周四的差异备份导入。共 2 次还原步骤。

Rsyncd 服务传输模式(remote synchronizetion deamon)

本地传输模式(等同命令cp)

  1. # 语法
  2. Local: rsync [OPTION...] SRC... [DEST]
  3. ## 拷贝文件
  4. [root@backup ~]# rsync /root/rsyncfi /usr/local/src/
  5. ## 拷贝目录
  6. [root@backup ~]# rsync -a /etc /usr/local/src/

远程传输模式(等同命令scp)

此模式借助SSH的通道进行传输,一般情况下ssh端口为22,且传输时需要注意连接端的连接用户权限

  1. # 语法
  2. Access via remote shell:
  3. Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  4. ## 拉:rsync [选项...] 用户名@主机IP:路径 本地文件或目录
  5. [root@backup ~]# rsync -avz root@172.16.1.7:/etc/hostname /usr/local/games/
  6. Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
  7. ## 推:rsync [选项...] 本地文件或目录 用户名@主机IP:路径
  8. [root@backup ~]# rsync -avz /backup/2020-05-06_web01_etc.tar.gz root@10.0.0.7:/tmp/

配置文件 /etc/rsyncd.conf

此处参考转载了此博客内容,以下是常见的配置项,也算是一个配置示例:

  1. [root@backup ]# cat /etc/rsyncd.conf
  2. ######### 全局配置参数 ##########
  3. port=888 # 指定rsync端口。默认873
  4. uid = rsync # rsync服务的运行用户,默认是nobody,文件传输成功后属主将是这个uid
  5. gid = rsync # rsync服务的运行组,默认是nobody,文件传输成功后属组将是这个gid
  6. use chroot = no # rsync daemon在传输前是否切换到指定的path目录下,no 即将其监禁在path目录下
  7. max connections = 200 # 指定最大连接数量,0表示没有限制
  8. timeout = 300 # 确保rsync服务器不会永远等待一个崩溃的客户端,0表示永远等待
  9. motd file = /var/rsyncd/rsync.motd # 客户端连接过来显示的消息
  10. pid file = /var/run/rsyncd.pid # 指定rsync daemon的pid文件
  11. lock file = /var/run/rsync.lock # 指定锁文件
  12. log file = /var/log/rsyncd.log # 指定rsync的日志文件,而不把日志发送给syslog
  13. dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # 指定哪些文件不用进行压缩传输
  14. ###########下面指定模块,并设定模块配置参数,可以创建多个模块###########
  15. [longshuai] # 模块ID
  16. path = /longshuai/ # 指定该模块的路径,该参数必须指定。启动rsync服务前该目录必须存在。rsync请求访问模块本质就是访问该路径。
  17. ignore errors # 忽略某些IO错误信息
  18. read only = false # 指定该模块是否可写,即能否上传文件,false表示可读写(可上传),true表示可读不可写(不可上传),所有模块默认为 true,不可上传
  19. write only = false # 指定该模式是否可读,即能否支持下载,false表示可读写(可下载),ture表示可写不可读(不可下载),所有模块默认为 false,可下载
  20. list = false # 客户端请求显示模块列表时,该模块是否显示出来,设置为false则该模块为隐藏模块,默认为 true
  21. hosts allow = 10.0.0.0/24 # 指定允许连接到该模块的机器,多个ip用空格隔开或者设置区间
  22. hosts deny = 0.0.0.0/32 # 指定不允许连接到该模块的机器
  23. auth users = rsync_backup # 指定连接到该模块的用户列表,只有列表里的用户才能连接到模块,用户名和对应密码保存在secrts file中,
  24. # 这里使用的不是系统用户,而是虚拟用户。不设置时,默认所有用户都能连接,但使用的是匿名连接
  25. secrets file = /etc/rsyncd.passwd # 保存 auth users 用户列表的用户名和密码,每行包含一个 auth users:password
  26. # 由于 strict modes 默认为true,所以此文件要求非rsync daemon用户不可读写。只有启用了auth users该选项才有效。
  27. [xiaofang] # 其他模块ID
  28. path=/xiaofang/
  29. read only = false
  30. ignore errors
  31. comment = anyone can access

守护进程模式

  1. ## 语法:
  2. Access via rsync daemon:
  3. Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
  4. ## 拉:rsync [-avz] zls_bak@10.0.0.41::[模块] 源文件 目标
  5. rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST](忘记它)
  6. Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
  7. ## 推:rsync [-avz] 源文件 zls_bak@10.0.0.41::[模块] 目标
  8. rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST(忘记它)
  9. ## 注意:推和拉的区别,就是源文件的位置在哪里,拉:源文件在后面。
  10. ## 同时,推 和 拉 都是在客户端的角度操作的,从客户端 推 到服务端, 从服务端 拉 到客户端
  11. ## rsync 重要选项
  12. -a # 归档模式传输, 等于-tropgDl
  13. -v # 详细模式输出, 打印速率, 文件数量等
  14. -z # 传输时进行压缩以提高效率
  15. --bwlimit=KBPS # 限制I/O带宽,KBytes Per Second,默认单位KB/s,也可以指定其他单位
  16. --delete # 无差异同步,让目标目录和源目录数据保持一致,多余的文件会删除(少的依旧会补充)
  17. --password-file=xxx # 指定密码文件路径
  18. ------------------- -a 包含 ------------------
  19. -r # 递归传输目录及子目录,即目录下得所有目录都同样传输
  20. -t # 保持文件时间信息
  21. -o # 保持文件属主信息
  22. -p # 保持文件权限
  23. -g # 保持文件属组信息
  24. -l # 保留软连接
  25. -D # 保持设备文件信息
  26. ----------------------------------------------
  27. -L # 保留软连接指向的目标文件(会取消软链接指向,改变软连接文件属性,变成普通文件)
  28. -e # 使用的信道协议
  29. --exclude=PATTERN # 指定排除不需要传输的文件格式规则(想指定多个格式规则,需要多个 "--exclude" 选项)
  30. --exclude-from=file # 一个"--exclude"选项只能指定一条规则,可以将排除规则写入到文件中,然后使用"--exclude-from"选项读取该规则文件
  31. # rsync 服务端 开启服务
  32. [root@backup ~]# systemctl start rsyncd
  33. # 观察 rsync服务端 配置文件
  34. [root@backup ~]# vi /etc/rsyncd.conf
  35. [root@backup ~]# cat /etc/rsyncd.conf
  36. uid = rsync
  37. gid = rsync
  38. port = 873
  39. fake super = yes
  40. use chroot = no
  41. max connections = 200
  42. timeout = 600
  43. ignore errors
  44. read only = false
  45. list = false
  46. auth users = rsync_backup
  47. secrets file = /etc/rsync.passwd
  48. log file = /var/log/rsyncd.log
  49. #####################################
  50. [ansibletest]
  51. comment = ansible test
  52. path = /ansible
  53. # 需要创建 rsync 用户及用户组 和 secrets file 和共享存储目录 path=/ansible 并指定其属主和属组为 rsync (省略)
  54. # 客户端
  55. [root@nfs ~]# ll -d /data
  56. drwxr-xr-x 2 www www 21 Jun 10 09:02 /data
  57. [root@nfs ~]# ll /data
  58. total 0
  59. -rw-r--r-- 1 www www 0 Jun 10 09:02 123.txt
  60. # 客户端根据模块推送
  61. [root@nfs ~]# rsync -avz /data rsync_backup@172.16.1.41::ansibletest --password-file=/etc/rsync.password
  62. # 服务端结果(观察属主和属组 为 rsync)
  63. [root@backup ~]# cd /ansible/
  64. [root@backup ansible]# ll
  65. total 0
  66. drwxr-xr-x 2 rsync rsync 21 Jun 10 09:02 data
  67. [root@backup ansible]# ll data/
  68. total 0
  69. -rw-r--r-- 1 rsync rsync 0 Jun 10 09:02 123.txt
  70. # 需要根据 配置文件 创建 服务的执行用户(默认rsync),密码文件(权限 600/700)
  71. # 需要创建 模块指定的 path路径,并指定属主为 服务的执行用户(默认rsync)
  72. # 密码文件内容 格式为 auth user:password

守护进程模式报错

  1. # failed to connect xxxx(IP): No route to host
  2. # connection refused
  3. # 1.网络
  4. [root@web01 ~]# ping 172.16.1.41
  5. # 2.端口
  6. [root@web01 ~]# telnet 172.16.1.41 873
  7. # 3.防火墙
  8. [root@backup ~]# systemctl status firewalld
  9. # 4.selinux
  10. [root@backup ~]# getenforce
  1. # auth failed on xxx(module)
  2. ## 服务端排错
  3. # 1.检查配置文件的认证用户
  4. [root@backup ~]# vi /etc/rsyncd.conf
  5. auth user = rsync_backup
  6. # 2.检查配置文件模块名是否正确
  7. [root@backup ~]# vi /etc/rsyncd.conf
  8. [xxx]
  9. # 3.检查密码文件是否存在,不存在需要创建;若存在密码文件,检查 密码文件内容 、密码文件权限(600/700)
  10. [root@backup ~]# cat /etc/rsyncd.conf
  11. secrets file = /etc/rsync.passwd
  12. [root@backup ~]# ll /etc/rsync.passwd
  13. -rw------- 1 root root 17 May 6 19:43 /etc/rsync.passwd
  14. [root@backup ~]# cat /etc/rsync.passwd
  15. rsync_backup:123
  16. ## 客户端排错
  17. # 检查 rsync 命令是否指定了密码文件;若存在密码文件,检查 密码文件内容 、密码文件权限(600/700)
  18. [root@nfs ~]# ll /etc/rsync.password
  19. -rw------- 1 root root 4 May 9 12:37 /etc/rsync.password
  20. [root@nfs ~]# cat /etc/rsync.password
  21. 123
  1. # invalid uid rsync
  2. # rsync服务 需要用 rsync用户 传输文件
  3. [root@backup ~]# cat /etc/rsyncd.conf
  4. uid = rsync
  5. gid = rsync
  6. # 检查系统中是否有 rsync用户,没有则需要创建
  7. [root@backup ~]# id rsync
  8. [root@backup ~]# useradd rsync -r -s /sbin/nologin -M
  1. # Permission denied
  2. # 检查 服务端配置文件 指定的路径
  3. [root@backup ~]# cat /etc/rsyncd.conf
  4. [backup]
  5. path = /backup
  6. # 需要将 /backup 的属主和属组 指定为 rsync服务 的操作用户,即 rsync
  7. [root@backup ~]# ll /backup/ -d
  8. drwxr-xr-x 2 rsync rsync 140 May 9 15:24 /backup/

守护进程模式的工作流程

  • 执行rsync -avz /etc 172.16.1.41::backup命令
  • 连接 172.16.1.41 服务端,需要 网络畅通,873端口可连接,服务端关闭防火墙和Selinux
  • 检查 认证用户(auth user),模块 参数是否正确匹配;若匹配,则检验密码;密码文件必须为 600/700 权限
  • 检查 服务端是否有 rsyncd 服务 执行传输命令的用户(默认为rsync)
  • 检查 服务端 模块路径的属主和属组,应该制定为 rsyncd 服务 执行传输命令的用户 (默认为rsync)

企业案例一

Rsyncd服务的 客户端web01,客户端web02 每天晚上23:00备份,给etc目录打包,

推送到 backup服务端 的/backup目录下,文件名:2020-05-06_web01_etc.tar.gz 2020-05-06_web02_etc.tar.gz

服务端需求实现

  1. ## 服务端backup
  2. # 1.编辑 服务端 配置文件 /etc/rsyncd.conf
  3. [root@backup ]# vim /etc/rsyncd.conf
  4. uid = rsync
  5. gid = rsync
  6. port = 873
  7. fake super = yes
  8. use chroot = no
  9. max connections = 200
  10. timeout = 600
  11. ignore errors
  12. read only = false # 可写,即可客户端可以上传
  13. list = false
  14. auth users = rsync_backup # 此用户不需要创建,客户端连接时,作为连接的用户名
  15. secrets file = /etc/rsync.passwd
  16. log file = /var/log/rsyncd.log
  17. #####################################
  18. [backup]
  19. comment = web01bak and web02bak
  20. path = /backup
  21. # 2.创建好 rsync用户、/backup目录 , 指定 /backup目录的属主和属组
  22. [root@backup ]# useradd rsync -s /sbin/nologin -M
  23. [root@backup ]# mkdir /backup
  24. [root@backup ]# chown rsync.rsync /backup
  25. # 3.编辑密码文件,服务端密码文件需要写成 `auth users:password`,客户端只需要写入 `passord`
  26. [root@backup ]# cat /etc/rsync.passwd
  27. rsync_backup:123
  28. [root@backup ]# chmod 600 /etc/rsync.passwd
  29. # 4.重启服务、开机自启
  30. [root@backup ]# systemctl restart rsyncd
  31. [root@backup ]# systemctl enable rsyncd
  32. # 5.检查端口是否开启
  33. [root@backup ~]# netstat -lntp | grep 873
  34. tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 10986/rsync
  35. tcp6 0 0 :::873 :::* LISTEN 10986/rsync

客户端需求实现(方式一)

  1. ### 方式一,写密码文件,在执行 rsync 命令时,指定密码文件路径(必须是 600/700 权限)
  2. ## 客户端web01
  3. # 1.编写一个脚本文件 /scripts/backup.sh
  4. [root@web01 scripts]# pwd
  5. /scripts
  6. [root@web01 scripts]# vim backup.sh
  7. #!/bin/bash
  8. tar zcf $(date +%F)_$(hostname)_etc.tar.gz /etc
  9. rsync -avz $(date +%F)_$(hostname)_etc.tar.gz rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.passwd
  10. rm -rf $(date +%F)_$(hostname)_etc.tar.gz
  11. # 2.编写客户端密码文件,并改变其权限
  12. [root@web01 scripts]# echo 123 > /etc/rsync.passwd
  13. [root@web01 scripts]# chmod 600 /etc/rsync.passwd
  14. # 3.添加定时执行脚本
  15. [root@web01 scripts]# crontab -e
  16. 00 23 * * * /bin/bash /scripts/backup.sh &>/dev/null
  17. ## 客户端web02
  18. # 1.将脚本文件用 scp/rsync 传输到客户端web02
  19. [root@web01 ~]# scp -r /scripts root@10.0.0.8:/
  20. # 2.编写客户端密码文件,并改变其权限
  21. [root@web02 scripts]# echo 123 > /etc/rsync.passwd
  22. [root@web02 scripts]# chmod 600 /etc/rsync.passwd
  23. # 3.添加定时执行脚本
  24. [root@web02 scripts]# crontab -e
  25. 00 23 * * * /bin/bash /scripts/backup.sh &>/dev/null

客户端需求实现(方式二)

  1. ### 方式二,不写密码文件,将密码添加到环境变量 RSYNC_PASSWORD
  2. ## 客户端web01
  3. # 1.编写一个脚本文件 /scripts/backup.sh
  4. [root@web01 scripts]# pwd
  5. /scripts
  6. [root@web01 scripts]# vim backup.sh
  7. #!/bin/bash
  8. export RSYNC_PASSWORD=123
  9. tar zcf $(date +%F)_$(hostname)_etc.tar.gz /etc
  10. rsync -avz $(date +%F)_$(hostname)_etc.tar.gz rsync_backup@10.0.0.41::backup
  11. rm -rf $(date +%F)_$(hostname)_etc.tar.gz
  12. # 2.添加定时执行脚本
  13. [root@web01 scripts]# crontab -e
  14. 00 23 * * * /bin/bash /scripts/backup.sh &>/dev/null
  15. ## 客户端web02
  16. # 1.将脚本文件用 scp/rsync 传输到客户端web02
  17. [root@web01 ~]# scp -r /scripts root@10.0.0.8:/
  18. # 2.添加定时执行脚本
  19. [root@web02 scripts]# crontab -e
  20. 00 23 * * * /bin/bash /scripts/backup.sh &>/dev/null

企业案例二

Rsync备份案例,使用3台服务器主机名分别为web01、backup 、nfs主机信息见下表

角色 外网IP(WAN) 内网IP(LAN) 主机名
Rsync eth0:10.0.0.41 eth1:172.16.1.41 backup
NFS eth0:10.0.0.31 eth1:172.16.1.31 nfs01
WEB eth0:10.0.0.7 eth1:172.16.1.7 web01
WEB eth0:10.0.0.8 eth1:172.16.1.8 web02

客户端需求

1.客户端提前准备存放的备份的目录,目录规则如下:/backup/nfs_172.16.1.31_2018-09-02

2.客户端在本地打包备份(系统配置文件、应用配置等)拷贝至/backup/nfs_172.16.1.31_2018-09-02

3.客户端最后将备份的数据进行推送至备份服务器

4.客户端每天凌晨1点定时执行该脚本

5.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间

服务端需求

1.服务端部署rsync,用于接收客户端推送过来的备份数据

2.服务端需要每天校验客户端推送过来的数据是否完整

3.服务端需要每天校验的结果通知给管理员

4.服务端仅保留6个月的备份数据,其余的全部删除

客户端需求实现

web01客户端

  1. ## 编写 web01客户端 脚本文件
  2. [root@web01 ~]# vi rsync_backup.sh
  3. #!/bin/bash
  4. export RSYNC_PASSWORD=123
  5. local_dir="/backup"
  6. hostname="$(hostname)"
  7. date="$(date +%F)"
  8. ip="$(/usr/bin/hostname -I | awk '{print$2}')"
  9. fullbackup_dir="${local_dir}/${hostname}_${ip}_${date}"
  10. fullfilename="${hostname}_${ip}_${date}.tgz"
  11. # 创建备份目录
  12. if [ ! -d $fullbackup_dir ];then
  13. mkdir -p $fullbackup_dir
  14. echo "创建备份目录..."
  15. else
  16. echo "备份目录存在..."
  17. fi
  18. # 打包/etc/passwd文件
  19. cd /etc && \
  20. tar zcf ${fullbackup_dir}/passwd_${fullfilename} ./passwd
  21. # 创建 md5 校验文件,用于服务端校验
  22. md5sum ${fullbackup_dir}/passwd_${fullfilename} > ${fullbackup_dir}/checkfile.txt
  23. # 只保留最近 7 天的备份文件
  24. find /backup/ -type d -name "${hostname}*" ! -mtime -7 | xargs rm -rf
  25. # 将备份文件目录推送到 rsync服务端
  26. rsync -az $fullbackup_dir rsync_backup@172.16.1.41::backup
  27. ## 添加定时任务
  28. [root@web01 backup]# crontab -e
  29. # 每天凌晨1点执行推送备份文件
  30. 00 01 * * * /bin/bash /root/rsync_backup.sh &>/dev/null

web02客户端/nfs客户端 实现

  1. ## 将 web01客户端 的脚本文件远程传输到 web02客户端/nfs客户端
  2. [root@web01 ]# scp /root/rsync_backup.sh root@10.0.0.8:/root/
  3. The authenticity of host '10.0.0.8 (10.0.0.8)' can't be established.
  4. ECDSA key fingerprint is SHA256:WFgahcXxlCAx/kG3fb3EIro7viCM8aLChyV9GpVZgy4.
  5. ECDSA key fingerprint is MD5:c4:a8:54:b4:32:88:3c:c4:2d:98:c0:74:b0:c5:8c:68.
  6. Are you sure you want to continue connecting (yes/no)? yes
  7. Warning: Permanently added '10.0.0.8' (ECDSA) to the list of known hosts.
  8. root@10.0.0.8's password:
  9. rsync_backup.sh 100% 712 340.3KB/s 00:00
  10. [root@web01 ]# scp /root/rsync_backup.sh root@10.0.0.31:/root/
  11. root@10.0.0.31's password:
  12. rsync_backup.sh 100% 712 397.0KB/s 00:00
  13. ## 添加定时任务
  14. [root@web02 ]# crontab -e
  15. # 每天凌晨1点执行推送备份文件
  16. 00 01 * * * /bin/bash /root/rsync_backup.sh &>/dev/null
  17. ## 添加定时任务
  18. [root@nfs ]# crontab -e
  19. # 每天凌晨1点执行推送备份文件
  20. 00 01 * * * /bin/bash /root/rsync_backup.sh &>/dev/null

服务端需求实现

backup服务端

  1. # 1. 安装邮件服务
  2. [root@backup ~]# yum -y install mailx
  3. # 2. 修改邮箱配置文件,添加以下内容
  4. [root@backup ~]# vim /etc/mail.rc
  5. # 发件人
  6. set from=XXX@126.com
  7. # 邮件服务器
  8. set smtp=smtp.126.com
  9. # 发件人用户名
  10. set smtp-auth-user=XXX@126.com
  11. # 发件人密码(授权码,从邮箱设置中获取)
  12. set smtp-auth-password=XXXXXXXX
  13. # 登录方式
  14. set smtp-auth=login
  15. # 3. 编写 backup服务端 脚本文件
  16. [root@backup ~]# vi backup_server.sh
  17. #!/bin/bash
  18. date="$(date +%F)"
  19. # 检查备份文件数据是否完整
  20. find /backup/ -name "checkfile.txt" | xargs md5sum -c | mail -s "${date}_backuprecord" XXX@126.com
  21. # 只保留 180 天的备份文件,以防/backup被删除,更新一下/backup时间戳
  22. touch /backup && \
  23. find /backup/ -type d ! -mtime -180 | xargs rm -rf
  24. # 4. 添加定时任务
  25. [root@backup ~]# crontab -e
  26. 00 08 * * * /bin/bash /root/backup_server.sh &>/dev/null

企业案例三(实时同步)

Rsync与inotify结合实现实时同步

  1. # inotifywait命令 的选项和参数
  2. -m # 持续监控
  3. -r # 递归
  4. -q # 静默,仅打印时间信息
  5. --timefmt # 指定输出时间格式
  6. --format # 指定事件输出格式
  7. %Xe # 事件
  8. %w # 目录
  9. %f # 文件
  10. -e # 指定监控的事件
  11. access # 访问
  12. modify # 内容修改
  13. attrib # 属性修改
  14. close_write # 修改真实文件内容
  15. open # 打开
  16. create # 创建
  17. delete # 删除
  18. umount # 卸载
  19. # 安装 inotify-tools 软件包(使用 inotifywait命令)
  20. [root@nfs ~]# yum install -y inotify-tools
  21. # 监控 /data目录
  22. [root@nfs ~]# inotifywait -mrq --format '%Xe %w %f' -e create,modify,delete,attrib,close_write /data
  23. # 编写脚本,实现 inotify 与 rsyncd 结合的实时同步
  24. [root@nfs scripts]# vi /scripts/inotify.sh
  25. #!/bin/bash
  26. export RSYNC_PASSWORD=123
  27. dir=/data
  28. /usr/bin/inotifywait -mrq --format '%w %f' -e create,modify,delete,attrib,close_write $dir | while read line;do
  29. cd $dir && rsync -az -R --delete . rsync_backup@172.16.1.41::backup >/dev/null 2>&1
  30. done &

Rsyncd 同步服务的更多相关文章

  1. Rsync数据同步服务

    Rsync数据同步服务 Rsync软件适用与unix/linux/windows等多种操作系统平台 Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具,可以实 ...

  2. 如何排查sharepoint2010用户配置文件同步服务启动问题

    用户配置文件同步服务与 Microsoft Forefront Identity Manager (FIM) 交互,以与外部系统(如目录服务和业务系统)同步配置文件信息.启用用户配置文件同步服务时,将 ...

  3. 解决sharepoint 2010 用户配置文件同步服务 正在启动

    用户配置文件同步服务一直显示“正在启动”,而且无法停止,如下办法可以停止这个服务: 在sharepoint power shell 中执行下面的命令: Get-spserviceinstance 获取 ...

  4. Win8.1 Update如何禁用OneDrive同步服务

    原文 Win8.1 Update如何禁用OneDrive同步服务 上周,IT之家为爱好者分享Win8.1 Update如何提高OneDrive上传速度教程.但是,由于国内特殊网络环境,导致微软OneD ...

  5. ntp---时钟同步服务

    NTP--时钟同步服务 地球分为东西十二个区域,共计 24 个时区 格林威治作为全球标准时间即 (GMT 时间 ),东时区以格林威治时区进行加,而西时区则为减. 地球的轨道并非正圆,在加上自转速度逐年 ...

  6. 【Storm篇】--Storm中的同步服务DRPC

    一.前述 Drpc(分布式远程过程调用)是一种同步服务实现的机制,在Storm中客户端提交数据请求之后,立刻取得计算结果并返回给客户端.同时充分利用Storm的计算能力实现高密度的并行实时计算. 二. ...

  7. Syncthing -- 开源的云储存和同步服务工具

    Syncthing  -- an open-source file synchronization client/server application Syncthing是一个开源的云存储和同步服务工 ...

  8. 配置ntpd时钟同步服务

    ntpd时钟同步服务 目录 参考: CentOS配置时间同步NTP: http://www.crsay.com/wiki/wiki.php/server/centos/ntp-set 解决ntp的错误 ...

  9. grpc使用记录(二)简单同步服务实例

    目录 1.编写proto文件,定义服务 2.编译proto文件,生成代码 3.编写服务端代码 server.cpp 代码 编译 4.编写客户端代码 client.cpp代码 5.简单测试一下 已经折腾 ...

随机推荐

  1. Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details. To force a start use "systemctl reset-failed

    安装docker时,自己添加了国内的hub.docker.com镜像 [root@ce-docker ~]# systemctl restart docker 出现以下报错:Job for docke ...

  2. USB限流IC,输入5V,输出5V,最大3A限流

    USB限流芯片,5V输入,输出5V电压,限流值可以通过外围电阻进行调节,PWCHIP产品中可在限流范围0.4A-4.8A,并具有过压关闭保护功能. 过压关闭保护: 如芯片:PW1555,USB我们一半 ...

  3. python爬虫如何提高效率

    开启线程池: 线程池 asyncio 特殊的函数 协程 任务对象 任务对象绑定 事件循环 from multiprocessing.dummy import Pool map(func,alist): ...

  4. Py其他内置函数,文件修改

    其他内置函数 1.abs函数,取绝对值 print(abs(-1)) 2.all函数,判断可迭代对象是否全为真,有假直接假 假:0,'',None print(all([1,2,'1'])) prin ...

  5. MATLAB图像处理_Bayer图像处理 & RGB Bayer Color分析

    Bayer图像处理   Bayer是相机内部的原始图片, 一般后缀名为.raw. 很多软件都可以查看, 比如PS. 我们相机拍照下来存储在存储卡上的.jpeg或其它格式的图片, 都是从.raw格式转化 ...

  6. proxmox ve系统绑定上联外网出口bond双网卡

    背景描述:一个客户搭建proxmox ve系统,要求上联出口双网卡绑定bond, proxmox ve下载地址:超链接 记录日期:2020/5/9 前期准备:服务器接好2个网卡 交换机:H3C 1.p ...

  7. Apache Http Server 一些资料

    配置虚拟主机的例子: http://httpd.apache.org/docs/current/vhosts/examples.html

  8. 从URL输入到页面展现到底发生什么?

    目录 前言 一.URL 到底是啥 二.域名解析(DNS) 1.IP 地址 2.什么是域名解析 3. 浏览器如何通过域名去查询 URL 对应的 IP 呢 4. 小结 三.TCP 三次握手 1.TCP 三 ...

  9. 系列trick - bitmask

    目录 系列trick - bitmask 拆位 位运算优化(点少的)图操作 位筛 系列trick - bitmask 拆位 主体思想:位之间不影响,把每一位拆开来考虑贡献,转化成非常容易考虑的 0/1 ...

  10. (四)Springboot以jar包方式启动、关闭、重启脚本

    Springboot以jar包方式启动.关闭.重启脚本 1.启动 2.关闭 3.重启 4.脚本授权 SpringBoot: nohup java -jar zlkj-data-server-1.0-S ...