[Support] Linuxserver.io - Rsnapshot


Recommended Posts

linuxserver_medium.png?v=4&s=4000

 

Application Name: Rsnapshot
Application Site: https://www.rsnapshot.org/
Docker Hub: https://hub.docker.com/r/linuxserver/rsnapshot/
Github: https://github.com/linuxserver/docker-rsnapshot

 

Please post any questions/issues relating to this docker you have in this thread.

If you are not using Unraid (and you should be!) then please do not post here, rather use the linuxserver.io forum for support.

  • Like 1
Link to comment
  • 3 weeks later...
7 hours ago, nerbonne said:

First post, weee.

 

Any idea why I'm getting this error.  The folder does exist.

 

ERROR: backup /mnt/user/Private/ localhost/ - Source directory \
"/mnt/user/Private/" doesn't exist

Because you don't understand how volume bind mounts work in docker?

 

Always post the docker run command if you want help.

Link to comment
  • 2 weeks later...

I have edited rsnapshot.conf and crontabs/root in the appdata directory as follows and then restarted the docker, but the cron does not seem to get started. I do not see any snapshots being created so far. Is there anything else that needs to be done?

 

# do daily/weekly/monthly maintenance
# min   hour    day     month   weekday command
*/15    *       *       *       *       run-parts /etc/periodic/15min
0       *       *       *       *       run-parts /etc/periodic/hourly
0       2       *       *       *       run-parts /etc/periodic/daily
0       3       *       *       6       run-parts /etc/periodic/weekly
0       5       1       *       *       run-parts /etc/periodic/monthly

# rsnapshot examples
0       */2     *       *       *       rsnapshot alpha
30      4       *       *       *       rsnapshot beta
30      23      *       *       0       rsnapshot gamma

The configuration should trigger alpha backups every 2h, beta backups daily at 4:30am and gamma backups weekly on Sunday evening (23:30).

Edited by rob_robot
Link to comment
  • 4 months later...

This docker has a little bug. /root/.ssh/ dir schould be mounted and persistent, as after container reinstall known_hosts and private keys are lost. As workaround I am using:

ssh -i /config/id_rsa -o UserKnownHostsFile=/config/known_hosts -p 222 [email protected]

 

and my settings in rsnaphost.conf:

 

ssh_args        -i /config/id_rsa -o UserKnownHostsFile=/config/known_hosts -p 222
rsync_short_args        -az

# My mysql dump on my debian machine:
backup_exec     ssh -i /config/id_rsa -o UserKnownHostsFile=/config/known_hosts -p 222 [email protected] "mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases| bzip2 > /root/mysqldump.sql.bz2"
# Then backup whole /root folder
backup  [email protected]:/root        your.server.ip/
# and etc www vmain folders - it is ISPCONFIG machine
backup  [email protected]:/etc/        your.server.ip/
backup  [email protected]:/var/www/clients     your.server.ip/
backup  [email protected]:/var/vmail   your.server.ip/

 

 

Of course to install private key ssh login option do:

# Only once to generate key
ssh-keygen
# do this for each server where you want to install your private key
ssh-copy-id -i /config/id_rsa -p 222 [email protected]

 

 

To make this post complete:

  • it is required to modify crontabs:
root@nas:/mnt/user/appdata/rsnapshot-backup/crontabs# cat root
# do daily/weekly/monthly maintenance
# min   hour    day     month   weekday command
*/15    *       *       *       *       run-parts /etc/periodic/15min
0       *       *       *       *       run-parts /etc/periodic/hourly
0       2       *       *       *       run-parts /etc/periodic/daily
0       3       *       *       6       run-parts /etc/periodic/weekly
0       5       1       *       *       run-parts /etc/periodic/monthly

# rsnapshot examples
0      0     *       *       *       rsnapshot daily
0      1     *       *       1       rsnapshot weekly
0      2     1       *       *       rsnapshot monthly

 

  • and in rsnapshot.conf:
#########################################
#     BACKUP LEVELS / INTERVALS         #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc.         #
#########################################

retain  daily   7
retain  weekly  4
retain  monthly 3

 

Edited by Kacper
Complete post
  • Like 1
Link to comment
  • 3 months later...

Because i'm a big fan of healthchecks in my docker containers. i've created a healthcheck script for my rsnapshot container

 

 

i've got it located in 

/mnt/user/appdata/rsnapshot/healthcheck.sh

 

and have set "Extra Parameters" in the template to

 --health-cmd /config/healthcheck.sh --health-interval 5m --health-retries 3 --health-start-period 1m  --health-timeout 30s

 

 

 

Now if my container is unhappy, it'll mark itself as such and the autoheal (willfarrell/autoheal:1.2.0) container i've got running will restart it automatically (which may or may not solve the cause of the unhealthiness)

 

healthcheck.sh

Edited by Meles Meles
typo in script
Link to comment
  • 1 year later...

Trying to use rsnapshot to pull data from another server but somehow couldnt get it to work. I think I have found the issue...

 

When running

docker exec -it rsnapshot rsnapshot -t alpha

The output is: 

echo 765 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /rsnapshot/
mkdir -m 0755 -p /rsnapshot/alpha.0/
/usr/bin/rsync -az --delete --numeric-ids --relative --delete-excluded \
    --rsh=/usr/bin/ssh -F /config/.ssh/config \
    SOURCE DEST
