目前,我只对Directories进行RSync,如下所示:
Directories
* * * * * rsync -avz /var/www/public_html/images root@<remote-ip>:/var/www/public_html
那么,我如何rsync一个单一的文件一样,/var/www/public_html/.htaccess?
rsync
/var/www/public_html/.htaccess
92dk7w1h1#
您可以使用与目录相同的方法来执行此操作,但需要指定文件名的完整路径作为源。在您的示例中:
rsync -avz --status=progress /var/www/public_html/.htaccess root@<remote-ip>:/var/www/public_html/
评论中提到:由于-a包含 recurse,一个小的错误就可能导致整个目录树的传输,因此更简单的方法可能是使用-vz,或者用-lptgoD替换它。
-a
-vz
-lptgoD
sg2wtvxw2#
基本语法
rsync options source destination
示例
rsync -az /var/www/public_html/filename root@<remote-ip>:/var/www/public_html
Read more
yi0zb3m43#
如果相对于源文件和目标文件的根目录,文件路径中的所有目录都已经存在,那么Michael Place的答案就非常有效。但如果您想同步具有以下源路径的文件,该怎么办:
到具有以下目标路径的文件:
而目录 a 和 B 不存在您需要运行如下所示的rsync命令:
rsync -r --include="/a/" --include="/a/b/" --include="/a/b/file" --exclude="*" [source] [target]
emeijp434#
到目前为止,两个答案是不太正确的,他们会得到一个以上的文件,另一个是不简单的,因为它可以,这里有一个更简单的答案海事组织。下面的代码只得到一个文件,但是你必须用mkdir创建dest目录,这可能是最快的选择:
mkdir -p ./local/path/to/file rsync user@remote:/remote/path/to/file/ -zarv --include "filename" --exclude "*" ./local/path/to/file/
如果/remote/path中只有一个文件示例,那么rsync可以为你创建目录,如果你执行以下操作的话。这可能会花费更多的时间,因为它会搜索更多的目录。另外,它会为/remote/path中不在./local中的目录创建空目录
cd ./local rsync user@remote:/remote/path -zarv --include "*/" --include "filename" --exclude "*" .
请记住--include和--exclude的顺序很重要。
4条答案
按热度按时间92dk7w1h1#
您可以使用与目录相同的方法来执行此操作,但需要指定文件名的完整路径作为源。在您的示例中:
评论中提到:由于
-a
包含 recurse,一个小的错误就可能导致整个目录树的传输,因此更简单的方法可能是使用-vz
,或者用-lptgoD
替换它。sg2wtvxw2#
基本语法
示例
Read more
yi0zb3m43#
如果相对于源文件和目标文件的根目录,文件路径中的所有目录都已经存在,那么Michael Place的答案就非常有效。
但如果您想同步具有以下源路径的文件,该怎么办:
到具有以下目标路径的文件:
而目录 a 和 B 不存在
您需要运行如下所示的rsync命令:
emeijp434#
到目前为止,两个答案是不太正确的,他们会得到一个以上的文件,另一个是不简单的,因为它可以,这里有一个更简单的答案海事组织。
下面的代码只得到一个文件,但是你必须用mkdir创建dest目录,这可能是最快的选择:
如果/remote/path中只有一个文件示例,那么rsync可以为你创建目录,如果你执行以下操作的话。这可能会花费更多的时间,因为它会搜索更多的目录。另外,它会为/remote/path中不在./local中的目录创建空目录
请记住--include和--exclude的顺序很重要。