-
-
Save freels/aee52f94313dc714332ef5e433e89235 to your computer and use it in GitHub Desktop.
Clean up the bloated Backblaze bzfileids.dat
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
# Place in `/Library/Backblaze.bzpkg/bzdata/bzbackup`, and run with: | |
# | |
# ``` | |
# ruby purge_bzfileids.rb | |
# ``` | |
# | |
# It will process `bzfileids.dat` placing any file that exists in | |
# `bzfileids.dat-found` and any missing file in `bzfileids.dat-missing`. You can | |
# then back up your original file and replace it with `bzfileids.dat-found`. | |
# | |
# My original file was almost 1.4GB. It had grown so large that the backup would | |
# cause all my fans spin and it never seemed to complete. Backblaze support | |
# suggested I delete my entire backup with them and start over. After running | |
# this script, my new `bzfileids.dat` file is 301MB. Still huge, but about 1/5th | |
# the size. The backup seemed to go much more smoothly. | |
missing = File.open('./bzfileids.dat-missing', 'a+b') | |
found = File.open('./bzfileids.dat-found', 'a+b') | |
File.open('./bzfileids.dat').each_with_index do |line, index| | |
split = line.match(/^([a-z0-9_-]+)\s+(.+)$/) | |
if split | |
path = split[2] | |
if File.exist?(path) | |
found.puts line | |
else | |
missing.puts line | |
end | |
else | |
puts "#{index} Invalid line found: #{line}" | |
end | |
end | |
missing.close | |
found.close |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment