服务器远程拷贝文件

情到浓时终转凉″ 提交于 2019-12-16 21:07:21

使用情景描述:

有多台服务器A、B、C,每台服务器的程序每小时都生成大量的日志文件,日志处理程序部署在服务器A,服务器B和C生成的日志需要拷贝到远程服务器A上处理。那么B和C生成的日志文件如何以小时为单位拷贝到远程服务器上呢?
常用方法有ftp和scp,这里主要叙述scp(secure copy)的使用。

scp的使用

scp的命令格式如下:

scp local_file remote_username@remote_ip:remote_folder

使用scp命令,每次使用都需要手动输入远程主机用户remote_username的密码。但根据使用情景是要以shell脚本的方式来进行拷贝的crontab定时任务。如何使用shell脚本自动输入远程主机密码来执行scp命令?下面记录两种方式:

一.用expect 实现scp无密码拷贝

设置SSH,SCP不用输入密码
本地主机拷贝文件到远程主机

二.SSH建立密钥通道

1.在本地主机生成密钥对

ssh-keygen -t rsa

这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下

2.将公钥添加到远程主机的 authorized_keys 文件中 

将文件上传到远程主机中 

scp ~/.ssh/id_rsa.pub root@192.168.1.23:/root/ 

SSH到登陆到远程主机,将公钥追加到 authorized_keys 文件中 

cat /root/id_rsa.pub >> /root/.ssh/authorized_keys

3.测试使用,无须输入密码可使用scp命令

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!