巧用logrotate实现多份备份

为当前最终发行版之前的所有版本提供支持
回复
deerlux
帖子: 14
注册时间: 2006-10-15 13:04
送出感谢: 0
接收感谢: 0

巧用logrotate实现多份备份

#1

帖子 deerlux » 2006-11-18 2:15

有这样的需求:定期备份CVS仓库中的数据,最好能保留多份备份。开始的时候我是用python编写了一段脚本实现了个功能,将执行备份任务的这个脚本程序用crontab每天调用一次,这个脚本很长但是还不完善。后来看一些关于滚动日志方面的东西,到一个可以利用logrotate机制进行滚动备份的方法。

logrote是用来滚动系统日志的,因为很多软件的日志都是只增不减的,服务器长时间的日志将会浪费大量的磁盘空间(我的apache的日志达到过几G量级),但是系统如果出问题的话还要从日志中分析原因,所以系统还必须存有一段时间的日志。logrote的功能是自动将原有的日志文件aaa.log命名为aaa.log.n(n=1,2,...),实现了日志的滚动,设置好相应的参数便可以实现只保存一段时间的日志(比如4个月)。

应用logrotate的这种机制也可以用来滚动备份其他的东西,假设想要备份的源为/src/sim,备份到/usr/sim_bak/sim_cvs_reposity.tar,具体如下:

在/etc/logrotate.d目录下加一个这样的文件,文件内容如下:

代码: 全选

/usr/sim_bak/sim_cvs_reposity.tar {
	daily
	postrotate
		/bin/tar -cf /usr/sim_bak/sim_cvs_reposity.tar /src/sim
	endscript
	nocompress
}
daily的意思是每天执行一次;postrotate... endscript之间的部分是当滚动完后要执行的操作;nocompress表示无须压缩,如果想要压缩可以写成compress。

系统缺省设置保存4份备份,这样便实现了每天备份cvs reposity,并且一直保有4份备份。

TIPS: UNIX系统管理真是一门艺术:)
aly
帖子: 46
注册时间: 2005-12-08 11:41
送出感谢: 0
接收感谢: 0

#2

帖子 aly » 2006-11-21 9:30

顶下楼主,希望可以看到楼主关系集群管理的文章。看起来logrotate是一直开着的服务吧,有没有办法把它停掉呢
deerlux
帖子: 14
注册时间: 2006-10-15 13:04
送出感谢: 0
接收感谢: 0

#3

帖子 deerlux » 2006-11-21 10:07

还以为没有人关注集群方面的东西呢,那我还是再发一些吧,刚搞到一个bloggerspaces的博客,我也会陆续的写到我的博客上,欢迎访问
http://deerlux.bloggerspaces.com

logrotate是通过crontab来调用的,如果你安装了logrotate并且还想禁用它得话,那只有禁用crontab了。
aly
帖子: 46
注册时间: 2005-12-08 11:41
送出感谢: 0
接收感谢: 0

#4

帖子 aly » 2006-12-01 10:14

恩。明白了。谢谢楼主。另外问下楼主,你的集群是用ubuntu做的吗?
aly
帖子: 46
注册时间: 2005-12-08 11:41
送出感谢: 0
接收感谢: 0

#5

帖子 aly » 2006-12-01 10:22

看了下你的博客,希望可以看到配置集群方面的博文,看起来你是用redhat服务器版本做的吧,
deerlux
帖子: 14
注册时间: 2006-10-15 13:04
送出感谢: 0
接收感谢: 0

#6

帖子 deerlux » 2006-12-01 13:05

是用redhat做的,上过很多Linux论坛,只是觉得这个论坛的人气最旺,就在这里发了。

我是做高性能运算集群的,其实我觉得高性能运算方面集群的门槛很低,只不过感觉好像很多人还没有意识到这方面的应用前景,而微软已经意识到了。
deerlux
帖子: 14
注册时间: 2006-10-15 13:04
送出感谢: 0
接收感谢: 0

#7

帖子 deerlux » 2006-12-01 13:13

是用redhat做的,上过很多Linux论坛,只是觉得这个论坛的人气最旺,就在这里发了。

我是做高性能运算集群的,其实我觉得高性能运算方面集群的门槛很低,只不过感觉好像很多人还没有意识到这方面的应用前景,而微软已经意识到了。
回复

回到 “老旧版本支持”