0


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

拷贝文件常用的命令为

scp

rsync

  • 使用 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/
# 拷贝一个文件到多个主机中foriin m-yabin-node m-yabin-node1;doscp /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 iin m-yabin-master1 m-yabin-master2;dorsync -vaz etcd.conf --rsync-path="sudo rsync"$i:/etc/etcd/;doneforiin m-yabin-master1 m-yabin-master2;dorsync -vaz etcd*.pem ca*.pem --rsync-path="sudo rsync"$i:/etc/etcd/ssl/;done

上面命令分别演示了拷贝

etcd.conf

单个文件,以及包含

etcd

ca

的多个

pem

文件的命令。

使用 root 用户拷贝

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

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

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

标签: 服务器 linux ubuntu

本文转载自: https://blog.csdn.net/effort666/article/details/131171979
版权归原作者 effort666 所有, 如有侵权,请联系我们删除。

“linux 拷贝文件到远程服务器的方法”的评论:

还没有评论