加入收藏 | 返回首页 火狐专题 | 站点地图 | 联系我们
您现在的位置: 火狐软件教程 >> 系统软件 >> 正文

在Linux中利用变量给文件命名

  前不久有一个Linux系统管理员向笔者求助。他说他们在Linux操作系统上部署了一个Oracle 10G的数据库系统。现在他们利用数据库系统中的数据泵工具从系统中备份数据。他们希望每天把这个备份文件复制到一个特定的地方。到这一步为止都没有问题。但是他们希望在复制的过程中,能够利用变量名对这个备份文件进行命名。如按星期几的不同,分别命名为1backup.dmp,2backup.dmp等等。前面的1、2就表示星期几的意思。这么设置的话,一个星期一个轮回。到下个星期一的话,新的备份文件就会把旧的备份文件替换掉。如此的话,备份文件所占用的硬盘空间也就不会无限制的增加上去。

  笔者对于他们为什么不直接采用Oracle提供的备份工具制定备份策略对数据库进行备份感到不解。不过要实现上面这个利用变量来给文件命名的话,还是可以实现的。笔者根据他们企业的需求,给这个系统管理员详细的阐述了实现方法。

  一、文件创建时间与系统时间的关系。

  在利用变量来命名文件名字的时候(如时间变量),需要注意一个问题,就是文件的创建时间与系统时间的关系。如上面这个需求,如果某个文件是在星期一创建的,而在星期二时复制这个文件。那么此时文件的名字应该为多少呢?是按文件的创建时间来命名,还是按复制的时间来命名的。如果从上面这个需求来看,利用文件的创建时间来命名更加的合理。因为这个创建时间才真正体现了数据库的备份时间。

  二、相关命令参数解析。

  如果要把一个文件复制到另外一个地方,同时利用时间变量对其进行重命名的话,那么可以利用如下的命令来实现cp mydb.log "(date %w)"mydb.log。这个命令的意思就是把mydb.log复制到一个特定的位置(当前目录下),并对此进行重新命名。命名的规则就是在原来的文件变量前面加上一个时间参数,这里采用的是星期的时间变量。

  "(date %w)"这个参数就是截取星期几的时间变量。注意,这里的时间是按照文件的创建时间来的,而不是参考文件复制的时间。也就是说,如果这个文件的创建时间是星期三,而复制时间是星期四的话,那么这个变量的值就为3,而不是4。因为文件的创建时间为3。笔者以前刚开始接触Linux操作系统的时候,经常犯这个错误。希望笔者这个过来人常犯的错误,能够引起大家的警惕。

  另外上面这个时间参数,必须要用双引号括起来。不过不这么做的话,那么系统就会提示这个命令有错误。这是一个语法上的错误。所以如果系统管理员在批处理程序中使用这个命令的

[1] [2] 下一页

  • 上一篇教程:
  • 下一篇教程:
  • 推荐教程
    最新教程
    搜索教程
    热门教程