Articles of rsync

什么是实时同步2个相同的centos服务器的最佳方式

我正在运行一个centos linux服务器(A),并且我想创build一个实时备份服务器(B),所以无论何时服务器Aclosures服务器B(在故障切换启动后)将接pipe。 我已经解决了故障转移的事情(提示:我用Cloudflare),我正在寻找一个解决scheme,“镜像”我的服务器A文件和数据库到服务器B. 我通过cron使用了rsync和mysqldump,但是它不是实时的,而且它的资源密集,因为它每次都传输所有的文件和数据库内容。

rsync:如何排除目标中的文件夹/文件被删除

我已经阅读了关于这个问题的几个主题,但是那里指出的命令仍然不适用于我。 我试图从文件夹1 (包含子文件夹a )到文件夹2(包含a和b )rsync文件没有删除文件夹b 。 然而下面的命令删除它: rsync -av –exclude folder2/b/ –delete folder1/ folder2/ 其他的变化,如绝对path或斜杠,没有斜杠也没有工作。 而且,尽pipe它应该基本上是相同的命令(除了文件夹名称)在这个线程 。 任何人有一个想法?

使用中间存储区在主机之间移动文件

是否有任何好的现有解决scheme将文件从主机A移动到主机C,使用主机B作为被动中间存储区域。 A→B→C 限制 主机A和主机C在不同的networking上,不能互相访问。 A和C之间不能打开隧道 主机A和主机C都可以运行并安排周期性进程。 主机B只提供一个存储区域,可以通过SSH从主机A和主机C进行访问。 B将是“被动”,只会提供存储区域。 因此,A将充当(B上的文件)的作者,而C将充当(B上的文件的)读者。 然后可以在主机A上删除从主机A成功复制到主机C的文件(通过B)。 在存在保证(包含文件校验和的收据?)之前,主机A上的任何文件都不应该被删除,它已经成功登陆到主机C上 案例包括networking停机时间pipe理,磁盘已满,中断进程等 目的是定期将文件从A移动到C,使用B作为中间存储区域。 我们可以假设所有主机都运行Unix / Linux。 首选工具:ssh / rsync / bash +其他“标准”工具。 我正在考虑通过在两个步骤中使用一些围绕rsync的bash脚本来创build解决scheme,并使用包含校验和的收据来检测文件何时成功移动。 有没有现有的解决scheme?

迁移NFS服务器(Linux)

我们有一个NFS服务器(Linux),它将文件存储在iSCSI磁盘arrays中。 此服务器正在生产中。 服务器和arrays很旧,必须尽快更换(arrays已经出现严重问题)。 我有更换服务器和arrays准备在不同的networking。 我一直在考虑让rsync的股票,然后再做一遍,所以我同步数据。 我不知道这是否会导致数据不一致…由于股份挂载在lvm上,也许我可以先创build一个快照? 题: 什么是迁移所有数据的最佳方法? 你有什么build议吗?

使用mysqldump备份远程数据库

我试图实现一个快速的方式来做一个备份和远程mysql数据库下载到我的本地机器,只使用terminal。 远程服务器使用ssh密钥进行authentication。 我可以通过在terminal上运行七个连续的命令来完成,一些在服务器上执行,另一些在本地机器上执行: 1)使用ssh键连接远程服务器; 2)将数据库转储到远程目录; 3)从服务器注销; 4)将备份下载到我的本地机器; 5)再次连接到服务器; 6)从远程目录中删除备份; 7)注销 #1 ssh -i my_rsa_key my_user@my_domain.tld #2 mysqldump -u my_db_user -pmy_db_password my_db > my_path_to_backup_directory/backup.sql #3 logout #4 rsync -chavzP -e 'ssh -i my_rsa_key -C -c blowfish' my_user@my_domain.tld:/my_path_to_backup_directory/backup.sql /my_path_to_local_directory #5 ssh -i my_rsa_key my_user@my_domain.tld #6 rm my_path_to_backup_directory/backup.sql #7 logout 问题1:这个工作stream程是否正常,或者是否有“干净”的方式? 问题2:是否可以在一个批次中自动执行这些命令,我​​只需要在terminalinput一个命令,完成所有七个步骤? 我已经尝试使用链接命令 && 但我想这是行不通的,因为我执行从本地机器(如rsync)的一部分命令和部分从远程(如mysqldump)。 所有的帮助表示感谢,谢谢。

