linux 拷贝文件到远程服务器的方法

拷贝文件常用的命令为 scprsync

  • 使用 scp 拷贝文件的时候,如果不是 root 用户无法直接拷贝到没有权限写入的文件夹。一般常用的做法是先将文件拷贝到 home 文件夹下,然后再远程使用 sudo 命令进行复制。
  • 使用 rsync 拷贝文件时,如果远程用户配置了 sudo 免密,则可以远程复制文件到没有权限的文件夹。

配置 sudo 免密执行

shell复制代码sudo tee -a /etc/sudoers << EOF
yabin ALL=NOPASSWD:ALL

EOF

将其中的 yabin 替换成自己的用户名即可。

使用 scp 命令拷贝

shell复制代码# 将文件夹拷贝到 home 的临时文件夹中
scp -r /data/work/etcd-${RELEASE}-linux-amd64/etcd* m-yabin-master1:~/etcd-temp/
# 拷贝一个文件到多个主机中
for i in m-yabin-node m-yabin-node1; do scp /data/work/etcd-${RELEASE}-linux-amd64/etcd* $i:~/etcd-temp/;done

示例中:

  • m-yabin-master1,m-yabin-node,m-yabin-node1 为远程主机名,可以替换成远程主机 ip。
  • 对于单个文件的拷贝,去掉 -r 参数即可。

使用 rsync 命令拷贝

rsync 在配置 sudo 免密执行以后,可以直接拷贝文件到需要 sudo 的文件夹下,不过需要添加 --rsync-path="sudo rsync" 参数,如下所示:

shell复制代码for i in m-yabin-master1 m-yabin-master2;do rsync -vaz etcd.conf --rsync-path="sudo rsync" $i:/etc/etcd/;done
for i in m-yabin-master1 m-yabin-master2;do rsync -vaz etcd*.pem ca*.pem --rsync-path="sudo rsync" $i:/etc/etcd/ssl/;done

上面命令分别演示了拷贝 etcd.conf 单个文件,以及包含 etcdca 的多个 pem 文件的命令。

使用 root 用户拷贝

当需要拷贝文件到需要 root 权限的位置时,可以考虑使用 root 用户进行拷贝,ubuntu 配置 root 用户允许远程登录的方式:

shell复制代码# 给 root 用户设置密码,这样就可以以 root 身份登录了
sudo passwd root
# 修改 /etc/ssh/sshd_config 文件加上下面这一句以允许 root ssh 远程登录
PermitRootLogin yes
# 重启 ssh 服务
sudo systemctl restart sshd
# 如果想删除 root 用户登录,只需要清除密码即可
sudo passwd -l root

设置完毕之后,直接用 root 用户+ scp 命令拷贝即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值