#
# 后台服务器运行一段时间后,log文件目录可能没有freespace;故此程序检查,当小于500M时,删除旧log
# gem install sys-filesystem https://github.com/djberg96/sys-filesystem
# author:zzsg2005 2012-2-14
require 'sys/filesystem'
include Sys
THE_DIR = "D:/LogServerAPI/log/"
THE_COUNT = 500
##delete a dir:delete file first
# @param a_dir [String]
def my_delete_dir(a_dir)
return if "#{a_dir}"[-1] =="." || "#{a_dir}"[-2]=="."
Dir.foreach("#{a_dir}"[-1]=="/" ? "#{a_dir}" : "#{a_dir}"+"/") do |a_file|
if ("." != "#{a_file}" && ".." != "#{a_file}" )
File.delete "#{a_file}"
end
end
Dir.delete("#{a_dir}"[-1]=="/" ? "#{a_dir}" : "#{a_dir}"+"/")
end
### check if there too much free space for running service
# @param the_dir [a dir ]
def free_space(the_dir)
if get_free_space(the_dir) < THE_COUNT
Dir.chdir(the_dir)
Dir.foreach(the_dir) do | a_dir |
my_delete_dir the_dir+"#{a_dir}"
break if get_free_space(the_dir)>THE_COUNT
end
end
end
#p Sys::Filesystem::VERSION
def get_free_space(the_dir)
stat = Sys::Filesystem.stat(the_dir[0...3])
mb_available = stat.block_size * stat.blocks_free / 1024 / 1024
end
free_space(THE_DIR)
# 后台服务器运行一段时间后,log文件目录可能没有freespace;故此程序检查,当小于500M时,删除旧log
# gem install sys-filesystem https://github.com/djberg96/sys-filesystem
# author:zzsg2005 2012-2-14
require 'sys/filesystem'
include Sys
THE_DIR = "D:/LogServerAPI/log/"
THE_COUNT = 500
##delete a dir:delete file first
# @param a_dir [String]
def my_delete_dir(a_dir)
return if "#{a_dir}"[-1] =="." || "#{a_dir}"[-2]=="."
Dir.foreach("#{a_dir}"[-1]=="/" ? "#{a_dir}" : "#{a_dir}"+"/") do |a_file|
if ("." != "#{a_file}" && ".." != "#{a_file}" )
File.delete "#{a_file}"
end
end
Dir.delete("#{a_dir}"[-1]=="/" ? "#{a_dir}" : "#{a_dir}"+"/")
end
### check if there too much free space for running service
# @param the_dir [a dir ]
def free_space(the_dir)
if get_free_space(the_dir) < THE_COUNT
Dir.chdir(the_dir)
Dir.foreach(the_dir) do | a_dir |
my_delete_dir the_dir+"#{a_dir}"
break if get_free_space(the_dir)>THE_COUNT
end
end
end
#p Sys::Filesystem::VERSION
def get_free_space(the_dir)
stat = Sys::Filesystem.stat(the_dir[0...3])
mb_available = stat.block_size * stat.blocks_free / 1024 / 1024
end
free_space(THE_DIR)