如何为大规模数据pipe理编写健壮的自动化脚本?

我一直需要将相当大量的数据(可能平均大约1TB /天+ 60TB到目前为止,计数)自动化到一个单独的远程存储系统。

到目前为止,我已经通过编写自定义的python代码来完成这个工作,因为在合适的networking传输块中包装数据以及可用的协议(在我们的例子中是GridFTP)有一些特殊的挑战。

我想知道是否有任何材料(文章,博客文章或书籍 – 如果它们真的很好)提供最佳实践和/或有关如何以强健和容错的方式编写数据pipe理脚本的提示?

更新/澄清:我要补充的是,我们已经或多或less地解决了file upload问题(比较远程和本地校验和)。 不过,我们需要处理更多的事情,因为我们为HPC中心的所有项目提供了一个类似“解决scheme”的“保pipe箱”,所以我们基本上都pipe理着这个保pipe箱界面的所有内容,直到用户想要从存储中取回特殊文件

因此,我们需要处理项目,归档事件,所有文件的元数据,包括创build校验和等等,所有这些都以一种完全自动化的方式进行,一个归档事件可以由5TB组成,大小的文件。

这就要求我们的自动化软件采用强大的容错方式,因为我们不能真正手动跟踪每一个存储的文件。

因此,我正在寻找更多用于编写软件(特别是数据处理/系统调用)的一般提示/最佳实践,而不仅仅是如何validation上传。

我希望看到的最佳实践和暗示的东西,例如:exception处理,日志logging,validation,自动化testing等等,以及如何将所有这些结合起来以获得您可以依赖的解决scheme,而无需持续观察(当你需要的时候,你应该得到一个邮件等)。

我会使用经典的校验和方法,与tar档案。

  1. 创build一个焦油
  2. 计算SHA-1校验和
  3. Transfert
  4. 比较校验和

足够简单的脚本,独立的协议,绝对是最可靠的方法。

为了logging,我觉得我现在至less发现了一些东西(但如果有的话,还要多寻找!):

  • IBM DeveloperWorks文章:“构build智能的无人看pipe脚本”