ubicloud/rhizome/host/bin/delete-old-serial-logs
2025-09-27 23:11:50 +03:00

25 lines
741 B
Ruby
Executable file

#!/bin/env ruby
# frozen_string_literal: true
require "fileutils"
directory_path = "/var/log/ubicloud/serials"
# Delete files older than 1 day
Dir.glob(File.join(directory_path, "*")).each do |file|
next unless File.file?(file) # Skip directories
file_age_in_hours = (Time.now - File.mtime(file)) / 3600
FileUtils.rm(file) if file_age_in_hours > 24
end
# Reduce the directory size to less than 1GB
files_with_sizes = Dir.glob(File.join(directory_path, "*"))
.select { File.file?(_1) }
.map { {file: _1, size: File.size(_1)} }
.sort_by { _1[:size] }
while files_with_sizes.sum { _1[:size] } > 1 * 1024 * 1024 * 1024 # 1GB in bytes
break unless (largest_file = files_with_sizes.pop)
FileUtils.rm(largest_file[:file])
end