基于Shell脚本实现文件定时拷贝

需要开发一个需求,将服务器A的 批量数据文件 定时同步 到远程服务器B中,这里我们的基本思路为:

  • 服务器A:存放数据文件
  • 服务器B:部署shell脚本,从服务器A中拉取文件至本地目录中。

注意:这里也可以将shell脚本部署在数据服务器上,但是我们这里数据服务器A比较重要,最好不要部署程序。因此,我们将shell脚本部署在了目标服务器B上。

因为涉及批量数据的迁移拷贝,涉及的关键技术点包括:

  • 设置服务器B通过秘钥访问服务器A
  • 编写shell脚本
  • 设置crontab

1、通过秘钥访问服务器

我们知道基于linux的scp 命令可以实现本地与远程服务器间的文件传输,具体可以参考博客:linux 基于scp命令实现本地与远程服务器间文件拷贝

但是单个scp命令的执行需要手动输入服务器的密码,对于批量文件拷贝来说不可行。批量文件的迁移使用脚本来执行,因此这里我们使用秘钥的方式访问远程服务器。

  1. 进入服务器B 的~/.ssh目录查看是否有生成私钥和公钥。如果秘钥不存在则需要执行以下命令:
ssh-keygen

输入以上命令后多按几次回车就可以生成本机秘钥,如下图所示:
在这里插入图片描述
2. 通过cd命令进入到~/.ssh目录,输入ls命令确认秘钥是否正常生成,如下图:

cd ~/.ssh

在这里插入图片描述
可以看到秘钥已经生成。

  1. 将服务器A添加至服务器B的授权列表中。
ssh-copy-id -i id_rsa.pub user@hostname

user@hostname对应数据服务器A的用户名及IP地址。
在这里插入图片描述

  1. 完成授权后,可以通过ssh命令测试下是否可以直接登录。
    在这里插入图片描述
    可以看到,这里无需密码即可登录到服务器A上,说明我们已经实现了通过秘钥访问远程服务器。

2、编写Shell脚本

[待更新…]

3、Crontab定时任务

[待更新…]

参考资料

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值