Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- require 'net/ftp'
- SERVER = ""
- LOGIN = ""
- PASSWORD = ""
- # First, dump the database.
- filename = "database-#{Time.now.strftime("%Y-%m-%d-%H")}.sql"
- command = "pg_dump 'postgres://user:password@server:port/db' > #{filename}"
- result = system(command)
- # Then save the dump over ftp.
- Net::FTP.open(SERVER, LOGIN, PASSWORD) do |ftp|
- ftp.putbinaryfile(File.new(filename))
- end
- # Keep 10 backups on the backup server.
- Net::FTP.open(SERVER, LOGIN, PASSWORD) do |ftp|
- files = ftp.nlst
- files.pop(10)
- files.each { |f| ftp.delete(f) }
- end
- # Keep 3 backups locally.
- files = Dir.glob("database-*")
- files.sort!
- files.pop(3)
- File.unlink(*files)
Add Comment
Please, Sign In to add comment