在rsync-destination上保留最小可用空间

我正在使用rsync将夜间cron-job中的两个文件夹备份到同一个目标磁盘上: rsync -avz /very/important/data /Backup/VID/ rsync -avz /other/stuff /Backup/tmp/ 第一份工作比第二份备份更重要的数据(例如邮箱和电影collections),所以我想确保这项工作成功。 第一份工作的数据量也比第一份less。 现在,当磁盘满了,我正面临着问题: 星期一晚上:第一个工作成功,但第二个工作完成了磁盘,并最终停止“ 磁盘已满 ”的消息。 没关系(kindof)。 星期二晚上:由于备份磁盘从前一天晚上仍然已满,这次已经是第一个工作失败了。 现在这是不好的 。 所以我想知道如何限制第二个rsync作业的可用(目标)磁盘空间:如果我可以告诉第二个作业有3GB的可用空间,那么它会提前退出并为下一个重要工作留出空间天。 第一个想法是在备份磁盘上创build一个大的临时文件(第一个作业完成之后,第二个作业完成之前),并在第二个作业完成之后(以及下一轮之前)删除该文件。 现在我想避免这种情况,因为备份磁盘实际上是一个NFS挂载,并且为了保持空间而在该设备上创buildGB文件非常缓慢。 客户系统: Debian / GNU linux 8.2(jessie) nfs-utils 1:1.2.8-9 内核3.16.0-4-amd64 我没有访问NFS服务器。

rsync同步太多的文件

我有以下目录结构: /tmp1 \_ file1.txt \_ file2.txt /tmp2 \_ file1.txt \_ file2.txt \_ file3.txt /changes 使用rsync的–compare-dest选项,我想要将/ tmp1中不存在的所有文件同步到/ tmp2中。 / tmp2中与/ tmp1不同的修改过的文件也应该同步到/ changes。 当我执行以下命令时: rsync -acvu –compare-dest=/tmp1/ /tmp2/ changes file3.txt将保存在更改中。 但也是file1.txt,尽pipe在这两个目录中的文件的MD5总和是相等的! 我错过了一些rsync参数吗? 提前致谢! 更新: 我发现不应该同步的文件具有文件权限-rw-rw-r-其他文件具有-rwxrwxr-x。 我无法find关于rsync的这种行为。 在两个目录上输出“ls -la”: # ls -la /tmp1 -rw-rw-r– 1 1001 1001 4 Dec 31 15:00 file1.txt -rwxrwxr-x 1 1001 1001 6 Dec […]

用户没有访问远程机器的ssh

我希望生产服务器将备份文件推送到备份机器。 备份通过www-data cron脚本完成(因为它们可以通过网站cms编辑),一旦完成,想法是通过rsync&ssh发送这个文件到备份服务器。 www-data是一个'没有login用户'帐户(没有家,没有〜/ .ssh文件夹)。 在“用户可以login”帐户中,我将login,使用ssh-keygen生成证书,并将公钥放入备份机器的.ssh/authorized_keys中。 我怎样才能使这个“用户不login”帐户发送文件到rsync和SSH的远程机器?

在源重复数据删除之后,rsync -H是否将文件转换为目标上的硬链接?

我有两台服务器,第二台通过rsync同步。 我有一些(几千?)大的重复文件,我想使用freedup来腾出一些空间。 如果我在源码上启动释放,rsync -H会用硬链接replace目标上的真实文件,并节省空间吗?

尽pipedu说它不是

我遇到了我的备份驱动器非常奇怪的行为,我既不能解释也不能修复。 我有一个通过NFS安装的外部驱动器。 我经常调用rsync作业,从我的服务器备份文件到该驱动器。 为了节省空间,我只复制新的/更改的文件,并将其他人硬链接到以前的备份。 我的问题是:两个备份后,我的100G驱动器已满(根据df )。 但是,一个du -hs告诉我,第一个备份需要大约15G的空间,而第二个只需要45M(因为硬链接)。 这是我到目前为止检查: 我卸载并安装了驱动器,但问题依然存在。 我检查了lsof和lsof +L1但没有显示任何被删除的文件,仍然徘徊。 无论如何,卸载应该照顾。 编辑:我也检查,但忘了提及 可用的inode数量:我有足够的。 目录是否在挂载之前:目录是空的。 有没有人有一个想法,我可以检查什么,或者是什么问题? 任何帮助是极大的赞赏。