1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/borg_ynh.git synced 2024-09-03 18:16:05 +02:00

Merge pull request #79 from YunoHost-Apps/testing

Testing
This commit is contained in:
ljf (zamentur) 2021-04-17 17:45:14 +02:00 committed by GitHub
commit 552a565839
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 24 additions and 10 deletions

View file

@ -222,3 +222,6 @@ Then you can set up multiple instances of the Borg Apps on same servers.
For instance: For instance:
* Borg Backup instance ``borg``: backup nextcloud daily on host Server B * Borg Backup instance ``borg``: backup nextcloud daily on host Server B
* Borg Backup instance ``borg__2``: backup all other YunoHost apps weekly on host Server C * Borg Backup instance ``borg__2``: backup all other YunoHost apps weekly on host Server C
### Settings location
Settings of apps are in /etc/yunohost/apps/*/settings.yml, so are the settings for borg_ynh as well. Be careful though to not savagely manually edit them if you don't know what you're doing.

View file

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
set -e set -eo pipefail
app="${0#"./05-"}" app="${0#"./05-"}"
app="${app%"_app"}" app="${app%"_app"}"
@ -30,7 +30,7 @@ do_backup() {
repo="$3" repo="$3"
size="$4" size="$4"
description="$5" description="$5"
current_date=$(date +"%d_%m_%y_%H:%M") current_date=$(date +"%Y-%m-%d_%H:%M")
pushd "$work_dir" pushd "$work_dir"
set +e set +e
if borg init -e repokey "$repo" ; then if borg init -e repokey "$repo" ; then
@ -46,12 +46,18 @@ This is an automated message from your beloved YunoHost server." | /usr/bin/mail
fi fi
set -e set -e
borg create "$repo::${name}_${current_date}" ./ 2>&1 >/dev/null | log_with_timestamp borg create "$repo::_${name}-${current_date}" ./ 2>&1 >/dev/null | log_with_timestamp
popd popd
# About thi _20 it's a crazy fix to avoid pruning wordpress__2 # About thi _20 it's a crazy fix to avoid pruning wordpress__2
# if you prune wordpress # if you prune wordpress
borg prune "$repo" -P ${name}_20 --keep-hourly 2 --keep-daily=7 --keep-weekly=8 --keep-monthly=12 2>&1 >/dev/null | log_with_timestamp borg prune "$repo" -P "_${name}-" --keep-hourly 2 --keep-daily=7 --keep-weekly=8 --keep-monthly=12 2>&1 >/dev/null | log_with_timestamp
# Prune legacy archive name without error on wordpress/wordpress__2
borg prune "$repo" -P "${name}_" --keep-within 2m --keep-monthly=12 2>&1 >/dev/null | log_with_timestamp
# We prune potential manual backup older than 1 year
borg prune "$repo" --keep-within 1y 2>&1 >/dev/null | log_with_timestamp
} }
do_mount() { do_mount() {

View file

@ -6,7 +6,7 @@
"en": "Backup your server on a host server using Borg.", "en": "Backup your server on a host server using Borg.",
"fr": "Sauvegardez votre serveur sur un serveur distant avec Borg." "fr": "Sauvegardez votre serveur sur un serveur distant avec Borg."
}, },
"version": "1.1.16~ynh17", "version": "1.1.16~ynh19",
"url": "https://borgbackup.readthedocs.io", "url": "https://borgbackup.readthedocs.io",
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"maintainer": { "maintainer": {
@ -15,7 +15,7 @@
"url": "https://reflexlibre.net" "url": "https://reflexlibre.net"
}, },
"requirements": { "requirements": {
"yunohost": ">= 3.8.1" "yunohost": ">= 4.1.0"
}, },
"multi_instance": true, "multi_instance": true,
"services": [], "services": [],
@ -29,7 +29,7 @@
"fr": "Dans quel repo borg souhaitez-vous sauvegarder vos fichiers ?" "fr": "Dans quel repo borg souhaitez-vous sauvegarder vos fichiers ?"
}, },
"help":{ "help":{
"en": "Specify a remote repository using this format: ssh://USER@DOMAIN.TLD:PORT/~/backup . 'USER' is *not* meant to be an existing user on the guest server. Instead, it will be created *on the host server* during the installation of the Borg Server App. It's also possible to use a local repository using a syntax such as /mount/my_external_harddrive/backups" "en": "Specify a local repository like /mount/my_external_harddrive/backups or a remote repository using this format: ssh://USER@DOMAIN.TLD:PORT/~/backup . If you plan to use borgserver_ynh app : 'USER' is *not* meant to be an existing user on the guest server, instead, it will be created *on the host server* during the installation of the Borg Server App. With borgserver_ynh apps you can't specify another repo path than ~/backup."
}, },
"example": "ssh://john@serverb.tld:22/~/backup" "example": "ssh://john@serverb.tld:22/~/backup"
}, },

View file

@ -135,7 +135,8 @@ systemctl start $app.timer
#================================================= #=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
yunohost service add $app --description="Deduplicating backup program" # Inactive services are ignored cause it's a timer
yunohost service add $app --description="Deduplicating backup program" --test_status="systemctl show $app.service -p ActiveState --value | grep -v failed"
#================================================= #=================================================

View file

@ -75,7 +75,9 @@ systemctl enable $app.service --quiet
#================================================= #=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
yunohost service add $app --description="Deduplicating backup program" # Inactive services are ignored cause it's a timer
yunohost service add $app --description="Deduplicating backup program" --test_status="systemctl show $app.service -p ActiveState --value | grep -v failed"
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT

View file

@ -141,7 +141,9 @@ chmod u+w /var/log/${app}
#================================================= #=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
yunohost service add $app --description="Deduplicating backup program" # Inactive services are ignored cause it's a timer
yunohost service add $app --description="Deduplicating backup program" --test_status="systemctl show $app.service -p ActiveState --value | grep -v failed"
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT