rsnapshot занимает много времени для резервного копирования, правильно ли написаны сценарии?

Мне интересно, была ли система резервного копирования, которую я поддерживаю, была неправильно настроена с самого начала, что может объяснить, почему она медленная.

Задача резервного копирования. Выполняйте ежедневные инкрементные резервные копии из хранилища NAS (Terastation Buffalo NAS) на компьютер Ubuntu через 1gb-переключатель, используя rsnapshot.

Проблема: Ежедневно RSnapshopt занимает 9 часов, чтобы разграничить около 160 ГБ данных, это похоже на долгое время, но я не знаю, чего ожидать.

Подробности: rsnapshot вызывается cron daily.

Файл 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 # # ie 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 # (ie: "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 - 

ПРИМЕЧАНИЕ. Я знаю о плохой практике жесткого кодирования имени пользователя и пароля в скрипте.

Мое понимание этого сценария немного нечеткое, но в основном это похоже на вход и настройку настроек «Тар». Скопируйте данные, но я не вижу, как это настроено в приведенной выше строке.

Глядя на журналы (/ 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. Это все как ожидалось для такой системы?

Linux и Unix - лучшая ОС в мире.