gpt4 book ai didi

linux - 两个非登录用户之间的rsyncing

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:09 24 4
gpt4 key购买 nike

我有两台机器AB,它们都有3个用户:

  • root(我不知道密码可以用sudo su -切换)
  • login(用于ssh进入两台机器,有密码,是sudoer)
  • mysql(运行 mysql 服务器的标准非交互式用户)

我需要做的是将属于mysql的数据目录(dir)从机器A同步到机器B.

显然我不能这样做:

rsync -avpE /dir/ B:/dir/

因为 A 和 B 都没有对 dir 的读取权限

我做不到:

sudo -u mysql rsync -avpE /dir/ B:/dir/

因为现在 A 可以访问 dir 但 B 不能。

那么是否可以构造一个 rsync 命令,以便我在不使用一些临时空间的情况下复制数据?

最佳答案

rsync 有一个名为 --rsync-path 的选项可以帮助您:

$ rsync |& grep rsync-path
--rsync-path=PROGRAM specify the rsync to run on the remote machine

这个想法是要求(本地)rsync ssh 到远程机器(作为用户 login)然后当它想调用 rsync 在远程机器上,让它调用 sudo -u mysql rsync 而不是普通的 rsync。所以像这样:

sudo -u mysql rsync -avpE --rsync-path="sudo -u mysql rsync" /dir/ login@B:/dir/

当然,要实现这一点,远程计算机上的用户 login 必须能够 sudo -u mysql 而无需密码。

关于linux - 两个非登录用户之间的rsyncing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39335388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com