92 lines
1.6 KiB
Ruby
92 lines
1.6 KiB
Ruby
#!/usr/bin/env ruby
|
|
require "date"
|
|
require "fileutils"
|
|
|
|
$NOW = Date.today.strftime("%d-%m-%Y_%H:%M:%S")
|
|
|
|
# borg repository
|
|
$REPO = "/home/dany/backups/borg"
|
|
|
|
# websites folder
|
|
$WEBSITESDIR = "/home/dany/www"
|
|
|
|
# local backup folder for db files
|
|
$BACKUPDIR = "/home/dany/backups"
|
|
|
|
unless File.exist?( $BACKUPDIR )
|
|
FileUtils.mkdir_p( $BACKUPDIR )
|
|
end
|
|
|
|
|
|
# Unterverzeichnisse von www die gebackuppt werden sollen
|
|
liste = [
|
|
"conf",
|
|
"danletard.de",
|
|
"papier-restaurierung",
|
|
"schubertdaniel",
|
|
"x2ero",
|
|
"conworx",
|
|
"rvv/wp-content",
|
|
"rvv/shop"
|
|
]
|
|
|
|
|
|
# websites
|
|
def websites( liste )
|
|
Dir.chdir( $WEBSITESDIR )
|
|
|
|
liste.each do |elem|
|
|
if File.exist?( elem )
|
|
`borg create -C zlib,8 #{$REPO}::#{elem}-{now:%d-%m-%Y_%H:%M:%S} #{elem} --exclude '*mpeg'`
|
|
|
|
else
|
|
puts "File or Directory \"#{elem}\" not found!\n"
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
# davical db backup
|
|
def calendar_db_backup
|
|
Dir.chdir( $BACKUPDIR )
|
|
`pg_dump -U davical_app davical | gzip > kalender-#{$NOW}.psql.gz`
|
|
end
|
|
|
|
# wordpress db backup
|
|
def wp_db_backup
|
|
host= "localhost"
|
|
user= "rvv"
|
|
pass= "owUy9JTWLHQ0"
|
|
#db= "rvv0rettung"
|
|
db= "rvv_dev"
|
|
|
|
do_sql_backup(host,user,pass,db)
|
|
end
|
|
|
|
# oxid db backup
|
|
def oxid_db_backup
|
|
host= "localhost"
|
|
user= "rvv"
|
|
pass= "owUy9JTWLHQ0"
|
|
db= "rvv_shop"
|
|
|
|
do_sql_backup(host,user,pass,db)
|
|
end
|
|
|
|
#
|
|
# Helper function
|
|
#
|
|
def do_sql_backup(host,user,pass,db)
|
|
Dir.chdir( $BACKUPDIR )
|
|
`mysqldump --opt --add-drop-table -h#{host} -u#{user} -p#{pass} #{db} | gzip > #{db}-#{$NOW}.sql.gz`
|
|
end
|
|
|
|
websites( liste )
|
|
wp_db_backup
|
|
oxid_db_backup
|
|
calendar_db_backup
|
|
|
|
FileUtils.chown_R( 1000, 1000, $BACKUPDIR)
|
|
|
|
|