代做Shell作业、代写代做Unix、Linux作业、代写国外shell作业

代做Shell作业、代写代做Unix、Linux作业、代写国外shell作业
这个项目是为了创建一个文件同步器。
1.1介绍
许多计算机用户希望从不同的机器上访问他们的文件,最方便的方法是使用单一的文件系统,这个文件系统通过网络上的多台机器安装。机器在不同的网络时,系统共享的文件不能轻易被使用。举个例子,一个用户在两台机器(携带式和台式)上拥有相同的文件,当一个携带式机器上的文件被更改时,而它此时并没有接到网络中,那么它必须手动将新版本复制到系统中(这个系统只含有旧版本的文件),当文件分别在这两个系统中被更改时,这个操作会变得复杂而且会产生许多错误。
文件同步软件是一种自动生成两个相同的文件树,尽可能产生符合用户预期的结果。这个项目的目标就是写一个这样的软件。
1.2 功能
同步器的目的是尽可能接近树a和树b相同的状态,即如果文件是p的A(记为p/A)则存在p的B(记为p /b)也存在并且相同(数据和元数据),反之亦然。我们指的是元数据的类型,文件p的权限,文件p的大小,以及文件p的最后修改日期。
一般来说,如果一个文件在两边都被修改了,那它不可能达到完全同步,我们会说这两个版本间的文件存在冲突。文件同步器处理两个文件树,我们将调用A和B,以及包含该文件的上次成功同步日志,该文件同步日志储存在 $home/.synchro ,包含路径A和路径B;另外,对于每个文件 p/A =p/B , 已经同步而没有冲突的,日志文件包含它的路径,它的文件类型和权限,p的大小和最后一次修改日期。
我们说,当日志文件中有p的条目,且文件p/A (或p/B)有着相同的模式,大小和最后修改的日期(日志中存储的那些),那么文件p/A (或p/B)是符合日志的

1.3 简单同步
同步器并行运行两个树A和B,对于所有p文件,它执行以下操作:
-如果p/A 是一个目录而p/B 是一个普通文件,那么存在冲突。
-否则,如果p/A 和p/B 都是目录,则它会下降递归。
-否则,如果p/A 和p/B 是两个普通文件并且有着相同的模式,大小,和修改日期,那么同步成功,那么什么事都不用做。
-否则,如果如果p/A 与日志文件一致且p/B与日志文件不一致,后一个已经改变,需要把p/B的所有信息复制到p/A上,
相反,如果是p/B 与日志文件一致而p/A与日志文件不一致,则把p/A的所有信息复制到p/B 上去。
-最后,如果p/A 和p/B 都是普通文件,而且它们两个都不符合日志文件(也许是因为日志文件没有p 的入口, 也许是因为它和两个文件的元数据不匹配) 那么存在冲突。
同步器之后会用所有成功同步的普通文件的数据重写日志文件。
有必要注意:这两个树中文件顺序不一定一致,A可能包含文件p和q,B可能包含文件q和p,由您来决定如何处理冲突。我们可以只需显示一次冲突列表。我们可以要求用户做出选择,如果这些文件是文本文件,我们可以显示这两个文件的差异(举个例子,使用命令diff)

1.4包含内容比较的同步器
如果一个文件在两边都有着相同的修改,那么上面的同步器会存在误导性冲突。在两个普通文件存在冲突时,包含内容比较的同步器会进一步深究,比较这两个文件的内容,看看它们是否真的存在冲突。
-如果两个文件的元数据也相同,那么没什么可做的,同步成功了;
-如果两个文件中一个文件的元数据和储存在日志里的相同,那么是另一个文件的元数据改变了,那么只需更改第一个文件的元数据即可,同步也成功。
-如果两个文件的元数据不同,这两个文件是冲突的,但仅限于元数据。它们也许有用,这需要让用户知道;
当然,在上面任意一种同步成功的情况时,需要将结果存储到日志文件中。

2.扩展
有关的扩展全部欢迎。例如,我们能够想到管理符号链接 (用户可以取消引用或同步链接本身)
用户界面由您自行决定。特别地,在冲突发生时,我们可以考虑实现一个用户友好界面。例如,提出是否启动计算差异的工具。(txt文件)我们也可以考虑如何处理可能出现的危机情况:在同步期间树A和树B发生改变。
3.详情
为了简化这个项目的实现,同步器将仅被开发来执行同一个机器的2个文件系统的同步。
http://www.6daixie.com/contents/21/1332.html

我们的方向领域:window编程 数值算法 AI人工智能 金融统计 计量分析 大数据 网络编程 WEB编程 通讯编程 游戏编程多媒体linux 外挂编程 程序API图像处理 嵌入式/单片机 数据库编程 控制台 进程与线程 网络安全  汇编语言 硬件编程 软件设计 工程标准规等。其中代写代做编程语言或工具包括但不限于以下范围:

C/C++/C#代写

Java代写

IT代写

Python代写

辅导编程作业

Matlab代写

Haskell代写

Processing代写

Linux环境搭建

Rust代写

Data Structure Assginment 数据结构代写

MIPS代写

Machine Learning 作业 代写

Oracle/SQL/PostgreSQL/Pig 数据库代写/代做/辅导

Web开发、网站开发、网站作业

ASP.NET网站开发

Finance Insurace Statistics统计、回归、迭代

Prolog代写

Computer Computational method代做

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:[email protected]

微信:codinghelp

猜你喜欢

转载自www.cnblogs.com/studentabroad/p/8969870.html