当前位置: 首页 > Linux

CentOS之间rsync做文件增量(备份)同步

时间:2023-04-07 00:05:14 Linux

server192.168.0.248:localserver47.56.34.2:remoteserver目的同步远程服务器数据到本地服务器prerequisitetwoserversinstallrsyncandcrontabsyuminstall-yrsyncyuminstall-ycrontabs设置免密码登录,在本地服务器执行#生成keyssh-keygen-trsa#复制到远程服务器ssh-copy-id-i/root/.ssh/id_rsa.pub"-p22root@47.56.34.2"#免密登录ssh-p22root@47.56.34.2执行文件同步命令rsync-vzrtopg--progress--delete-e'ssh-p22'root@47.56.34.2:/root/fileUpload/home/backup/fileUpload/#输出日志rsync-vzrtopg--progress--delete-e'ssh-p22'root@47.56.34.2:/root/fileUpload/home/backup/fileUpload/1>/home/logs/rsync.log2>&1使用crond定时同步#在本地服务器上,定时同步02***root/home/backup/script/auto_rsync.sh#在远程服务器上,定时备份数据库02***root/root/backup/script/auto_mysqldump.sh同步脚本备份数据库脚本auto_mysqldump.sh#!/bin/bashDATE="$(date+%F)"backup_dir=/root/backup/databasemysqldump-uroot-pAsdf@123pms>${backup_dir}/pms-${DATE}.sql#只保留前100lPkgList=($(ls"${backup_dir}"|sort-nr))for((j=100;j<${#lPkgList[@]};++j));做rm-rf"${backup_dir}/${lPkgList[$j]}"完成备份文件脚本auto_rsync.sh#!/bin/bashrsync-vzrtopg--progress--delete-e'ssh-p22'root@47.56.34.2:/root/fileUpload/home/backup/fileUpload/1>/home/logs/rsync.log2>&1rsync-vzrtopg--progress--delete-e'ssh-p22'root@47.56.34.2:/root/backup/database/home/backup/database/1>/home/logs/rsync-database.log2>&1命令详细使用方法http://man.linuxde.net/rsync-v,--verbosedetailedmodeoutput-q,--quiet安静输出模式。-c,--checksum打开校验和开关以强制对文件传输进行校验和。-a,--archive归档模式,表示递归传输文件并保留所有文件属性,等于-rlptgoD。-r,--recursive递归处理子目录。-R,--relative使用相对路径信息。-b,--backup创建一个备份,即当目的地已经存在相同的文件名时,将旧文件重命名为~filename。您可以使用--suffix选项指定不同的备份文件前缀。--backup-dir将备份文件(如~filename)存放在目录中。-suffix=SUFFIX定义备份文件前缀。-u,--update只更新,即跳过所有DST中已经存在且晚于要备份的文件的文件,不覆盖更新的文件。-l,--links保留软链接。-L,--copy-links想像对待普通文件一样对待软链接。--copy-unsafe-links只复制指向src路径目录树之外的链接。--safe-links忽略指向SRC路径目录树之外的链接。-H,--hard-links保留硬链接。-p,--perms保留文件权限。-o,--owner保留文件所有者信息。-g,--group保留文件组信息。-D,--devices保留设备文件信息。-t,--times保留文件时间信息。-S,--sparse对稀疏文件进行特殊处理以节省DST空间。-n,--dry-run显示将传输哪些文件。-w,--whole-file复制文件而不进行增量检查。-x,--one-file-system不要跨越文件系统边界。-B,--block-size=SIZE验证算法使用的块大小,默认为700字节。-e,--rsh=command指定使用rsh和ssh进行数据同步。--rsync-path=PATH指定rsync命令在远程服务器上的路径信息。-C,--cvs-exclude使用与CVS相同的方法自动忽略文件以排除那些您不想传输的文件。--existing只更新DST中已经存在的文件,不备份新创建的文件。--delete在DST中删除那些不在SRC中的文件。--delete-excluded同时删除接收端被该选项排除的文件。--delete-after传输完成后删除。--ignore-errors及时删除IO错误。--max-delete=NUM最多删除NUM个文件。--partial保留因任何原因未完全传输的文件,以加快后续重传。--force强制删除目录,即使它们不是空的。--numeric-ids不要将数字用户和组ID与用户名和组名匹配。--timeout=timeip超时时间,以秒为单位。-I,--ignore-times不要跳过具有相同时间和长度的文件。--size-only决定是否备份文件时,只看文件大小,不考虑文件年限。--modify-window=NUM确定文件是否具有相同时间时使用的时间戳窗口,默认为0。-T--temp-dir=DIR在DIR中创建临时文件。--compare-dest=DIR同时比较DIR中的文件以确定是否需要备份。-P等同于--partial。--progress显示备份进度。-z,--compress在传输过程中压缩备份文件。--exclude=PATTERN指定排除不需要传输的文件模式。--include=PATTERN指定需要传输而不被排除的文件模式。--exclude-from=FILE排除文件中指定模式的文件。--include-from=FILE不要排除与FILE指定的模式匹配的文件。--version打印版本信息。--address绑定到特定地址。--config=FILE指定其他配置文件,不使用默认的rsyncd.conf文件。--port=PORT指定其他rsync服务端口。--blocking-io对远程shell使用阻塞IO。-stats给出一些文件的传输状态。--progress传输时显示传输进度。--log-format=formAT指定日志文件格式。--password-file=FILE从文件中获取密码。--bwlimit=KBPS限制I/O带宽,每秒KBytes。-h,--help显示帮助信息。问题是ssh修改了默认的22端口,没有key无法登录。解决方法:vim/etc/ssh/sshd_config去掉#RSAAuthenticationyesPubkeyAuthenticationyesAuthorizedKeysFile.ssh/authorized_keys下面三行之前。重启ssh服务servicesshdrestart重新生成秘钥并将公钥上传到另一台服务器。转载请注明:Silian?CentOS之间rsync做文件增量(备份)同步