拷贝文件常用的命令为 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/
# 拷贝一个文件到多个主机中
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
单个文件,以及包含 etcd
和 ca
的多个 pem
文件的命令。
使用 root 用户拷贝
当需要拷贝文件到需要 root 权限的位置时,可以考虑使用 root 用户进行拷贝,ubuntu 配置 root 用户允许远程登录的方式:文章来源:https://www.toymoban.com/news/detail-593399.html
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 命令拷贝即可。文章来源地址https://www.toymoban.com/news/detail-593399.html
到了这里,关于linux 拷贝文件到远程服务器的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!