zoukankan      html  css  js  c++  java
  • 服务器远程拷贝文件

    使用情景描述:

    有多台服务器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命令

  • 相关阅读:
    第一个反汇编程序
    边缘网关协议(BGP)
    Servlet 学习小结之doPost()方法和doGet()方法
    extern "C"
    工欲善其事 必先利其器
    我是一个混蛋程序员
    KMP 算法——C
    二分查找——C语言
    大整数加法——C语言
    子字符串查找——C语言
  • 原文地址:https://www.cnblogs.com/xrong/p/4204287.html
Copyright © 2011-2022 走看看