diff options
author | nachoparker <nacho@ownyourbits.com> | 2017-12-28 14:33:43 +0300 |
---|---|---|
committer | nachoparker <nacho@ownyourbits.com> | 2017-12-28 14:33:56 +0300 |
commit | 6fb4fef1514730cd87cceef8b85f8507388f5001 (patch) | |
tree | a8b1d04e83890bb4ab24d6296776d8dc0ddd74fc | |
parent | 9e1da027d92c7a1144e0a8c2d89275b45c624fdf (diff) |
nc-snapshot: use btrfs-snpv0.44.1
-rw-r--r-- | changelog.md | 6 | ||||
-rw-r--r-- | etc/nextcloudpi-config.d/nc-snapshot.sh | 43 |
2 files changed, 18 insertions, 31 deletions
diff --git a/changelog.md b/changelog.md index 84dfb711..99fb0a3c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,9 +1,11 @@ -[v0.44.0](https://github.com/nextcloud/nextcloudpi/commit/186639f) (2017-12-28) added nc-snapshot-auto +[v0.44.1](https://github.com/nextcloud/nextcloudpi/commit/72699f5) (2017-12-28) nc-snapshot: use btrfs-snp + +[v0.44.0](https://github.com/nextcloud/nextcloudpi/commit/15587e8) (2017-12-28) added nc-snapshot-auto [v0.43.3 ](https://github.com/nextcloud/nextcloudpi/commit/f6ab161) (2017-12-26) nc-datadir: use clone on btrfs systems -[v0.43.2](https://github.com/nextcloud/nextcloudpi/commit/ae8d30b) (2017-12-19) UFW: prettier output +[v0.43.2 ](https://github.com/nextcloud/nextcloudpi/commit/ae8d30b) (2017-12-19) UFW: prettier output [v0.43.1 ](https://github.com/nextcloud/nextcloudpi/commit/114ea18) (2017-12-19) ncp-config: validate input diff --git a/etc/nextcloudpi-config.d/nc-snapshot.sh b/etc/nextcloudpi-config.d/nc-snapshot.sh index 5df87e18..00a39ce3 100644 --- a/etc/nextcloudpi-config.d/nc-snapshot.sh +++ b/etc/nextcloudpi-config.d/nc-snapshot.sh @@ -21,49 +21,34 @@ to the next are saved. This requires the datadir to be in a BTRFS filesystem" BASEDIR=/var/www +install() +{ + wget https://raw.githubusercontent.com/nachoparker/btrfs-snp/master/btrfs-snp -O /usr/local/bin/btrfs-snp + chmod +x /usr/local/bin/btrfs-snp +} + configure() { - local DATADIR - DATADIR=$( cd "$BASEDIR"/nextcloud; sudo -u www-data php occ config:system:get datadirectory ) || { + sudo -u www-data php "$BASEDIR"/nextcloud/occ maintenance:mode --on + + local DATADIR MOUNTPOINT + DATADIR=$( sudo -u www-data php /var/www/nextcloud/occ config:system:get datadirectory ) || { echo -e "Error reading data directory. Is NextCloud running and configured?"; return 1; } - local SNAPSHOT=${DATADIR}_$( date +"%F" ) # file system check - [[ "$( stat -fc%T "$DATADIR" )" != "btrfs" ]] && { - echo "The datadir is not in a BTRFS filesystem" + MOUNTPOINT="$( stat -c "%m" "$DATADIR" )" || return 1 + [[ "$( stat -fc%T "$MOUNTPOINT" )" != "btrfs" ]] && { + echo "$MOUNTPOINT is not in a BTRFS filesystem" return 1 } - local DESTDIR="$( dirname "$DATADIR" )" - - # do it - sudo -u www-data php "$BASEDIR"/nextcloud/occ maintenance:mode --on - - [[ -d "$SNAPSHOT" ]] && { - btrfs subvolume delete "$SNAPSHOT" &>/dev/null - rm -rf "$SNAPSHOT" &>/dev/null - } - btrfs subvolume snapshot -r "$DATADIR" "$SNAPSHOT" || return 1 - # prune older backups - [[ $LIMIT_ != 0 ]] && { - - local SNAPS=( $( btrfs subvolume list -s --sort=gen "$DESTDIR" | awk '{ print $14 }' ) ) - cd "$DESTDIR" || return 1 - [[ ${#SNAPS[@]} -gt $LIMIT_ ]] && \ - echo "Pruning old snapshots..." && \ - for (( i=0; i < $(( ${#SNAPS[@]} - LIMIT_ )); i++ ));do - btrfs subvolume delete "${SNAPS[$i]}" - done - } + btrfs-snp $MOUNTPOINT manual $LIMIT_ 0 ../ncp-snapshots sudo -u www-data php "$BASEDIR"/nextcloud/occ maintenance:mode --off - echo -e "snapshot $SNAPSHOT generated" } -install() { :; } - # License # # This script is free software; you can redistribute it and/or modify it |