rsync的:我怎样才能将其配置为在服务器上创建目标目录?(rsync: how can I con

2019-09-01 22:51发布

我想rsync从本地计算机到服务器。 在一个目录不存在了,我要rsync先在服务器上创建该目录。

我怎样才能做到这一点?

Answer 1:

如果您有最后一片叶子目录更被创建,您可以运行一个单独ssh ... mkdir -p第一,或者使用--rsync-path伎俩在这里解释 :

rsync -a --rsync-path="mkdir -p /tmp/x/y/z/ && rsync" $source user@remote:/tmp/x/y/z/

或者使用--relative选项由托尼的建议。 在这种情况下,你只能指定目的地的根,它必须存在,而不是源,这将创建的目录结构:

rsync -a --relative /new/x/y/z/ user@remote:/pre_existing/dir/

这样,您将结束与/ pre_existing / DIR /新/ X / Y / Z /

如果你想拥有“Y / Z /”创建,但里面的“新/ X /”,你可以添加./你想要--relative开始:

rsync -a --relative /new/x/./y/z/ user@remote:/pre_existing/dir/

将创建/ pre_existing / DIR / Y / Z /。



Answer 2:

假设你使用ssh连接rsync的,怎么样才发送ssh命令:

ssh user@server mkdir -p existingdir/newdir

如果它已经存在,没有任何反应



Answer 3:

-R, --relative选项将做到这一点。

例如:如果你想备份/var/named/chroot并创建远程服务器上相同的目录结构,那么-R将做到这一点。



Answer 4:

这个工作对我来说:

 rsync /dev/null node:existing-dir/new-dir/

我得到这个消息:

skipping non-regular file "null"

但我不担心有一个空目录游逛。



Answer 5:

我不认为你可以用一个rsync命令去做,但你可以先“预创建”额外的目录是这样的:

rsync --recursive emptydir/ destination/newdir

其中“emptydir”是一个本地空目录(您可能需要首先创建一个临时目录)。

这是一个黑客攻击的一位,但它为我工作。

干杯

克里斯



Answer 6:

这个答案使用其他的答案位,但我希望这将是作为对情况更清楚一点。 你永远不指定你rsyncing什么 - 一个目录条目或多个文件。

因此,让我们假设你是跨移动源目录项,而不仅仅是移动其中包含的文件。

比方说,你有一个本地调用目录data/myappdata/你有这个子目录下的负载。 你有data/你的目标机器上,但没有data/myappdata/ -这是很容易做到:

rsync -rvv /path/to/data/myappdata/ user@host:/remote/path/to/data/myappdata

你甚至可以使用不同的名称为远程目录:

rsync -rvv --recursive /path/to/data/myappdata user@host:/remote/path/to/data/newdirname

如果你只是把一些文件,而不是移动包含这些,那么你会做的目录条目:

rsync -rvv /path/to/data/myappdata/*.txt user@host:/remote/path/to/data/myappdata/

它会创建myappdata目录为你远程机器放置在您的文件上。同样, data/目录必须存在于远程计算机上。

顺便说一句,我使用的-rvv标志是得到加倍详细的输出,因此是清楚它做什么,以及必要的递归行为。

只是为了告诉你什么是我(在Ubuntu 12.04 3.0.9)使用rsync时得到

$ rsync -rvv *.txt user@remote.machine:/tmp/newdir/
opening connection using: ssh -l user remote.machine rsync --server -vvre.iLsf . /tmp/newdir/
user@remote.machine's password:
sending incremental file list
created directory /tmp/newdir
delta-transmission enabled
bar.txt
foo.txt
total: matches=0  hash_hits=0  false_alarms=0 data=0

希望这会清除此一点点。



Answer 7:

例如:

来自:/xxx/a/b/c/d/e/1.html

于:用户@远程:/pre_existing/dir/b/c/d/e/1.html

rsync的:

CD / XXX /一个/ && rsync的-auvR B / C / d / E /用户@远程:/ pre_existing /目录/



文章来源: rsync: how can I configure it to create target directory on server?
标签: rsync