基于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

输入以上命令后多按几次回车就可以生成本机秘钥,如下图所示:

MD5校验码:f4f9ea3f7bcc3375192be61dc110cb58 1、本软件是定时自动备份软件。 2、备份任务自动拷贝文件文件大小或修改时间变化的文件 3、MyCopy.exe是配置界面,该文件生成配置文件mycopy.ini,并能显示系统运行状态。 4、MyCopyTask.exe是执行拷贝任务的程序,它根据mycopy.ini配置的信息定时进行拷贝,在休眠状态下每5秒钟检查一次是否到达任务指定的拷贝时间。拷贝过程中出现错误,记录log.ini文件,但不会终止拷贝进程。 5、MyCopy.exe配置界面里有“启动”按钮把运行状态改为“运行”,并启动MyCopyTask.exe程序;“终止”按钮把运行状态改为“终止”,MyCopyTask.exe检测到系统状态时为“终止”则自动退出。“退出”按钮退出配置界面,但不会终止MyCopyTask.exe程序。“暂停”也会推出MyCopyTask.exe程序,但下次启动时,从上次暂停的任务开始继续拷贝。 6、MyCopyTask.exe运行时托盘上会显示图标。 7、要实现拷贝任务的自动启动,可以把MyCopyTask.exe加入到windows系统的“启动”菜单中,但配置文件中的运行状态一定是“启动”,否则程序会自动退出。 8、程序拷贝文件时意外终止,可以坚持mycopy.ini文件中的[系统状态]是否有“半个文件”,如果有说明“运行信息”中包含的文件没有拷贝完整。 9、如果因为某种原因错过了任务执行时机的话,拷贝程序会在启动后补回错过的拷贝任务。 10、任务名和文件路径中不能出现","(半角逗号) 11、标准版只记录log.ini文件,健康提示版当任务执行完之后会弹出提示信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值