AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1113014
Accepted
Alice
Alice
Asked: 2019-01-27 01:26:48 +0800 CST2019-01-27 01:26:48 +0800 CST 2019-01-27 01:26:48 +0800 CST

rsync 到远程目录

  • 772

我试图将主目录更新为备份计算机

rsync -avru --exclude-from='/home/me/exclude-me.txt' /home/me/* assistant@assistant.local:/home/assistant/* -p 2222

但得到一个错误

Unexpected remote arg: assistant@assistant.local:
rsync error: syntax or usage error (code 1) at main.c(1361) [sender=3.1.2]

我的代码有什么问题?

ssh rsync
  • 2 2 个回答
  • 3695 Views

2 个回答

  • Voted
  1. Best Answer
    Thomas
    2019-01-27T02:49:43+08:002019-01-27T02:49:43+08:00

    对于选项意味着保留权限rsync并且不带参数。因此,您的命令无法正确解析,并且出现错误。-p

    如果要更改rsync应连接的 SSH 端口,请使用以下命令。

    rsync -avru --exclude-from='/home/me/exclude-me.txt' -e 'ssh -p 2222' \ 
    /home/me/ \
    assistant@assistant.local:/home/assistant/
    
    • 6
  2. JohnP
    2019-01-27T08:33:57+08:002019-01-27T08:33:57+08:00

    目标不应有任何通配符。最好根据需要学习使用尾随 / 或不使用。

    rsync 中的 -p 是权限,而不是端口。从手册页:
            -p, --perms 保留权限

    rsync 默认使用 ssh 进行远程连接至少十年了。无需指定 -e 任何内容。端口可以​​添加到 URL - userid@remote-server:port/path/to/target/ 。如果用户标识与源计算机相同,则不需要。

    由于默认使用 ssh,因此使用 ~/.ssh/config 文件来处理非标准设置,例如备用端口、不同的用户 ID 或不同的键,会使 rsync 命令更简单。当 DNS 名称难看或也只能使用 IP 时,使用名称很方便。我发现配置文件是一个很好的方法,可以在一个有用的文件中记录我拥有帐户、登录名和使用非标准端口的所有外部系统。

      rsync 有两种不同的方式联系远程系统:
           使用远程 shell 程序作为传输(例如 ssh 或 rsh)或
           直接通过 TCP 联系 rsync 守护进程。远程shell tr​​ansâ
           每当源或目标路径包含单个
           主机规范后的冒号 (:) 分隔符。   

    但这更多是关于 ssh-fu,而不是 rsync-fu。

    rsync 手册页非常全面。许多人发现 explainshell.com 对 rsync 或 find 等复杂命令很有帮助。如果将原始命令插入 explainshell,-p 会作为问题跳出。

    因此,经过上述简化(尤其是使用 ~/.ssh/config 文件,命令变为:

    $ rsync -avru --exclude-from='/home/me/exclude-me.txt' ~/* assistant@assistant.local:2222/home/assistant/

    我会将用户 ID、不友好的主机名、端口放入配置中,然后这样做:

    $ rsync -avz --exclude-from='/home/me/exclude-me.txt' ~/ backsrv:

    ~/* 或 /home/me/* 将丢失以句点开头的任何内容,例如配置文件和 ~/.config/ 目录。如果你想要这些,你应该这样做,那么需要一个特定的正则表达式,或者只使用 /home/me 作为源而不使用任何正则表达式模式。看上面。请注意我没有在目标上指定任何目录?默认情况下,使用用户 ID 的 HOME。并且不要忘记 --dry-run 选项:

            -n, --dry-run 执行试运行,没有
    所做的更改

    如果目标是每日备份,也许使用带有版本备份的工具会有意义吗?

    • 1

相关问题

  • Gnome-terminal 快捷方式在选项卡中打开多个 ssh 连接

  • 通过 SSH 禁用密码访问?

  • ssh 如何使用多个私钥?

  • 如何通过一个 SSH 连接拥有多个终端会话?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve