rsync不能同步.htaccess文件
我正在尝试rsync与server2的目录B server1的目录A.
坐在server1的目录A中,我运行了下面的命令。
rsync -av * server2::sharename/B 但有趣的是,它同步除目录A中的.htaccess或任何隐藏文件之外的所有文件和目录。子目录中的任何隐藏文件都会被同步。
我也尝试了下面的命令:
 rsync -av --include=".htaccess" * server2::sharename/B 
但结果是一样的。
任何想法为什么隐藏文件的目录没有得到同步和如何解决它。 我以root用户身份运行。
谢谢
 这是由于*默认扩展为当前工作目录中的所有文件,除了名称以点开头的文件之外。 因此, rsync从不接收这些文件作为参数。 
 你可以通过. 表示当前工作目录为rsync : 
 rsync -av . server2::sharename/B 
 这样rsync将查找要在当前工作目录中传输的文件,而不是在*扩展到的位置查找它们。 
 或者,您可以使用以下命令将*展开到所有文件,包括以点开头的文件: 
 shopt -s dotglob 
另请参阅shopt联机帮助页 。
 对于只尝试在服务器之间同步目录(包括所有隐藏文件)的任何人(例如, somedirA source-server上的somedirB同步到目标服务器上的somedirB ,请尝试执行以下操作 : 
 rsync -avz -e ssh --progress user@source-server:/somedirA/ somedirB/ 
请注意两个path末尾的斜杠。 任何其他语法可能会导致意外的结果!
 另外,对我来说,从目标服务器执行rsync命令最容易,因为确保我有适当的写入权限(例如,我可能需要将sudo添加到上面的命令)更容易。 
 也许不言而喻,但显然你的远程用户也需要读取源服务器上的somedirA 。  🙂 
我遇到过同样的问题。
对我来说,当我做了下面的命令隐藏文件没有得到rsync'ed
 rsync -av /home/user1 wobgalaxy02:/home/user1 
但是当我在path的末尾添加斜线时,隐藏的文件被rsync了。
 rsync -av /home/user1/ wobgalaxy02:/home/user1/ 
注意path尽头的斜杠 ,就像Brian Lacy所说的斜线是关键。 我没有评论他的职位的声誉,或者我会这样做。
我认为这个问题是由于shell通配符扩展。 使用 。 而不是明星。
考虑下面的示例目录内容
 $ ls -a . . .. .htaccess a.html z.js 
shell的通配符扩展翻译了rsync程序从中获取的参数列表
 -av * server2::sharename/B 
成
 -av a.html z.js server2::sharename/B 
在命令开始执行之前。
  *告诉rsynch不同步隐藏的文件。 你有没有试图省略它?