健身所网站建设策划书,wordpress lovevideo,wordpress调用子目录名称,网站和软件是怎么做的Rsync Inotify双机热备
一、备份机操作
备份机#xff1a;主服务器或主机文件将需要备份的文件同步到此服务器上#xff0c;即从主服务器上同步过来进行备份。
1.1安装rsync
sudo apt-get install rsync1.2修改/etc/dault/rsync文件
sudo vim /etc/default/rsync修改如…Rsync Inotify双机热备
一、备份机操作
备份机主服务器或主机文件将需要备份的文件同步到此服务器上即从主服务器上同步过来进行备份。
1.1安装rsync
sudo apt-get install rsync1.2修改/etc/dault/rsync文件
sudo vim /etc/default/rsync修改如下部分 RSYNC_ENABLEtrue(默认为false) RSYNC_CONFIG_FILE‘/etc/rsync/rsyncd.conf’(指定rsync配置文件路径默认为/etc/rsyncd.conf也可以使用默认)
1.3方便管理rsync配置文件新建文件夹rsync
sudo mkdir -p /etc/rsync/1.4建立密码文件rsync.secrets
密码文件是双机同步时认证的关键两机密码需要相同。
cat /etc/rsync/rsyncd.secrets EOF#/etc/rsync/rsyncd.secretswww-data:123456EOF创建完用户名为www-data密码为123456的文件后需要给该文件设置权限(必须设置)
chmod 600 /etc/rsync/rsyncd.secrets1.5拷贝文件rsyncd.conf并自定义修改内容
cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/rsync/usr下的rsyncd.conf是自带的模板文件自己使用需要修改
vim /etc/rsync/rsyncd.conf# 日志文件路径
log file/var/log/rsyncd
# pid文件
pid file/var/run/rsyncd.pid
# 模块名称(重要)
[www-data]
comment public archive
# 备份文件的存储路径需要确保存在(重要)
path /var/www/pub
use chroot yes
# 最大连接数10个
# max connections10
# lock文件
lock file /var/lock/rsyncd
# 不仅读也要写权限
read only no
list yes
# uid与pid非必要情况可设置问www-data
uid root
pid root
# 用户名称
auth users www-data
# 指定同步校验用户时的密码文件
fake super yes
# 密码文件
secrets file /etc/rsync/rsyncd.secrets
strict modes yes
# 指定主服务器ip
hosts allow 192.168.27.130
# 是否忽略错误
ignore errors no
# 是否忽略非可读的
ignore nonreadable yes
# 日志转移
transfer logging yes
# 日志输出格式
log format %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
# 最大响应时间
timeout 600
refuse options checksum dry-run
dont compress *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz修改完成保存并退出
1.6启动服务
/etc/init.d/rsync restart/etc/init.d/rsync status正常情况下服务都会启动顺利但是 也可能会出现上图的错误rsync.conf在已经配置路径的情况下依旧默认是在/etc/文件夹下执行命令
mv /etc/rsync/rsyncd.conf /etc/重新启动服务成功。
二、主服务器配置
主服务器指重要文件的原件在该服务器上。
2.1安装rsync
sudo apt-get install rsync2.2修改/etc/dault/rsync文件
sudo vim /etc/default/rsync修改如下部分 RSYNC_ENABLEtrue(默认为false)
2.3方便管理rsync配置文件新建文件夹rsync
sudo mkdir -p /etc/rsync/2.4建立密码文件rsync.secrets
密码文件是双机同步时认证的关键两机密码需要相同(这里只需要密码就行)
cat /etc/rsync/rsyncd.secrets EOF#/etc/rsync/rsyncd.secrets123456EOF创建完密码为123456的文件后需要给该文件设置权限(必须设置)
chmod 600 /etc/rsync/rsyncd.secrets2.5验证主从服务器的连接状态
在主服务器上运行
rsync -vzrtopg --progress www-data192.168.27.131::www-data --password-file/etc/rsync/rsyncd.secrets解释一下各个参数的含义: www-data : 在备份服务器上设置的用户名 192.168.27.31 : 备份服务器ip www-data : 备份服务器中rsyncd.conf中模块名称
2.6测试数据备份效果
依旧在主服务器上执行
rsync -avzPt --delete /etc/rsync/temp/ www-data192.168.27.131::www-data --password-file/etc/rsync/rsyncd.secrets解释一下各个参数的含义: /etc/rsync/temp : 需要备份文件存储路径 www-data : 在备份服务器上设置的用户名 192.168.27.31 : 备份服务器ip www-data : 备份服务器中rsyncd.conf中模块名称 总结来说通过rsync将/etc/rsync/temp/路径下的所有文件备份到用户名为www-dataip地址为192.168.27.131的服务器里面的rsyncd.conf文件夹中的www-data模块下的path(也就是/var/www/pub)指向路径里面。 如果temp后面不加 / 就会将temp文件夹整个保存到/var/www/pub下。
三、定时备份
3.1选择命令编辑方式
crontab -e选择3vim.tiny编辑方式
3.2输入定时命令
0 5 * * * rsync -avzPt --delete /etc/rsync/temp/ www-data192.168.27.131::www-data --password-file/etc/rsync/rsyncd.secrets解释一下各个参数的含义: 0 指分钟 5 指小时 即在5时00分执行该备份命令。
四、即时备份
4.1安装inotify
apt-get install inotify-tools安装完成后inotifywait默认路径为/usr/bin/inotifywait
4.2创建脚本
cat /etc/rsync/rsync.init.sh EOF#!/bin/bash/usr/bin/inotifywait -mrq --timefmt %d/%m/%y %H:%M --format %T %w%f%e -e modify,delete,create,attrib /etc/rsync/temp/ | while read filesdorsync -avzPt --delete --password-file/etc/rsync/rsyncd.secrets /etc/rsync/temp/ www-data192.168.27.131::www-dataecho {files} was rsynced /temp/rsync.log 21done解释一下各个参数的含义: #!/bin/bash : 脚本文件必备 /usr/bin/inotifywait : inotifywait默认路径 modify,delete,create,attrib 修改删除新建更改格式(对文件操作) /etc/rsync/temp/ : 监听的文件路径 while read files : 文件被读取时 echo “{files} was rsynced” /temp/rsync.log 21 : 日志信息保存
4.3修改脚本权限
chmod 755 /etc/rsync/rsync.init.sh4.4设置脚本开机自启
编辑 /etc/rc.local文件在 exit0 的前面一行加入如下语句
/bin/bash /etc/rsync/rsync.init.sh /dev/null 21 特别申明/etc/rc.local 文件在ubuntu18系统里默认是没有的。
这个时候就需要自己手动设置才会有的方法如下 1.创建软连接
ln -sf /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service添加一句命令行将命令追加到rc-local.service中(是追加是覆盖)
cat /etc/systemd/system/rc-local.serviceEOF[Install]WantedBymulti-user.targetAliasrc-local.serviceEOF3.创建rc.local文件并赋权
touch /etc/rc.local chmod 755 /etc/rc.local4.导入必要的语句
cat /etc/rc.localEOF#!/bin/bash/bin/bash /etc/rsync/rsync.init.sh /dev/null 21 exit 0EOF5.重新加载服务
systemctl daemon-reload五、备注和错误处理
5.1rsync命令说明
-v显示rsync过程中详细信息。可以使用-vvvv获取更详细信息。 -P显示文件传输的进度信息。(实际上-P“–partial --progress”其中的–progress才 是显示进度信息的)。 -n --dry-run 仅测试传输而不实际传输。常和-vvvv配合使用来查看rsync是如何工作的。 -a --archive 归档模式表示递归传输并保持文件属性。等同于-rtopgDl。 -r --recursive递归到目录中去。 -t --times保持mtime属性。强烈建议任何时候都加上-t否则目标文件mtime会设置为系 统时间导致下次更新 检查出mtime不同从而导致增量传输无效。 -o --owner保持owner属性(属主)。 -g --group保持group属性(属组)。 -p --perms保持perms属性(权限不包括特殊权限)。 -D 是–device --specials选项的组合即也拷贝设备文件和特殊文件。 -l --links如果文件是软链接文件则拷贝软链接本身而非软链接所指向的对象。 -z 传输时进行压缩提高效率。 -R --relative使用相对路径。意味着将命令行中指定的全路径而非路径最尾部的文件名发送 给服务端包括它们的属性。用法见下文示例。 –size-only 默认算法是检查文件大小和mtime不同的文件使用此选项将只检查文件大小。 -u --update 仅在源mtime比目标已存在文件的mtime新时才拷贝。注意该选项是接收端判 断的不会影响删除行为。 -d --dirs 以不递归的方式拷贝目录本身。默认递归时如果源为dir1/file1则不会拷贝 dir1目录使用该选项将拷贝dir1但不拷贝file1。 –max-size 限制rsync传输的最大文件大小。可以使用单位后缀还可以是一个小数值(例如 “–max-size1.5m”) –min-size 限制rsync传输的最小文件大小。这可以用于禁止传输小文件或那些垃圾文件。 –exclude 指定排除规则来排除不需要传输的文件。 –delete 以SRC为主对DEST进行同步。多则删之少则补之。注意–delete是在接收端 执行的所以它是在 : exclude/include规则生效之后才执行的。 -b --backup 对目标上已存在的文件做一个备份备份的文件名后默认使用~“做后缀。 –backup-dir指定备份文件的保存路径。不指定时默认和待备份文件保存在同一目录下。 -e 指定所要使用的远程shell程序默认为ssh。 –port 连接daemon时使用的端口号默认为873端口。 –password-filedaemon模式时的密码文件可以从中读取密码实现非交互式。注意这不是 远程shell认证的密码而是rsync模块认证的密码。 -W --whole-filersync将不再使用增量传输而是全量传输。在网络带宽高于磁盘带宽时该 选项比增量传输更高效。 –existing 要求只更新目标端已存在的文件目标端还不存在的文件不传输。注意使用相对路径时如果上层目录不存在也不会传输。 –ignore-existing要求只更新目标端不存在的文件。 –remove-source-files要求删除源端已经成功传输的文件。
虽然选项非常多但最常用的选项组合是avz即压缩和显示部分信息并以归档模式传输。
5.2日志格式解析
log format %h:远程主机名 %a:远程IP地址 %l:文件长度字符数 %p:该次rsync会话的进程id %o:操作类型“send或recv”、”del.” %f:文件名 %P:模块路径 %m:模块名 %t:当前时间 %u:认证的用户名(匿名时是null) %b:实际传输的字节数 %c:当发送文件时该字段记录该文件的校验码
5.3常见错误
问题一 ERROR: chroot failed rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver3.0.3]
原因服务器端的目录不存在或无权限创建目录并修正权限可解决问题。
问题二 ERROR: auth failed on module tee rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver3.0.3]
原因服务器端该模块tee需要验证用户名密码但客户端没有提供正确的用户名密码认证失败提供正确的用户名密码解决此问题。
问题三 ERROR: Unknown module ‘tee_nonexists’ rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver3.0.3]
原因服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题
问题四在client上遇到 rsync -auzv --progress --password-file/etc/rsync.pas root192.168.1.128::backup /home/ rsync: could not open password file “/etc/rsync.pas”: No such file or directory (2) Password: ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver3.0.7]
遇到这个问题client端没有设置/etc/rsync.pass这个文件而在使用rsync命令的时候加了这个参数– password-file/etc/rsync.pass
问题五 rsync -auzv --progress --password-file/etc/rsync.pas root192.168.1.128::backup /home/ ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver3.0.7]
遇到这个问题client端已经设置/etc/rsync.pas这个文件里面也设置了密码111111和服务器一致但是 服务器段设置有错误服务器端应该设置/etc/rsync.pas 里面内容root:111111 ,这里登陆名不可缺少
问题六 rsync -auzv --progress --password-file/etc/rsync.pas root192.168.1.128::backup /home/ ERROR: chdir failed rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver3.0.7]
遇到这个问题是因为服务器端的/home/backup 其中backup这个目录并没有设置所以提示chdir failed
问题七 rsync: write failed on “/home/backup2010/wensong”: No space left on device (28) rsync error: error in file IO (code 11) at receiver.c(302) [receiver3.0.7] rsync: connection unexpectedly closed (2721 bytes received so far) [generator] rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator3.0.7]
遇到这个问题磁盘空间不够所以无法操作可以通过df /home/backup2010 来查看可用空间和已用空间