Benutzer-Werkzeuge

Webseiten-Werkzeuge


rsnapshot

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
rsnapshot [2017-02-22 16:53:56] manfredrsnapshot [2017-02-23 08:00:42] (aktuell) manfred
Zeile 1: Zeile 1:
 +====== rsnapshot ======
 +
 +  * [[http://rsnapshot.org/]]
 +  * [[https://wiki.ubuntuusers.de/rsnapshot/]]
 +  * [[http://www.mikerubel.org/computers/rsync_snapshots/]]
 +
 +==== MySQL-Sicherung per LVM-SnapShot ====
 +
 +root@dbhost:~# lvs
 +    LV     VG     Attr      LSize    Pool Origin Data%  Move Log Copy%  Convert
 +    backup backup -wi-ao--- 1000,00g
 +    mysql  trusty -wi-ao---  200,00g
 +    root   trusty -wi-ao---   20,00g
 +    swap   trusty -wi-ao---  952,00m
 +
 +root@dbhost:~# df -h
 +  Filesystem                 Size  Used Avail Use% Mounted on
 +  udev                       3,9G   12K  3,9G   1% /dev
 +  tmpfs                      799M  444K  798M   1% /run
 +  /dev/dm-0                   20G  2,3G   17G  13% /
 +  none                       4,0K      4,0K   0% /sys/fs/cgroup
 +  none                       5,0M      5,0M   0% /run/lock
 +  none                       3,9G      3,9G   0% /run/shm
 +  none                       100M      100M   0% /run/user
 +  /dev/vda1                  547M   76M  431M  15% /boot
 +  /dev/mapper/trusty-mysql   197G   11G  187G   6% /var/lib/mysql
 +  /dev/mapper/backup-backup  985G   60G  925G   7% /var/cache/rsnapshot
 +
 +<file bash /etc/mysql/mysql.conf.d/mysqld.cnf>
 +# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 +#
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
 +# the Free Software Foundation; version 2 of the License.
 +#
 +# This program is distributed in the hope that it will be useful,
 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +# GNU General Public License for more details.
 +#
 +# You should have received a copy of the GNU General Public License
 +# along with this program; if not, write to the Free Software
 +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 +
 +#
 +# The MySQL  Server configuration file.
 +#
 +# For explanations see
 +# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
 +
 +[mysqld]
 +pid-file        = /var/run/mysqld/mysqld.pid
 +socket          = /var/run/mysqld/mysqld.sock
 +#datadir        = /var/lib/mysql
 +datadir         = /var/lib/mysql/data
 +log-error       = /var/log/mysql/error.log
 +# By default we only accept connections from localhost
 +bind-address    = 0.0.0.0
 +# Disabling symbolic-links is recommended to prevent assorted security risks
 +symbolic-links  = 0
 +</file>
 +
 +<file bash /etc/rsnapshot.conf>
 +#################################################
 +# rsnapshot.conf - rsnapshot configuration file #
 +#################################################
 +#                                               #
 +# PLEASE BE AWARE OF THE FOLLOWING RULES:       #
 +#                                               #
 +# This file requires tabs between elements      #
 +#                                               #
 +# Directories require a trailing slash:         #
 +#   right: /home/                               #
 +#   wrong: /home                                #
 +#                                               #
 +#################################################
 +
 +#######################
 +# CONFIG FILE VERSION #
 +#######################
 +
 +config_version  1.2
 +
 +###########################
 +# SNAPSHOT ROOT DIRECTORY #
 +###########################
 +
 +# All snapshots will be stored under this root directory.
 +#
 +#snapshot_root  /var/cache/rsnapshot/
 +snapshot_root   /var/cache/rsnapshot/backup/
 +
 +# If no_create_root is enabled, rsnapshot will not automatically create the
 +# snapshot_root directory. This is particularly useful if you are backing
 +# up to removable media, such as a FireWire or USB drive.
 +#
 +no_create_root  1
 +
 +#################################
 +# EXTERNAL PROGRAM DEPENDENCIES #
 +#################################
 +
 +# LINUX USERS:   Be sure to uncomment "cmd_cp". This gives you extra features.
 +# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
 +#
 +# See the README file or the man page for more details.
 +#
 +cmd_cp          /bin/cp
 +
 +# uncomment this to use the rm program instead of the built-in perl routine.
 +#
 +cmd_rm          /bin/rm
 +
 +# rsync must be enabled for anything to work. This is the only command that
 +# must be enabled.
 +#
 +cmd_rsync       /usr/bin/rsync
 +
 +# Uncomment this to enable remote ssh backups over rsync.
 +#
 +#cmd_ssh        /usr/bin/ssh
 +
 +# Comment this out to disable syslog support.
 +#
 +cmd_logger      /usr/bin/logger
 +
 +# Uncomment this to specify the path to "du" for disk usage checks.
 +# If you have an older version of "du", you may also want to check the
 +# "du_args" parameter below.
 +#
 +#cmd_du         /usr/bin/du
 +
 +# Uncomment this to specify the path to rsnapshot-diff.
 +#
 +#cmd_rsnapshot_diff     /usr/bin/rsnapshot-diff
 +
 +# Specify the path to a script (and any optional arguments) to run right
 +# before rsnapshot syncs files
 +#
 +#cmd_preexec    /path/to/preexec/script
 +
 +# Specify the path to a script (and any optional arguments) to run right
 +# after rsnapshot syncs files
 +#
 +#cmd_postexec   /path/to/postexec/script
 +
 +# Paths to lvcreate, lvremove, mount and umount commands, for use with
 +# Linux LVMs.
 +#
 +#linux_lvm_cmd_lvcreate /sbin/lvcreate
 +#linux_lvm_cmd_lvremove /sbin/lvremove
 +#linux_lvm_cmd_mount    /bin/mount
 +#linux_lvm_cmd_umount   /bin/umount
 +
 +#########################################
 +#           BACKUP INTERVALS            #
 +# Must be unique and in ascending order #
 +# i.e. hourly, daily, weekly, etc.      #
 +#########################################
 +
 +retain          hourly  2
 +#retain         hourly  6
 +#retain         daily   7
 +#retain         weekly  4
 +#retain         monthly 3
 +
 +############################################
 +#              GLOBAL OPTIONS              #
 +# All are optional, with sensible defaults #
 +############################################
 +
 +# Verbose level, 1 through 5.
 +# 1     Quiet           Print fatal errors only
 +# 2     Default         Print errors and warnings only
 +# 3     Verbose         Show equivalent shell commands being executed
 +# 4     Extra Verbose   Show extra verbose information
 +# 5     Debug mode      Everything
 +#
 +verbose         2
 +
 +# Same as "verbose" above, but controls the amount of data sent to the
 +# logfile, if one is being used. The default is 3.
 +#
 +loglevel        3
 +
 +# If you enable this, data will be written to the file you specify. The
 +# amount of data written is controlled by the "loglevel" parameter.
 +#
 +#logfile        /var/log/rsnapshot.log
 +
 +# If enabled, rsnapshot will write a lockfile to prevent two instances
 +# from running simultaneously (and messing up the snapshot_root).
 +# If you enable this, make sure the lockfile directory is not world
 +# writable. Otherwise anyone can prevent the program from running.
 +#
 +lockfile        /var/run/rsnapshot.pid
 +
 +# By default, rsnapshot check lockfile, check if PID is running
 +# and if not, consider lockfile as stale, then start
 +# Enabling this stop rsnapshot if PID in lockfile is not running
 +#
 +#stop_on_stale_lockfile         0
 +
 +# Default rsync args. All rsync commands have at least these options set.
 +#
 +#rsync_short_args       -a
 +#rsync_long_args        --delete --numeric-ids --relative --delete-excluded
 +
 +# ssh has no args passed by default, but you can specify some here.
 +#
 +#ssh_args       -p 22
 +
 +# Default arguments for the "du" program (for disk space reporting).
 +# The GNU version of "du" is preferred. See the man page for more details.
 +# If your version of "du" doesn't support the -h flag, try -k flag instead.
 +#
 +#du_args        -csh
 +
 +# If this is enabled, rsync won't span filesystem partitions within a
 +# backup point. This essentially passes the -x option to rsync.
 +# The default is 0 (off).
 +#
 +#one_fs         0
 +
 +# The include and exclude parameters, if enabled, simply get passed directly
 +# to rsync. If you have multiple include/exclude patterns, put each one on a
 +# separate line. Please look up the --include and --exclude options in the
 +# rsync man page for more details on how to specify file name patterns. 
 +
 +#include        ???
 +#include        ???
 +#exclude        ???
 +#exclude        ???
 +
 +# The include_file and exclude_file parameters, if enabled, simply get
 +# passed directly to rsync. Please look up the --include-from and
 +# --exclude-from options in the rsync man page for more details.
 +#
 +#include_file   /path/to/include/file
 +#exclude_file   /path/to/exclude/file
 +
 +# If your version of rsync supports --link-dest, consider enable this.
 +# This is the best way to support special files (FIFOs, etc) cross-platform.
 +# The default is 0 (off).
 +#
 +#link_dest      0
 +
 +# When sync_first is enabled, it changes the default behaviour of rsnapshot.
 +# Normally, when rsnapshot is called with its lowest interval
 +# (i.e.: "rsnapshot hourly"), it will sync files AND rotate the lowest
 +# intervals. With sync_first enabled, "rsnapshot sync" handles the file sync,
 +# and all interval calls simply rotate files. See the man page for more
 +# details. The default is 0 (off).
 +#
 +#sync_first     0
 +
 +# If enabled, rsnapshot will move the oldest directory for each interval
 +# to [interval_name].delete, then it will remove the lockfile and delete
 +# that directory just before it exits. The default is 0 (off).
 +#
 +#use_lazy_deletes       0
 +
 +# Number of rsync re-tries. If you experience any network problems or
 +# network card issues that tend to cause ssh to crap-out with
 +# "Corrupted MAC on input" errors, for example, set this to a non-zero
 +# value to have the rsync operation re-tried
 +#
 +#rsync_numtries 0
 +
 +# LVM parameters. Used to backup with creating lvm snapshot before backup
 +# and removing it after. This should ensure consistency of data in some special
 +# cases
 +#
 +# LVM snapshot(s) size (lvcreate --size option).
 +#
 +#linux_lvm_snapshotsize 100M
 +
 +# Name to be used when creating the LVM logical volume snapshot(s).
 +#
 +#linux_lvm_snapshotname rsnapshot
 +
 +# Path to the LVM Volume Groups.
 +#
 +#linux_lvm_vgpath       /dev
 +
 +# Mount point to use to temporarily mount the snapshot(s).
 +#
 +#linux_lvm_mountpath    /path/to/mount/lvm/snapshot/during/backup
 +
 +###############################
 +### BACKUP POINTS / SCRIPTS ###
 +###############################
 +
 +# LOCALHOST
 +backup  /snapshot/data/         localhost/
 +backup  /etc/mysql/             localhost/
 +#backup /home/          localhost/
 +#backup /etc/           localhost/
 +#backup /usr/local/     localhost/
 +#backup /var/log/rsnapshot              localhost/
 +#backup /etc/passwd     localhost/
 +#backup /home/foo/My Documents/         localhost/
 +#backup /foo/bar/       localhost/      one_fs=1, rsync_short_args=-urltvpog
 +#backup_script  /usr/local/bin/backup_pgsql.sh  localhost/postgres/
 +# You must set linux_lvm_* parameters below before using lvm snapshots
 +#backup lvm://vg0/xen-home/     lvm-vg0/xen-home/
 +
 +# EXAMPLE.COM
 +#backup_script  /bin/date "+ backup of example.com started at %c"       unused1
 +#backup root@example.com:/home/ example.com/    +rsync_long_args=--bwlimit=16,exclude=core
 +#backup root@example.com:/etc/  example.com/    exclude=mtab,exclude=core
 +#backup_script  ssh root@example.com "mysqldump -A > /var/db/dump/mysql.sql"    unused2
 +#backup root@example.com:/var/db/dump/  example.com/
 +#backup_script  /bin/date       "+ backup of example.com ended at %c"   unused9
 +
 +# CVS.SOURCEFORGE.NET
 +#backup_script  /usr/local/bin/backup_rsnapshot_cvsroot.sh      rsnapshot.cvs.sourceforge.net/
 +
 +# RSYNC.SAMBA.ORG
 +#backup rsync://rsync.samba.org/rsyncftp/       rsync.samba.org/rsyncftp/
 +</file>
 +
 +<file bash /root/bin/rsnapshot.sh>
 +#!/bin/bash
 +
 +#
 +# MySQL-Backup mit LVM-SnapShot
 +#
 +
 +#------------------------------------------------------------------------------#
 +#
 +# https://www.badllama.com/content/mysql-backups-using-lvm-snapshots
 +#
 +#------------------------------------------------------------------------------#
 +# LVM2, und rsnapshot muss installiert sein
 +# aptitude install lvm2 rsnapshot
 +# eine Volumengruppe muss angelegt sein,
 +# in der das zu sichernde Laufwerk liegt und soviel freier Platz ist,
 +# wie temporär für die Backup-Zeit benötigt werden.
 +#------------------------------------------------------------------------------#
 +VERSION="v2017022300"
 +#
 +# /dev/mapper/backup-backup       /var/cache/rsnapshot    ext4    errors=remount-ro 0       0
 +# /dev/mapper/trusty-mysqlbackup  /snapshot               ext4    errors=remount-ro 0       0
 +#
 +SNAPSHOT="/snapshot"
 +VolumenGruppe="trusty"
 +VolumenName="mysql"
 +#------------------------------------------------------------------------------#
 +
 +BACKUP=Ja
 +umount /var/cache/rsnapshot 2>/dev/null
 +umount ${SNAPSHOT} 2>/dev/null
 +
 +echo "FLUSH TABLES WITH READ LOCK;" | mysql -t || export BACKUP=Nein
 +echo "SHOW MASTER STATUS; SHOW SLAVE HOSTS; SHOW SLAVE STATUS \G;" | mysql -t > /var/lib/mysql/data/MASTER_STATUS.txt || export BACKUP=Nein
 +# modprobe dm-snapshot
 +lvcreate -l 100%FREE -s -n ${VolumenName}backup /dev/${VolumenGruppe}/${VolumenName} || export BACKUP=Nein
 +echo "UNLOCK TABLES;" | mysql -t
 +
 +mount /dev/mapper/backup-backup       /var/cache/rsnapshot   || export BACKUP=Nein
 +mount /dev/${VolumenGruppe}/${VolumenName}backup ${SNAPSHOT} || export BACKUP=Nein
 +
 +if [ "${BACKUP}" = Ja ] ; then
 +        #
 +        # Copy data to backup
 +        rsnapshot hourly
 +        #
 +fi
 +
 +ls -lha /var/cache/rsnapshot/backup/
 +umount /var/cache/rsnapshot
 +umount ${SNAPSHOT}
 +lvremove -f /dev/${VolumenGruppe}/${VolumenName}backup
 +</file>