当前位置: 首页 > news >正文

O2OA如何实现文件跨服务器的备份

O2OA可以外接存储服务器,但是一个存储服务器上怕磁盘损坏等问题导致文件丢失,所以需要实现文件跨服务器备份。

整体过程:

1、SSH免密登录配置

2、增加一个同步推送文件的.sh文件

3、编辑crontab 增加定时任务执行上一步的.sh文件

一、配置SSH免密登录

两台存储服务器之间需要先配置好ssh免密登录。 免密登录通常是通过公钥认证(SSH Key Pair)实现的 , 具体步骤如下:  

1.生成SSH密钥对

如果还没有SSH密钥对,可以通过以下命令生成一个新的密钥对:  

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa: 生成RSA类型的密钥

  • -b 4096: 设置密钥长度为4096位

  • -C "your_email@example.com": 注释,通常用邮箱作为标识

生成过程会提示存储位置(默认是~/.ssh/id_rsa),并可选择是否设置密码(免密登录通常选择不设置密码)。  

2. 将公钥复制到SFTP服务器

使用 ssh-copy-id 命令将公钥复制到目标SFTP服务器:

ssh-copy-id username@remote_host

这会将公钥追加到远程服务器的 ~/.ssh/authorized_keys 文件中。确保远程服务器的authorized_keys文件权限是 600,并且.ssh目录的权限是 700,否则免密登录可能无效。  

3. 验证免密登录

确保你可以通过SSH免密登录到SFTP服务器:

ssh username@remote_host

4. 免密连接的注意事项

服务器设置:确保SFTP服务器允许公钥认证(在/etc/ssh/sshd_config文件中,确保 PubkeyAuthentication yes)。  

二、增加同步文件的.SH文件

1.通过命令新增一个.sh文件

vim sync_to_93.100.sh

在.sh文件中写入同步文件的命令,将本地目录中的文件同步到远程服务器的目录上:

rsync -av --delete /data/o2serverStorage root@172.16.93.100:/data
  • rsync: 这是命令本身,表示使用 rsync 工具进行文件同步。

  • -a: 表示归档模式,等同于 -rlptgoD,这意味着:

    • -r: 递归处理子目录及其文件。

    • -l: 保留符号链接。

    • -p: 保留文件权限。

    • -t: 保留修改时间。

    • -g: 保留文件的组信息。

    • -o: 保留文件的所有者信息。

    • -D: 保留设备文件和其他特殊文件。

  • -v: 表示详细模式,显示同步过程中的详细信息。

  • --delete: 在目标目录中删除那些源目录中不存在的文件。这确保了目标目录与源目录保持一致。

  • /data/o2serverStorage: 这是源目录,即你要从哪个目录同步文件。

  • root@172.16.93.100:/data: 这是目标目录,表示将文件同步到远程服务器 172.16.93.100 上的 /data 目录。root 是远程服务器上的用户名。

2.增加执行权限

使用 chmod 命令添加执行权限。

chmod +x /data/sync_to_93.100.sh

三、增加定时任务

1.执行crontab -e命令

crontab -e

如果你是第一次使用 crontab -e,系统会提示你选择一个编辑器。常见的编辑器有 nanovi 和 vim。选择一个你熟悉的编辑器。例如,选择 nano 可以输入数字对应的选择编号,通常是 1

2.编辑 crontab 文件

可以在这个文件中添加定时任务,每一行代表一个定时任务。

10 23 * * * /data/sync_to_93.100.sh >> /var/log/mycron.log 2>&1
  • 10:表示分钟,这里是10分。

  • 23:表示小时,这里是23点。

  • *:表示日期(1-31),这里的 * 表示每天。

  • *:表示月份(1-12),这里的 * 表示每个月。

  • *:表示星期几(0-7,其中0和7都表示周日),这里的 * 表示每一天。

  • /data/sync_to_93.100.sh:表示要执行的文件。

  • >> /var/log/mycron.log:将标准输出追加到日志文件中。

  • 2>&1:将标准错误输出重定向到标准输出,从而一起追加到日志文件中。

这样配置都完成了,可以进行同步测试。

http://www.lryc.cn/news/469192.html

相关文章:

  • 语音提示器-WT3000A离在线TTS方案-打破语种限制/AI对话多功能支持
  • 使用HAL库的STM32工程,实现DMA传输USART发送接收数据
  • 常用排序算法总结
  • [项目详解][boost搜索引擎#2] 建立index | 安装分词工具cppjieba | 实现倒排索引
  • R语言编程
  • Mysql主主互备配置
  • 如何预防数据打架?数据仓库如何保持指标数据一致性开发指南(持续更新)
  • 我谈Canny算子
  • 算法的学习笔记—平衡二叉树(牛客JZ79)
  • SSM学习day01 JS基础语法
  • kubeadm快速自动化部署k8s集群
  • 解决JAVA使用@JsonProperty序列化出现字段重复问题(大写开头的字段重复序列化)
  • 分布式理论基础
  • Java应用程序的测试覆盖率之设计与实现(二)-- jacoco agent
  • 【机器学习】13. 决策树
  • 《a16z : 2024 年加密货币现状报告》解析
  • Laravel 使用Simple QrCode 生成PNG遇到问题
  • 一站式学习 Shell 脚本语法与编程技巧,踏出自动化的第一步
  • 批处理操作的优化
  • 机器视觉运动控制一体机在DELTA并联机械手视觉上下料应用
  • RHCE-web篇
  • Java - 人工智能;SpringAI
  • MFC开发,给对话框添加定时器
  • LED灯珠:技术、类型与选择指南
  • C语言二刷
  • C++模块化程序设计举例
  • 毕业设计选题:基于Python的招聘信息爬取和可视化平台
  • 机器人学习仿真框架
  • 力扣每日一题打卡 3180. 执行操作可获得的最大总奖励 I
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备视频报警功能详解