2009-09-28 20 views
0

我想编写一个小脚本,做以下(这我可以运行使用我的crontab):系统日期和字符串之间的时间差异,例如从目录名称?

  • 查找到包含目录,他们的名字都在某些日期格式的目录,例如30-10-09。

  • 将目录名称转换为它所表示的日期(当然,我可以将这些信息作为字符串放入这些目录中的文件中,这对我来说无关紧要)。

  • 将每个日期与当前系统时间进行比较,并找到与当前系统日期具有特定时间差的日期。不到两天。

  • 然后,对该目录中的文件进行一些操作(例如,将它们粘贴在一起并发送电子邮件)。

我知道一个小小的bash脚本,但我不知道bash本身是否可以处理这个问题。我认为我可以在R中做到这一点,但需要运行的服务器没有R.

无论如何,我很好奇学习一点Python或Ruby(这两者都在服务器上)。

有人能指出我在正确的方向什么可能是最好的方式来做到这一点?

回答

1

我会建议使用Python。你需要以下功能:

  • os.listdir为您提供了该目录的内容,为字符串
  • time.strptime(name, "%d-%m-%y")的名单将尝试解析这样的字符串,并返回一个时间的元组。解析失败时会出现ValueError异常。
  • time.mktime将自时代起将时间元组转换为秒。
  • time.time返回秒数
  • smtplib模块可以发送电子邮件,假设您知道使用哪个SMTP服务器。或者,您可以通过子流程模块运行/usr/lib/sendmail(假设/usr/lib/sendmail已正确配置)