From 5ac7c89d0c2e739bffd1d01decab507f2301acad Mon Sep 17 00:00:00 2001 From: Gerd Hoerst Date: Sun, 19 Mar 2023 13:54:49 +0100 Subject: [PATCH] addon rsnapshot Signed-off-by: Gerd Hoerst --- config/rootfiles/packages/rsnapshot | 6 ++ config/rsnapshot/rsnapshot.conf | 28 ++++++++++ lfs/rsnapshot | 86 +++++++++++++++++++++++++++++ make.sh | 1 + src/paks/rsnapshot/install.sh | 27 +++++++++ src/paks/rsnapshot/uninstall.sh | 26 +++++++++ src/paks/rsnapshot/update.sh | 26 +++++++++ 7 files changed, 200 insertions(+) create mode 100644 config/rootfiles/packages/rsnapshot create mode 100644 config/rsnapshot/rsnapshot.conf create mode 100644 lfs/rsnapshot create mode 100644 src/paks/rsnapshot/install.sh create mode 100644 src/paks/rsnapshot/uninstall.sh create mode 100644 src/paks/rsnapshot/update.sh diff --git a/config/rootfiles/packages/rsnapshot b/config/rootfiles/packages/rsnapshot new file mode 100644 index 000000000..023498e2c --- /dev/null +++ b/config/rootfiles/packages/rsnapshot @@ -0,0 +1,6 @@ +usr/bin/rsnapshot +usr/bin/rsnapshot-diff +etc/rsnapshot.conf +#etc/rsnapshot.conf.default +#usr/share/man/man1/rsnapshot-diff.1 +#usr/share/man/man1/rsnapshot.1 diff --git a/config/rsnapshot/rsnapshot.conf b/config/rsnapshot/rsnapshot.conf new file mode 100644 index 000000000..9cf803bc7 --- /dev/null +++ b/config/rsnapshot/rsnapshot.conf @@ -0,0 +1,28 @@ +# All snapshots will be stored under this root directory. +snapshot_root /mnt/hdd/rsnapshot/ + +# If no_create_root is enabled, rsnapshot will not automatically create the snapshot_root directory. +no_create_root 1 + +# Location of commands +cmd_cp /bin/cp +cmd_rm /bin/rm +cmd_rsync /usr/bin/rsync +cmd_logger /usr/bin/logger +cmd_du /usr/bin/du +cmd_rsnapshot_diff /usr/bin/rsnapshot-diff + +# BACKUP LEVELS / INTERVALS +retain hourly 24 # 24 times per day +retain daily 7 # 7 times per week +retain weekly 4 # 4 times per ~month +retain monthly 12 # 12 times per year +retain yearly 2 # retain for 2 years total + +# GLOBAL OPTIONS +verbose 2 +loglevel 2 +logfile /var/log/rsnapshot.log +lockfile /run/rsnapshot.pid +link_dest 1 +sync_first 1 diff --git a/lfs/rsnapshot b/lfs/rsnapshot new file mode 100644 index 000000000..0445471be --- /dev/null +++ b/lfs/rsnapshot @@ -0,0 +1,86 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2020 IPFire Team # +# # +# 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, either version 3 of the License, or # +# (at your option) any later version. # +# # +# 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, see . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.4.5 + +THISAPP = rsnapshot-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = https://github.com/rsnapshot/rsnapshot/releases/download/1.4.5 +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = rsnapshot +PAK_VER = 1 +DEPS = "rsync" +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_BLAKE2 = 2a668aa16991b2b4e611c6204cdcd0e8c9593e5f0af5ea89e787a578e73b6f5987514cd7d0252bb78aea1b157ef85aea947686111ca9e3befdb2a8cef0aa9ecd + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) +b2 : $(subst %,%_BLAKE2,$(objects)) + +dist: + @$(PAK) +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && \ + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --bindir=/usr/bin \ + + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + cp -avfr $(DIR_CONF)/$(PROG)/* / + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index 3b7f9850c..59d2971da 100755 --- a/make.sh +++ b/make.sh @@ -1478,6 +1478,7 @@ buildipfire() { lfsmake2 libmpeg2 lfsmake2 gnump3d lfsmake2 rsync + lfsmake2 rsnapshot lfsmake2 rpcbind lfsmake2 keyutils lfsmake2 nfs diff --git a/src/paks/rsnapshot/install.sh b/src/paks/rsnapshot/install.sh new file mode 100644 index 000000000..9aafb0d56 --- /dev/null +++ b/src/paks/rsnapshot/install.sh @@ -0,0 +1,27 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire 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; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire 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 IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh + +extract_files +restore_backup ${NAME} diff --git a/src/paks/rsnapshot/uninstall.sh b/src/paks/rsnapshot/uninstall.sh new file mode 100644 index 000000000..66f4344eb --- /dev/null +++ b/src/paks/rsnapshot/uninstall.sh @@ -0,0 +1,26 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire 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; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire 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 IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +make_backup ${NAME} +remove_files diff --git a/src/paks/rsnapshot/update.sh b/src/paks/rsnapshot/update.sh new file mode 100644 index 000000000..89c40d0d7 --- /dev/null +++ b/src/paks/rsnapshot/update.sh @@ -0,0 +1,26 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire 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; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire 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 IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +./uninstall.sh +./install.sh -- 2.25.1