У меня есть backup2l, настроенный для rsync моей резервной копии. Хотя я обнаружил, что если файлы используются во время резервного копирования, возникает ошибка.
Это письмо, которое я получаю:
/etc/cron.daily/zz-backup2l:
backup2l v1.5 by Gundolf Kiefer
Sun Sep 25 03:20:50 BST 2011
Running pre-backup procedure...
writing dpkg selections to /root/.dpkg-selections.log...
dumping databases
Removing old backups...
Preparing differential level-2 backup <all.104> based on <all.103>...
145008 / 145008 file(s), 12432 / 12432 dir(s), 10.3GB / 10.3GB (uncompressed)
skipping: 175 file(s), 0 dir(s), 735KB (uncompressed)
Creating archive using 'DRIVER_TAR_BZ2'...
tar: Removing leading `/' from hard link targets
tar: /var/vmail/vmail01/example.com/b/ba/bar/barry-2010.12.11.10.28.01/Maildir/dovecot.index.log.2: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Checking TOC of archive file (< real file, > archive entry)...
47299d47298
< /var/vmail/vmail01/example.com/b/ba/bar/barry-2010.12.11.10.28.01/Maildir/dovecot.index.log.2
96928c96927
Creating check file for <all.104>...
Running post-backup procedure...
Sun Sep 25 09:26:49 BST 2011
Summary
=======
Backup Date Time | Size | Skipped Files+D | New Obs. | Err.
------------------------------------------------------------------------------
all.1 2011-09-21 02:26 | 7.3G | 198 161103 |161103 0 | 5
all.101 2011-09-22 02:25 | 51.4M | 192 161788 | 2270 1585 | 0
all.102 2011-09-23 02:25 | 46.6M | 213 162460 | 1610 938 | 0
all.103 2011-09-24 02:25 | 58.6M | 188 156809 | 2450 8101 | 0
all.104 2011-09-25 03:23 | 7.4G | 175 157440 |157440 156809 | 2
Filesystem Size Used Avail Use% Mounted on
/dev/vda 40G 30G 8.4G 78% /
Конфигурация Backup2l
##################################################
# Configuration file for backup2l #
##################################################
# Define the backup2l version for which the configuration file is written.
# This way, future versions can automatically warn if the syntax has changed.
FOR_VERSION=1.4
##################################################
# Volume identification
# This is the prefix for all output files;
# multiple volumes can be handled by using different configuration files
VOLNAME="all"
##################################################
# Source files
# List of directories to make backups of.
# All paths MUST be absolute and start with a '/'!
# SRCLIST=(/etc /root /home /var/mail /usr/local)
SRCLIST=(/etc /root /home /var/vmail /var/www /var/svn /usr/local /var/backups/mysql /var/backups/ldap)
# The following expression specifies the files not to be archived.
# See the find(1) man page for further info. It is discouraged to
# use anything different from conditions (e. g. actions) as it may have
# unforeseeable side effects.
# This example skips all files and directories with a path name containing
# '.nobackup' and all .o files:
#SKIPCOND=(-path "*.nobackup*" -o -name "*.o")
SKIPCOND=(-path "*.nobackup*" -o -name "*.o" -name "*~" -o -name "cache.*" -o -path "*/tmp/captchas/*")
# If you want to exclude several directories use the following expression:
# SKIPCOND=(-path '/path1' -o -path '/path1/*' -o -path '/path2' -o -path '/path2/*')
# NOTE: If you do not have anything to skip, use:
# SKIPCOND=(-false) # "SKIPCOND=()" does not work
##################################################
# Destination
# Mount point of backup device (optional)
#BACKUP_DEV="/disk2"
# Destination directory for backups;
# it must exist and must not be the top-level of BACKUP_DEV
BACKUP_DIR="/var/backups/localhost"
##################################################
# Backup parameters
# Number of levels of differential backups (1..9)
MAX_LEVEL=2
# Maximum number of differential backups per level (1..9)
MAX_PER_LEVEL=7
# Maximum number of full backups (1..8)
#MAX_FULL=2
MAX_FULL=1
# For differential backups: number of generations to keep per level;
# old backups are removed such that at least GENERATIONS * MAX_PER_LEVEL
# recent versions are still available for the respective level
GENERATIONS=1
# If the following variable is 1, a check file is automatically generated
CREATE_CHECK_FILE=1
Да, это сообщение об ошибке (а) предназначено и (б) тоже довольно часто случается со мной.
Эта ошибка просто связана с тем, как работает backup2l: составьте список файлов для резервного копирования, сделайте резервную копию, затем проверьте, какие файлы находятся в резервной копии. Поскольку процесс резервного копирования занимает некоторое время, вы часто получаете / some / files, которые были изменены в процессе и, следовательно, являются ошибками резервного копирования. Вы определенно хотите / знать / об этих файлах, поскольку сбои резервного копирования часто являются серьезным делом [1].
Итак, мой совет - делать резервные копии в менее загруженное время дня. Вы получите письмо от своего резервного cronjob, и вам все равно следует внимательно его прочитать. Иногда возникают эти ошибки, но они не критичны для резервного копирования. Просто убедитесь, что это не один и тот же файл каждый день.
[1] Небольшой анекдот: какое-то время мы думали, что резервное копирование с использованием нашего основного раздела данных в виде файла, смонтированного с обратной связью в университетском хранилище, было хорошей идеей. Это привело к тому, что файл раздела данных (~ 1 ТБ) отправлялся на сервер резервного копирования каждую ночь, что занимало несколько часов, затем проверялось на наличие изменений и, после внесения изменений, отбрасывалось. В течение нескольких месяцев фактически не выполнялось резервное копирование. Важный момент, и с того дня мы убедились, что поговорили со всеми участниками, чтобы убедиться, что резервные копии были / действительно / сделаны и могут быть восстановлены.