随着时间的推移,我电脑上的文件越来越多,但是我电脑的磁盘空间又很小(只有一个512G的固态硬盘),因此不得不经常将电脑上的文件备份到我的移动硬盘中,然后删除暂时不需要的文件,以此来腾出多余的存储空间。可手动备份了几次之后感觉这样操作实在是太过麻烦,渐渐的又懒得去备份了。直到有一天突然灵光一现:为什么不用FME来帮我实现文件自动备份呢?想到这里突然兴奋了起来,说干就干!
第一步:制作文件备份模板
首先利用FME Workbench搭建一个文件备份的模板,这个模板比较简单,实现的原理主要是利用“Directory and File Pathnames”这个格式的读模块来读取待备份文件夹里的每个文件信息,然后用同样的方式读取目标文件夹里的每个文件信息(因为每次都是往同一个文件夹里复制文件,所以目标文件夹中总是存在着以前备份过的文件)。接着利用FeatureMerger转换器对两个文件夹里的各个文件进行比对,若是文件名称不相同,则说明该文件以前并未备份过,可直接将其进行复制;若是文件名称相同,则进行下一步操作。利用SubstringExtractor转换器提取文件的修改日期,然后对比相同文件名称的修改时间是否一致,若完全一致,则说明该文件之前备份过且之后也并未进行过修改;若时间不一致,则说明该文件以前备份过,但后来又进行了修改,因此仍然需要将修改后的文件进行复制。
另外值得注意的是,在添加“Directory and File Pathnames”这个格式的读模块的时候,有两个参数需要更改一下。如果文件夹中包含有子文件夹,则需要将“Recurse Into Subfolders(递归到子文件夹)”设置为“Yes”。以及为了读取到各个文件的文件信息(如:文件的大小、创建时间、修改时间等),则同样需要将“Retrieve File Properties(获取文件属性)”参数设置为“Yes”。如下图所示:
最终做好的模板如下图所示:
第二步:将做好的模板发布到FME Server上
将模板发布到FME Server上有两种方式:
第一种是点击菜单栏上的【File】按钮,然后再点击【Publish to FME Server】:
第二种则是直接点击工具栏上的【Publish to FME Server】快捷按钮:
接着添加FME Server网络连接:
填写Server的URL地址和登录用户名及密码:
点击【Authenticate】,然后在接下来弹出的界面中可以点击【Create a new repository】按钮,创建一个新的模板存储库,并为其设置存储库名称和对应描述:
最后勾选需要的服务,点击【Publish】,即可将模板成功发布到FME Server上。
第三步:在FME Server中设置文件备份自动化任务
首先,我们可以利用FME Server的“Schedules(计划任务)”功能来实现文件备份模板的定时运行:
打开浏览器,登录进入FME Server界面,点击【Build Schedule】,为我们的文件备份模板设置一个任务名称(Name)、计划类型(Schedule Type)、重复间隔(Repeat every)和日期范围(Date Range)等。
然后从模板库中选择我们刚刚上传的文件备份模板,并设置好模板参数,最后点击【OK】,就可以实现指定路径下的文件定期自动备份了。
但是上面的方法并不是我想要的结果,因为我并不是每天都把移动硬盘插在电脑上的。那有没有办法可以在我知道硬盘已经插在电脑上,而我又不在电脑旁边,但是又很想备份文件呢?答案是肯定的,我们可以利用Server的自动化功能,通过发送邮件来触发模板的运行,从而达到我们随时随地运行模板的目的。
点击“Automations”菜单栏下的【Build Automation】,设置触发器为“Email received(IMAP)”,然后填写接收邮件的服务器、邮箱账户和密码等。
具体参数设置如下:
PollInterval(轮询间隔):访问IMAP服务器以获取电子邮件的频率;
Emailsto Fetch(要获取的电子邮件):如果选择仅新电子邮件,则只获取收到的未读邮件。
SubjectFilter(主题过滤器):根据指定的邮件主题过滤邮件。如果为空,则不应用过滤器,并获取所有的未读邮件。
设置接下来的行动为“Runa workspace(运行一个工作空间)”,并设置好模板参数:
当模板运行成功后,如果我们希望能收到邮件通知的话,就可以在模板运行成功的端口设置下一步的行动为“Send an email(发送邮件)”,并填写邮件参数设置,如下图所示:
如果模板运行失败了的话,我们同样可以设置一个邮件通知,提示我们“模板运行失败”。设置方法同上一步一样。
最终完成的自动化设置如下图所示:
接下来我们可以测试一下自动化运行的效果。首先我用手机给自己发送一封主题为“Backup”的邮件:
等待一段时间后,我的手机就收到了一封邮件通知,提示我文件已经备份成功了。
哈哈哈,这样以后我就可以随时随地想备份就备份了。赶紧开动我们的脑筋,让FME帮我们实现更多自动化办公的操作吧!