Linux下文件备份和同步的工具软件
1)通过本次实训,熟悉软件项目配置管理相关内容;
2)熟悉shell编程 makefile的应用。
3)掌握文件IO、标准IO库的使用,掌握Linux下多进程、多线程应用程序设计方法。
实验要求:
设计实现一个Linux下文件备份和同步的工具软件,用户界面友好,对比清晰。
基本功能模块如下:
1)备份A目录下的所有文件(包括子目录)到某一给定的B目录路径下。它将文件从A复制到B,复制完A、B两目录结构和内容完全一致。如果B目录中相应位置已经有内容,则移除后再复制。
2)可将A目录的内容与B目录进行同步,会涉及以下三种同步方式。
(1) B目录的内容同步到A。
在A中存在且在B中不存在的文件或目录要在A中删除;
在A中不存且在B中存在的部分要复制到A;
A,B同时存在同名但内容不一致的文件要以B中的为准。
(2)A同步到B。与前一种情况相反。
(3)AB双向同步。 AB中的内容取A、B下文件和目录的并集。 当AB中出现同名但内容不同的文件,以预设的冲突解决策略(配置文件)采用相应的处理方式,可以有:(a)保留修改时间新的文件(b)手动处理(逐个让用户选择以AB中哪个为准)等。
3)多进程:用多进程实现多个备份任务同时进行(备份任务可提前写入配置文件,需要限制开启的进程最大数目)。
4)多线程:当单个文件大小>500M(可在配置文件中配置此限值)时,开启多线程备份功能(线程数可配置)。
5)进度条显示备份或同步过程(或百分比显示)
假设现有一个项目,代码框架如下:
MyProject/:BUILD/Multiproduct/***.shRELEASE/***.so ***.a ***.outInclude/***_pub.hModuleA/***.c ***.h makefileModuleB/***.c ***.h makefileMain.cMain.hMakefile
源码传送门
传送门:/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111