From f69562266494472bf7f3ebed4f8da7b62e8a9101 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sun, 30 Jul 2023 01:17:15 -0500 Subject: [PATCH 1/6] standard cron Signed-off-by: Eric Nemchik --- readme-vars.yml | 2 +- root/defaults/crontabs/abc | 3 ++ root/etc/crontabs/root | 11 ------ .../dependencies.d/init-crontab-config} | 0 .../dependencies.d/init-rsnapshot-test | 0 .../s6-rc.d/init-crontab-config/run | 22 +++++++++++ .../type | 0 .../s6-overlay/s6-rc.d/init-crontab-config/up | 1 + .../s6-rc.d/init-crontabs-config/run | 38 ------------------- .../s6-rc.d/init-crontabs-config/up | 1 - root/etc/s6-overlay/s6-rc.d/svc-cron/run | 2 +- .../contents.d/init-crontab-config} | 0 .../user/contents.d/init-crontabs-config | 0 13 files changed, 28 insertions(+), 52 deletions(-) create mode 100644 root/defaults/crontabs/abc delete mode 100644 root/etc/crontabs/root rename root/etc/{crontabs/abc => s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontab-config} (100%) rename root/etc/s6-overlay/s6-rc.d/{init-crontabs-config => init-crontab-config}/dependencies.d/init-rsnapshot-test (100%) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/run rename root/etc/s6-overlay/s6-rc.d/{init-crontabs-config => init-crontab-config}/type (100%) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/up delete mode 100755 root/etc/s6-overlay/s6-rc.d/init-crontabs-config/run delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontabs-config/up rename root/etc/s6-overlay/s6-rc.d/{init-config-end/dependencies.d/init-crontabs-config => user/contents.d/init-crontab-config} (100%) delete mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontabs-config diff --git a/readme-vars.yml b/readme-vars.yml index ea0c044..a1b5430 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -53,7 +53,7 @@ app_setup_block: | ### cron - You will then need to edit `/config/crontabs/root` to set cron jobs to run rsnapshot. + You will then need to edit `/config/crontabs/abc` to set cron jobs to run rsnapshot. By default no cron jobs are enabled. Examples are includes based on information from the [rsnapshot readme](https://github.com/rsnapshot/rsnapshot/blob/master/README.md#configuration). # changelog diff --git a/root/defaults/crontabs/abc b/root/defaults/crontabs/abc new file mode 100644 index 0000000..fdd9563 --- /dev/null +++ b/root/defaults/crontabs/abc @@ -0,0 +1,3 @@ +# min hour day month weekday command +#0 */4 * * * rsnapshot alpha +#50 23 * * * rsnapshot beta diff --git a/root/etc/crontabs/root b/root/etc/crontabs/root deleted file mode 100644 index ece03c6..0000000 --- a/root/etc/crontabs/root +++ /dev/null @@ -1,11 +0,0 @@ -# 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 */4 * * * rsnapshot alpha -#50 23 * * * rsnapshot beta diff --git a/root/etc/crontabs/abc b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontab-config similarity index 100% rename from root/etc/crontabs/abc rename to root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontab-config diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/dependencies.d/init-rsnapshot-test b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-rsnapshot-test similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-crontabs-config/dependencies.d/init-rsnapshot-test rename to root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-rsnapshot-test diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run new file mode 100644 index 0000000..c49a50c --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run @@ -0,0 +1,22 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +# make folders +mkdir -p \ + /config/crontabs + +## abc +# if crontabs do not exist in config +if [[ ! -f /config/crontabs/abc ]]; then + # copy crontab from system + if crontab -l -u abc; then + crontab -l -u abc >/config/crontabs/abc + fi + + # if crontabs still do not exist in config (were not copied from system) + # copy crontab from included defaults (using -n, do not overwrite an existing file) + cp -n /defaults/crontabs/abc /config/crontabs/ +fi +# set permissions and import user crontabs +lsiown abc:abc /config/crontabs/abc +crontab -u abc /config/crontabs/abc diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/type b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-crontabs-config/type rename to root/etc/s6-overlay/s6-rc.d/init-crontab-config/type diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up new file mode 100644 index 0000000..d354111 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-crontab-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/run b/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/run deleted file mode 100755 index 8859365..0000000 --- a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/run +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -# make folders -mkdir -p \ - /config/crontabs - -## root -# if crontabs do not exist in config -if [[ ! -f /config/crontabs/root ]]; then - # copy crontab from system - if crontab -l -u root; then - crontab -l -u root >/config/crontabs/root - fi - - # if crontabs still do not exist in config (were not copied from system) - # copy crontab from included defaults (using -n, do not overwrite an existing file) - cp -n /etc/crontabs/root /config/crontabs/ -fi -# set permissions and import user crontabs -lsiown root:root /config/crontabs/root -crontab -u root /config/crontabs/root - -## abc -# if crontabs do not exist in config -if [[ ! -f /config/crontabs/abc ]]; then - # copy crontab from system - if crontab -l -u abc; then - crontab -l -u abc >/config/crontabs/abc - fi - - # if crontabs still do not exist in config (were not copied from system) - # copy crontab from included defaults (using -n, do not overwrite an existing file) - cp -n /etc/crontabs/abc /config/crontabs/ -fi -# set permissions and import user crontabs -lsiown abc:abc /config/crontabs/abc -crontab -u abc /config/crontabs/abc diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/up b/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/up deleted file mode 100644 index 006d814..0000000 --- a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/init-crontabs-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/run b/root/etc/s6-overlay/s6-rc.d/svc-cron/run index 5eaadfd..ccc3374 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-cron/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-cron/run @@ -1,4 +1,4 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -exec /usr/sbin/crond -f -S -l 5 +exec busybox crond -f -S -l 5 diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontabs-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontab-config similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontabs-config rename to root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontab-config diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontabs-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontabs-config deleted file mode 100644 index e69de29..0000000 From eca7092c9a1b287873ba4350a62f2373843f4ab8 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sun, 30 Jul 2023 09:49:58 -0500 Subject: [PATCH 2/6] Fix perms Signed-off-by: Eric Nemchik --- root/etc/s6-overlay/s6-rc.d/init-crontab-config/run | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 root/etc/s6-overlay/s6-rc.d/init-crontab-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run old mode 100644 new mode 100755 From b5d0ae0ff0bb8e36a64e859fccd308d7f24a7bf7 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Mon, 31 Jul 2023 16:01:00 -0500 Subject: [PATCH 3/6] Run rsnapshot as abc Signed-off-by: Eric Nemchik --- root/etc/s6-overlay/s6-rc.d/init-rsnapshot-config/run | 2 ++ root/etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run | 2 +- root/etc/s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-config/run b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-config/run index 2791c27..db94112 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-config/run @@ -3,6 +3,7 @@ # make our folders and links mkdir -p \ + /.snapshots \ /data rm -rf /etc/rsnapshot.conf @@ -14,6 +15,7 @@ sed -i -E 's@^#cmd_ssh /usr/bin/ssh$@cmd_ssh /usr/bin/ssh@g' /etc/rsnapshot.conf sed -i -E 's@^#cmd_du /usr/bin/du$@cmd_du /usr/bin/du@g' /etc/rsnapshot.conf.default sed -i -E 's@^#cmd_rsnapshot_diff /usr/local/bin/rsnapshot-diff$@cmd_rsnapshot_diff /usr/bin/rsnapshot-diff@g' /etc/rsnapshot.conf.default sed -i -E 's@^#logfile /var/log/rsnapshot$@logfile /config/rsnapshot.log@g' /etc/rsnapshot.conf.default +sed -i -E 's@^lockfile /var/run/rsnapshot.pid$@lockfile /config/rsnapshot.pid@g' /etc/rsnapshot.conf.default sed -i -E 's@^#link_dest 0$@link_dest 1@g' /etc/rsnapshot.conf.default sed -i -E 's@^backup /home/ localhost/$@backup /data/ localhost/\n#backup /home/ localhost/@g' /etc/rsnapshot.conf.default sed -i -E 's@^backup /etc/ localhost/$@#backup /etc/ localhost/@g' /etc/rsnapshot.conf.default diff --git a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run index 89abe7c..bee951d 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run +++ b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run @@ -3,4 +3,4 @@ echo "***** Validating config file *****" -rsnapshot configtest +s6-setuidgid abc rsnapshot configtest diff --git a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run index 8634dad..2b42830 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run +++ b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run @@ -3,4 +3,4 @@ echo "***** Upgrading config file if required *****" -rsnapshot upgrade-config-file +s6-setuidgid abc rsnapshot upgrade-config-file From c6f9d3f1c2e96b2abe9d6ed0f7dd0892a5d5364f Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Tue, 1 Aug 2023 10:36:15 -0500 Subject: [PATCH 4/6] Switch back to root running as abc lacks permissions required to complete backups Signed-off-by: Eric Nemchik --- readme-vars.yml | 2 +- root/defaults/crontabs/{abc => root} | 0 .../etc/s6-overlay/s6-rc.d/init-crontab-config/run | 14 +++++++------- .../s6-overlay/s6-rc.d/init-rsnapshot-config/run | 1 - .../etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run | 2 +- .../s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run | 2 +- 6 files changed, 10 insertions(+), 11 deletions(-) rename root/defaults/crontabs/{abc => root} (100%) diff --git a/readme-vars.yml b/readme-vars.yml index a1b5430..ea0c044 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -53,7 +53,7 @@ app_setup_block: | ### cron - You will then need to edit `/config/crontabs/abc` to set cron jobs to run rsnapshot. + You will then need to edit `/config/crontabs/root` to set cron jobs to run rsnapshot. By default no cron jobs are enabled. Examples are includes based on information from the [rsnapshot readme](https://github.com/rsnapshot/rsnapshot/blob/master/README.md#configuration). # changelog diff --git a/root/defaults/crontabs/abc b/root/defaults/crontabs/root similarity index 100% rename from root/defaults/crontabs/abc rename to root/defaults/crontabs/root diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run index c49a50c..3ee0116 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run @@ -5,18 +5,18 @@ mkdir -p \ /config/crontabs -## abc +## root # if crontabs do not exist in config -if [[ ! -f /config/crontabs/abc ]]; then +if [[ ! -f /config/crontabs/root ]]; then # copy crontab from system - if crontab -l -u abc; then - crontab -l -u abc >/config/crontabs/abc + if crontab -l -u root; then + crontab -l -u root >/config/crontabs/root fi # if crontabs still do not exist in config (were not copied from system) # copy crontab from included defaults (using -n, do not overwrite an existing file) - cp -n /defaults/crontabs/abc /config/crontabs/ + cp -n /defaults/crontabs/root /config/crontabs/ fi # set permissions and import user crontabs -lsiown abc:abc /config/crontabs/abc -crontab -u abc /config/crontabs/abc +lsiown root:root /config/crontabs/root +crontab -u root /config/crontabs/root diff --git a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-config/run b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-config/run index db94112..943ee43 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-config/run @@ -3,7 +3,6 @@ # make our folders and links mkdir -p \ - /.snapshots \ /data rm -rf /etc/rsnapshot.conf diff --git a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run index bee951d..89abe7c 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run +++ b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-test/run @@ -3,4 +3,4 @@ echo "***** Validating config file *****" -s6-setuidgid abc rsnapshot configtest +rsnapshot configtest diff --git a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run index 2b42830..8634dad 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run +++ b/root/etc/s6-overlay/s6-rc.d/init-rsnapshot-upgrade/run @@ -3,4 +3,4 @@ echo "***** Upgrading config file if required *****" -s6-setuidgid abc rsnapshot upgrade-config-file +rsnapshot upgrade-config-file From f05d2566289af0256eb3f4dc297950f8a7bb97fa Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Fri, 18 Aug 2023 23:07:30 -0500 Subject: [PATCH 5/6] cron in base Signed-off-by: Eric Nemchik --- .../s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services | 0 root/etc/s6-overlay/s6-rc.d/svc-cron/run | 4 ---- root/etc/s6-overlay/s6-rc.d/svc-cron/type | 1 - root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron | 0 4 files changed, 5 deletions(-) delete mode 100644 root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services delete mode 100755 root/etc/s6-overlay/s6-rc.d/svc-cron/run delete mode 100644 root/etc/s6-overlay/s6-rc.d/svc-cron/type delete mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services deleted file mode 100644 index e69de29..0000000 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/run b/root/etc/s6-overlay/s6-rc.d/svc-cron/run deleted file mode 100755 index ccc3374..0000000 --- a/root/etc/s6-overlay/s6-rc.d/svc-cron/run +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -exec busybox crond -f -S -l 5 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/type b/root/etc/s6-overlay/s6-rc.d/svc-cron/type deleted file mode 100644 index 5883cff..0000000 --- a/root/etc/s6-overlay/s6-rc.d/svc-cron/type +++ /dev/null @@ -1 +0,0 @@ -longrun diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron deleted file mode 100644 index e69de29..0000000 From 51b9c5fa4e20cfec7bd146a667bebc976678fe54 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Fri, 18 Aug 2023 23:43:04 -0500 Subject: [PATCH 6/6] cron in base Signed-off-by: Eric Nemchik --- .../dependencies.d/init-crontab-config | 0 .../dependencies.d/init-rsnapshot-test | 0 .../s6-rc.d/init-crontab-config/run | 22 ------------------- .../s6-rc.d/init-crontab-config/type | 1 - .../s6-overlay/s6-rc.d/init-crontab-config/up | 1 - .../user/contents.d/init-crontab-config | 0 6 files changed, 24 deletions(-) delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontab-config rename root/etc/s6-overlay/s6-rc.d/{init-crontab-config => init-config-end}/dependencies.d/init-rsnapshot-test (100%) delete mode 100755 root/etc/s6-overlay/s6-rc.d/init-crontab-config/run delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/type delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-crontab-config/up delete mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontab-config diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontab-config b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontab-config deleted file mode 100644 index e69de29..0000000 diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-rsnapshot-test b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-rsnapshot-test similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-rsnapshot-test rename to root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-rsnapshot-test diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run deleted file mode 100755 index 3ee0116..0000000 --- a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -# make folders -mkdir -p \ - /config/crontabs - -## root -# if crontabs do not exist in config -if [[ ! -f /config/crontabs/root ]]; then - # copy crontab from system - if crontab -l -u root; then - crontab -l -u root >/config/crontabs/root - fi - - # if crontabs still do not exist in config (were not copied from system) - # copy crontab from included defaults (using -n, do not overwrite an existing file) - cp -n /defaults/crontabs/root /config/crontabs/ -fi -# set permissions and import user crontabs -lsiown root:root /config/crontabs/root -crontab -u root /config/crontabs/root diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type deleted file mode 100644 index bdd22a1..0000000 --- a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/type +++ /dev/null @@ -1 +0,0 @@ -oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up deleted file mode 100644 index d354111..0000000 --- a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/init-crontab-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontab-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontab-config deleted file mode 100644 index e69de29..0000000