17 übung
This commit is contained in:
parent
40ceb06301
commit
9e847cb8eb
@ -1,91 +0,0 @@
|
||||
#!/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)
|
||||
|
||||
|
@ -1,34 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function db_backup {
|
||||
|
||||
# Vars
|
||||
host=localhost
|
||||
user=XXXXXXX
|
||||
pass=XXXXXXX
|
||||
db=wordpress
|
||||
|
||||
echo 'DB Export ------> '
|
||||
mysqldump --opt --add-drop-table -h$host -u$user -p$pass $db | gzip > wp-db.sql.gz
|
||||
}
|
||||
|
||||
function file_backup {
|
||||
backupfile="wordpress-backup.tar"
|
||||
|
||||
echo 'File Backup --- building tar File...'
|
||||
tar -cf $backupfile ~/wp*
|
||||
echo '+DONE'
|
||||
}
|
||||
|
||||
|
||||
echo '-------------------------------------------'
|
||||
echo 'Tolles Backup Script'
|
||||
echo '-------------------------------------------'
|
||||
|
||||
backupdir=backup
|
||||
|
||||
cd ~ ; mkdir $backupdir && cd $backupdir || { echo "FEHLER!!!!"; exit 1 }
|
||||
|
||||
# Funktionsaufrufe
|
||||
db_backup
|
||||
file_backup
|
8
beispiele/17/wp-backup/backup.timer
Normal file
8
beispiele/17/wp-backup/backup.timer
Normal file
@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Tägliches Wordpress Backup
|
||||
|
||||
[Timer]
|
||||
OnCalender=daily
|
||||
|
||||
[Install]
|
||||
WantedBy=basic.target
|
46
beispiele/17/wp-backup/install.sh
Normal file
46
beispiele/17/wp-backup/install.sh
Normal file
@ -0,0 +1,46 @@
|
||||
# install script
|
||||
|
||||
function dialog1 {
|
||||
BACKUPFILE=$(whiptail --inputbox "Backup Dateiname ohne Endung " 8 78 Name --title "Dateiname" 3>&1 1>&2 2>&3)
|
||||
check_exit_status
|
||||
}
|
||||
|
||||
function dialog2 {
|
||||
BACKUPZIEL=$(whiptail --inputbox "Backup Ziel?" 8 78 localhost --title "rsync Backupziel" 3>&1 1>&2 2>&3)
|
||||
check_exit_status
|
||||
}
|
||||
|
||||
function check_exit_status {
|
||||
exitstatus=$?
|
||||
|
||||
if [ $exitstatus = 1 ]; then
|
||||
echo "User selected Cancel."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Inhalt von backup.service
|
||||
function install_service {
|
||||
|
||||
# das HERE Document darf nicht eingerückt sein.
|
||||
SERVICE=$(cat <<EOF
|
||||
[Unit]
|
||||
Description=Tägliches Wordpress Backup
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/wp-backup.sh "$BACKUPFILE" "$BACKUPZIEL"
|
||||
EOF
|
||||
)
|
||||
|
||||
cp wp-backup.sh /bin/
|
||||
cp backup.timer /etc/systemd/system/
|
||||
echo "$SERVICE" > /etc/systemd/system/backup.service
|
||||
systemctl enable --now backup.timer
|
||||
}
|
||||
|
||||
|
||||
#funktions aufrufe
|
||||
dialog1
|
||||
dialog2
|
||||
install_service
|
32
beispiele/17/wp-backup/wp-backup.sh
Normal file
32
beispiele/17/wp-backup/wp-backup.sh
Normal file
@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
BACKUPFILE=$1
|
||||
BACKUPZIEL=$2
|
||||
|
||||
NOW="$(date +"%d-%m-%Y")"
|
||||
|
||||
function db_backup {
|
||||
# Vars
|
||||
host=localhost
|
||||
user=XXXXXXX
|
||||
pass=XXXXXXX
|
||||
db=wordpress
|
||||
|
||||
mysqldump --opt --add-drop-table -h$host -u$user -p$pass $db wp-db.sql
|
||||
}
|
||||
|
||||
function file_backup {
|
||||
cd /home/dany/local-dev/wp
|
||||
tar -cJf ~/tmp/$BACKUPFILE-$NOW.tar.xz wp-content/themes wp-content/uploads #./wp-db-$NOW.sql
|
||||
}
|
||||
|
||||
function upload {
|
||||
/usr/bin/rsync -aze 'ssh -p 64322 -i /home/dany/.ssh/server-key' /home/dany/tmp/$BACKUPFILE-$NOW.tar.xz server-name-hier:/home/dany/backups/* >> backup.log 2>&1
|
||||
}
|
||||
|
||||
# Funktionsaufrufe
|
||||
dialog1
|
||||
dialog2
|
||||
db_backup
|
||||
file_backup
|
||||
upload
|
Loading…
Reference in New Issue
Block a user