touch /rsnapshot/alpha.0/

 

but the correct syntax should be (note the apostrophes in the fifth line)

echo 765 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /rsnapshot/
mkdir -m 0755 -p /rsnapshot/alpha.0/
/usr/bin/rsync -az --delete --numeric-ids --relative --delete-excluded \
    --rsh='/usr/bin/ssh -F /config/.ssh/config' \
    SOURCE DEST
touch /rsnapshot/alpha.0/

 

Any way to solve this? Thanks all.

Link to comment

Hi,

 

I'm trying to do a rsnapshot backup of an unraid share to a backup disk setup as a pool device. It seems to get terminated after 3 hours each time. Any clues as to what could be doing this? I'm new to this so could be an error in config and crontab so included those.

 

Thanks, Carl

 

[2022-10-17T00:00:00] /usr/bin/rsnapshot beta: started
[2022-10-17T00:00:00] echo 221 > /var/run/rsnapshot.pid
[2022-10-17T00:00:00] mkdir -m 0755 -p /.snapshots/beta.0/localhost/
[2022-10-17T00:00:07] /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /data/Carl/ /.snapshots/beta.0/localhost/Carl
[2022-10-17T03:00:05] /usr/bin/rsnapshot beta: ERROR: rsnapshot was sent TERM signal... cleaning up
[2022-10-17T03:00:05] rm -f /var/run/rsnapshot.pid

 

# do daily/weekly/monthly maintenance
# min   hour    day     month   weekday command
*/15    *       *       *       *       run-parts /etc/periodic/15min
0       *       *       *       *       run-parts /etc/periodic/hourly
0       2       *       *       *       run-parts /etc/periodic/daily
0       3       *       *       6       run-parts /etc/periodic/weekly
0       5       1       *       *       run-parts /etc/periodic/monthly

# rsnapshot examples
00       00      *       *       *       rsnapshot beta
00       23      *       *       6       rsnapshot gamma
00       22      1       *       *       rsnapshot delta

 

#################################################
# rsnapshot.conf - rsnapshot configuration file #
#################################################
#                                               #
# PLEASE BE AWARE OF THE FOLLOWING RULE:        #
#                                               #
# This file requires tabs between elements      #
#                                               #
#################################################

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

config_version	1.2

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

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

# 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	/path/to/lvcreate
#linux_lvm_cmd_lvremove	/path/to/lvremove
#linux_lvm_cmd_mount	/bin/mount
#linux_lvm_cmd_umount	/bin/umount

#########################################
#     BACKUP LEVELS / INTERVALS         #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc.         #
#########################################

#retain	alpha	6
retain	beta	7
retain	gamma	4
retain	delta	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		5

# Same as "verbose" above, but controls the amount of data sent to the
# logfile, if one is being used. The default is 3.
#
loglevel	5

# 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	/config/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 enabling this.
# This is the best way to support special files (FIFOs, etc) cross-platform.
# The default is 0 (off).
#
link_dest	1

# When sync_first is enabled, it changes the default behaviour of rsnapshot.
# Normally, when rsnapshot is called with its lowest interval
# (i.e.: "rsnapshot alpha"), 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 fail with errors like
# "Corrupted MAC on input", 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	/data/Carl		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_exec	/bin/date "+ backup of example.com started at %c"
#backup	[email protected]:/home/	example.com/	+rsync_long_args=--bwlimit=16,exclude=core
#backup	[email protected]:/etc/	example.com/	exclude=mtab,exclude=core
#backup_exec	ssh [email protected] "mysqldump -A > /var/db/dump/mysql.sql"
#backup	[email protected]:/var/db/dump/	example.com/
#backup_exec	/bin/date "+ backup of example.com ended at %c"

# 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/

 

Link to comment

Hi,

 

sorry i dont understand the  "snapshot_root    /.snapshots/" part.

I defined "/.snapshots" to "/mnt/user/data/rsnapbackup/" in my unraid docker configuration.

 

now i want to start 2 different Backup sets 

1. share.daten

2. share.album

 

BUT when i configure this in rsnapshot.conf:

backup  /data/share.daten/  /share.daten/

 

This does not work, because the hourly.0... directory all go into "/mnt/user/data/rsnapbackup/", the snapshot_root.

BUT I i want is them to be in "/mnt/user/data/rsnapbackup/SHARE.DATEN/hourly.0...." and ""/mnt/user/data/rsnapbackup/SHARE.ALBUM/hourly.0...."

 

i cant seem to put the backup into a subfolder under snapshot_root, but before hourly.0

 

But i see no other way for different paths and jobs? 

 

thanks for any tipp


desired result as seen from unraid:

 

1.)

Source: /mnt/share.daten/Daten/text/file.txt

Destination: /mnt/user/data/rsnapbackup/share.data/hourly.0/Daten/text/file.txt

 

2.

Source: /mnt/share.album/Fotoalbum/2022/file.jpg

Destination: /mnt/user/data/rsnapbackup/share.album/hourly.0/Fotoalbum/2022/file.jpg

Edited by ChrisW1337
Link to comment
  • 4 weeks later...
  • 11 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.