我有一个位于 backup.sh 文件(chmod 775)中的脚本:
rsync -e 'ssh -p 31234' -avlz --delete --stats --progress --copy-links admin@foo.xen.prgmr.com:/home/admin/rsync /home/myname/rsync/foo/
Run Code Online (Sandbox Code Playgroud)
当我手动调用它时,一切正常(并且我不必输入密码)。但是当我从 cron 调用它时,它就不起作用了。
我在同事的计算机上使用了相同的设置(与我具有相同的访问权限),并且效果很好。
怎么了?
我第一次使用 rsync 创建网站的每日备份,我想知道是否应该覆盖以前的副本,或者应该创建多个副本并仅覆盖最旧的副本?(不过,我可能没有足够的空间)。
我其实也有这个问题。假设大多数文件被意外删除。rsync 是否会从备份空间中删除所有这些文件,因为它们不再存在?在这种情况下具体是如何工作的?
谢谢
源文件夹:A.txt B.txt C.txt 目标文件夹:B.txt
有没有办法让rsync只同步目标文件夹中的文件?那么,如果源文件夹中的 A 和 B 更新,rsync 只会将 B 复制到目标文件夹吗?
有没有办法将目录从一个文件系统复制到另一个文件系统,但删除部分文件,以防目标文件系统上的磁盘空间不足?
我搜索cp了rsync手册,但没有找到任何东西;我可以在 shell 脚本中执行此操作,但希望尽可能避免它。
目前我做的是:
cp -r /source /dest
Run Code Online (Sandbox Code Playgroud)
或者
rsync -avr /source /dest
Run Code Online (Sandbox Code Playgroud)
米。
我在 Ubuntu 12.04 LTS 服务器上使用 rsync 并使用以下脚本来备份所有内容/,但是,每当我运行脚本(以 root 身份)时,/backup都会包含该目录,而应该排除该目录:
#!/bin/sh
rsync --password-file=/etc/rsyncd.password --delete -aAXzv --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs,/home/*/Downloads/*,/backup/*,/var/spool/squid3,/opt/atlassian,var/www/\~*} /* fsbak@servername::fsbak
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,如何让 rsync 忽略/backup?
我正在迁移到新服务器,并且还有 html/php 文件,有一个目录,其中包含大约 90,000 个文件,总大小为 24GB,需要移动。
当我进行测试迁移时,我使用 tar 创建了一个 tarball,然后在新主机上使用 wget,然后提取了 tar 文件,虽然它运行良好,但总共花了大约 3 个小时才能完成。这将是 3 小时的停机时间,而我在实际迁移中这样做以确保没有新文件进入或文件被更改等。
我现在正在计划实际的迁移,并试图找到更快的方法来做到这一点,并想知道使用 rsync - 我只在本地使用过 rsync 并且只用于少量文件,所以对 90k 项目运行 rsync 会比上面的更快方法?
只要实际过程完成得更快,我就不太担心 CPU、内存或网络使用情况,因为无论如何,当系统更安静时,这将在数小时内完成。
当你使用
rsync -avzh --stats --out-format="%t %f %b"
Run Code Online (Sandbox Code Playgroud)
它以字节为单位输出手册页说以下内容
In addition, one or more apostrophes may be specified prior to a
numerical escape to indicate that the numerical value should be made
more human-readable. The 3 supported levels are the same as for the
--human-readable command-line option, though the default is for human-
readability to be off. Each added apostrophe increases the level
(e.g. "%''l %'b %f").
Run Code Online (Sandbox Code Playgroud)
我的问题是我必须在 %b 之间放置多少个撇号才能将其从字节更改为兆字节?
一旦我添加撇号,这就是日志中发生的事情
rsync -av --out-format="%t %f %'b"
2016/10/29 01:00:22 home/data/Clients/P/Power Solutions CC/2017/Sales …Run Code Online (Sandbox Code Playgroud) 我给出的任务是创建两台 CentOS 7 服务器,其中不仅会复制数据库,还会复制文件。现在我的问题是,即使不是一百万个文件,也可能有数十万个文件,其大小从几 KB 到约 1 GB 不等。
我读过关于
现在我想询问一下您是否曾经使用过或正在使用这些产品的体验。与复制和删除相关的文件更改的性能如何?我非常害怕使用任何 rsync,因为我的经验是它对于很多小文件来说不是很快,因此我不能真正使用它来进行实时文件复制。还是我错了?请证明我错了。:)
或者也许我需要第三台和第四台服务器作为文件服务器?如果是,那么问题仍然存在:如何在两台服务器之间实时复制文件?
干杯!
我正在使用“火箭科学”的 bash 脚本从我的本地机器快速将 Wordpress 代码部署到共享主机。一切都工作到昨天。现在我只是参与了与托管管理员的讨论,试图建议我一切都好。
这是脚本:
#!/bin/bash
printf "Running gulp\n"
gulp --production
printf "Running rsync\n"
rsync -vzrP --update ~/Code/Project/wp-content/themes/foo-theme mylogin@shared-hosting-server.com:/home/mylogin/domains/example.com/public_html/wp-content/themes/ --delete
Run Code Online (Sandbox Code Playgroud)
为了不一直提示输入密码,我将我的密钥添加到known_hosts服务器的.ssh目录中。几个月来,它完全没有问题。昨天我收到消息“身份已更改...”
Running rsync
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host …Run Code Online (Sandbox Code Playgroud) 我已经配置了mongodb副本集(我有 3 个数据库实例 -Redhat),并且我想每天使用 10 或 12 次备份数据库文件( dbPath: /var/lib/mongo) 。rsync
那么,我需要mongod在开始之前停止该过程吗rsync?
否则,我可以在不停止进程的情况下启动rsync(dbPath: /var/lib/mongomongod ) 吗?
除了 LVM 备份之外,推荐的备份方法是什么mongodump?