rsnapshot 备份时间较长,脚本是否正确?

rsnapshot 备份时间较长,脚本是否正确?

我想知道我维护的备份系统是否从一开始就设置不正确,这可以解释为什么它很慢。

备份目标: 使用 rsnapshot 通过 1GB 交换机执行从 NAS 存储 (Terastation Buffalo NAS) 到 Ubuntu 计算机的每日增量备份。

问题: 每天 RSnapshopt 需要 9 个小时来比较大约 160GB 的数据,这感觉很长,但我不知道会发生什么。

细节: rsnapshot 每天由 cron 调用。

rsnapshot.conf 文件似乎是默认模板:

#######################
# CONFIG FILE VERSION #
#######################

config_version  1.2

###########################
# SNAPSHOT ROOT DIRECTORY #
###########################

# All snapshots will be stored under this root directory.
#
snapshot_root   /srv/backups/

# 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

# 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


#########################################
#           BACKUP INTERVALS            #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc.      #
#########################################

interval    daily   7
interval    weekly  4
interval    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

# 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

# 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


# 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


# 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

###############################
### BACKUP POINTS / SCRIPTS ###
###############################

# LOCALHOST
backup_script   /usr/local/bin/backup_smb_share_All.sh  All/

所有 backup_script“backup_smb_share_All.sh”本质上包含:

smbclient <hostname>/<share> -U<username>%<password> -Tc - 2>/dev/null | tar xf -

注意:我知道在脚本中对用户名和密码进行硬编码是一种不好的做法。

我对这个脚本的理解有点模糊,但它主要似乎是登录并配置“Tar”设置。它似乎复制数据,但我不知道上面的行中是如何配置的。

查看日志 (/var/logs/rsnapshot) 会发生以下情况:

[05/Jan/2015:02:43:47] mkdir -m 0755 -p /srv/backups/tmp/
[05/Jan/2015:02:43:47] cd /srv/backups/tmp/
[05/Jan/2015:02:43:47] /usr/local/bin/backup_smb_share_All.sh
[05/Jan/2015:04:44:15] cd /root/
[05/Jan/2015:04:44:15] sync_if_different("/srv/backups/tmp/", "/srv/backups/daily.0/All/")
[05/Jan/2015:13:43:25] /bin/rm -rf /srv/backups/tmp/
  1. 备份脚本是否合理?
  2. 从表面上看,瓶颈是“sync_if_ Different”,那么这将是Ubuntu服务器的性能限制吗?
  3. 对于这样一个系统来说,这一切是否符合预期?

相关内容