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.mzph.cn/pingmian/57795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全面指南:Visual Studio Code 的下载、安装、使用与插件管理

活着,就是一场盛大的遇见,与世界,与自己,与每一个瞬间的奇迹 文章目录 前言下载 Visual Studio Code安装 Visual Studio CodewindowsmacOSLinux 使用 Visual Studio CodeVisual Studio Code 插件安装方法语言支持代码格式化与美化…

vue3项目中引入阿里图标库

开篇 本篇的主题是在vue3项目中引入阿里图标库 步骤 注册阿里图标库账号(阿里图标),并创建项目 将图标加入项目中 将需要的图标先加入购物车,随后加入到项目中 生成项目代码 在项目中生成项目代码,便于后续复制到vue项目中 ## 在vue3项目…

HTML5教程(一)- 网页与开发工具

1. 什么是网页 网页 基于浏览器阅读的应用程序,是数据(文本、图像、视频、声音、链接等)展示的载体常见的是以 .html 或 .htm 结尾的文件 网站 使用 HTML 等制作的用于展示特定内容相关的网页集合。 2. 网页的组成 浏览器 代替用户向服务…

C#中的委托、匿名方法、Lambda、Action和Func

委托 委托概述 委托是存有对某个方法的引用的一种引用类型变量。定义方法的类型,可以把一个方法当作另一方法的参数。所有的委托(Delegate)都派生自 System.Delegate 类。委托声明决定了可由该委托引用的方法。 # 声明委托类型 委托类型声…

现代Web酒店客房管理:基于Spring Boot的实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

C#与Sqlite数据库

1,一般的访问方式。 1.1,连接语句。 //sqlite 连接,支持相对位置,也支持绝对位置 Data Source../../Database/cater.db// 连接数据库,FailIfMissingfalse时若文件不存在会自动创建 string connStr "DataSourcetest.db;Vers…

Linux相关概念和易错知识点(16)(Shell原理、进程属性和环境变量表的联系)

Shell原理及其模拟实现 在认识进程exec系列函数、命令行参数列表、环境变量之后,我们可以尝试理解一下Shell的原理,将各方知识串联起来,让Shell跑起来才能真正理解这些概念。我会以模拟Shell执行的原理模拟一个Shell。途中配上相关讲解。 1…

基于flask和neo4j的医疗知识图谱展示问答系统

如果你仍在为毕业设计的选题发愁,或者想通过技术项目提升专业实力,这个基于Flask和Neo4j的医疗知识图谱展示与问答系统,绝对是个不错的选择! 项目亮点大揭秘: 知识图谱与问答结合:我们采用了医疗场景下的知…

时间数据可视化基础实验(南丁格尔玫瑰图)——Python热狗大胃王比赛数据集

【实验名称】 实验一:时间数据的可视化 【实验目的】 1.掌握时间数据在大数据中的应用 2.掌握时间数据可视化图表表示 3. 利用python程序实现堆叠柱形图的可视化 【实验原理】 时间是一个非常重要的维度与属性。时间序列数据存在于社会的各个领域,如&a…

【Power Query】List.Select 筛选列表

List.Select 筛选列表 ——在列表中返回满足条件的元素 List.Select(列表,判断条件) 不是列表的可以转成列表再筛选&#xff0c;例如 Record.ToList 不同场景的判断条件参考写法 (1)单条件筛选 列表中小于50的数字 List.Select({1,99,8,98,5},each _<50) (2)多条件筛…

高低温探针台的工作原理及其构造

高低温探针台是一种用于材料科学、物理、化学等领域的实验设备&#xff0c;主要用于在高温和低温环境下对材料进行各种实验和研究。 高低温探针台的工作原理是将样品放置在加热和冷却组件上&#xff0c;然后使用各种测量仪器对其进行实验和测量。具体来说&#xff0c;其工作流程…

NVR批量管理软件/平台EasyNVR多个NVR同时管理支持UDP和TCP传输协议

随着科技的飞速发展&#xff0c;视频技术已成为现代社会不可或缺的一部分&#xff0c;广泛应用于安防监控、娱乐传播、在线教育、电商直播等多个领域。在这一背景下&#xff0c;NVR管理平台EasyNVR作为一款高效、灵活的视频监控管理系统&#xff0c;正经历着前所未有的发展机遇…

iOS 本地存储地址(位置)

前言: UserDefaults 存在沙盒的 Library --> Preferences--> .plist文件 CoreData 存在沙盒的 Library --> Application Support--> xx.sqlite 一个小型数据库里 (注:Application Support 这个文件夹已开始是没有的,只有当你写了存储代码,运行之后,目录里才会出…

MT-Pref数据集:包含18种语言的18k实例,涵盖多个领域。实验表明它能有效提升Tower模型在WMT23和FLORES基准测试中的翻译质量。

2024-10-10&#xff0c;由电信研究所、里斯本大学等联合创建MT-Pref数据集&#xff0c;它包含18种语言方向的18k实例&#xff0c;覆盖了2022年后的多个领域文本。通过在WMT23和FLORES基准测试上的实验&#xff0c;我们展示了使用MT-Pref数据集对Tower模型进行对齐可以显著提高翻…

C++list

1.迭代器的功能以及性质 功能有iterator&#xff0c;reverse_iterator&#xff0c;const_iterator&#xff0c;const_reverse_iterator 性质有单向&#xff0c;双向和随机&#xff0c;单向的迭代器只能操作&#xff0c;双向只能/--俩种&#xff0c;随机则可以执行/--//-的操作…

【C++篇】栈的层叠与队列的流动:在 STL 的韵律中探寻数据结构的优雅之舞

文章目录 C 栈与队列详解&#xff1a;基础与进阶应用前言第一章&#xff1a;栈的介绍与使用1.1 栈的介绍1.2 栈的使用1.2.1 最小栈1.2.2 示例与输出 1.3 栈的模拟实现 第二章&#xff1a;队列的介绍与使用2.1 队列的介绍2.2 队列的使用2.2.1 示例与输出 2.3 队列的模拟实现2.3.…

[快速阅读八] Matlab中bwlookup的实现及其在计算二值图像的欧拉数、面积及其他morph变形中的应用。...

以前看过matlab的bwlookup函数&#xff0c;但是总感觉有点神秘&#xff0c;一直没有去仔细分析&#xff0c;最近在分析计算二值图像的欧拉数时&#xff0c;发现自己写的代码和matlab的总是对不少&#xff0c;于是又去翻了下matlab的源代码&#xff0c;看到了matlab里实现欧拉数…

JS轮播图实现自动轮播、悬浮停止轮播、点击切换,下方指示器与图片联动效果

代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

计算机网络原理总结C-网络层

网络层 网络层提供的两种服务网际协议IP 虚拟互连网络IP地址子网掩码&#xff08;无分类编址CIDR&#xff09;IP地址和MAC地址IP数据报格式&#xff08;路由&#xff09;转发分组的流程 因特网的路由选择协议&#xff08;动态路由协议&#xff09; 网际控制报文协议ICMPIP多播…

麒麟v10 arm64 部署 kubesphere 3.4 修改记录

arm64环境&#xff0c;默认安装 kubesphere 3.4 &#xff0c;需要修改几个地方的镜像&#xff0c;并且会出现日志无法显示 1 fluentbit:v1.9.4 报错 <jemalloc>: Unsupported system page size Error in GnuTLS initialization: ASN1 parser: Element was not found. &…