--- /dev/null
+#! /bin/bash
+# BtrSnapshot [-q] MODE FILESYSTEM SRC [LOG]
+# BtrSnapshot daily /media/fs.cave mirror.home /tmp/snap.log
+VERBOSE=-v
+LOG=/var/log/local/btrsnapshot.log
+if [ "$1" = -q ]; then
+ VERBOSE=
+ shift
+fi
+MODE=$1
+FILESYSTEM=$2
+SRC=$3
+test -n "$4" && LOG="$4"
+export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
+
+function Usage(){
+ echo "Usage: BtrSnapshot MODE FILESYSTEM SOURCE [LOGFILE]"
+ echo "Example: BtrSnapshot daily /media/fs.cave home"
+ echo "Example: BtrSnapshot daily /media/fs.cave opt /var/log/mylog.log"
+ echo "+++ $*"
+}
+function Log(){
+ test -n "$VERBOSE" && echo "$*"
+ date "+%Y.%m.%d-%H:%M:%S $*" >>$LOG
+}
+function MakeSnapshot () {
+ local mode=$1
+ local filesys=$2
+ local src=$3
+ local subdir
+ case $mode in
+ daily)
+ subdir=$(LANG=C date +%a)
+ ;;
+ weekly)
+ subdir=$(date +%W)
+ subdir=$(expr $subdir "%" 4)
+ ;;
+ monthly)
+ subdir=$(date +%m)
+ ;;
+ temp)
+ subdir=temp
+ ;;
+ esac
+ local trg=$filesys/snapshots/$src/$mode
+ if [ ! -d $trg ]; then
+ Log "creating $trg..."
+ mkdir -p $trg
+ fi
+ trg="$trg/$subdir"
+ if [ -d $trg ]; then
+ Log "$(btrfs subvol delete $trg)"
+ fi
+ Log "$(btrfs subvol snapshot -r $filesys/$src $trg)"
+}
+if [ "$MODE" = "auto" ]; then
+ MODE=daily
+ test "$(date +%w) = 6 && MODE=weekly
+ test "$(date +%d) = 01 && MODE=monthly
+fi
+
+if [ -z "$SRC" ]; then
+ Usage "too few arguments"
+elif [ ! -d $FILESYSTEM/$SRC ]; then
+ Usage "missing $FILESYSTEM/$SRC"
+else
+ MakeSnapshot $MODE $FILESYSTEM $SRC
+fi
--- /dev/null
+#! /bin/bash
+VERBOSE=-v
+if [ "$1" == '-q' ]; then
+ VERBOSE=
+ shift
+fi
+DOMAIN=$1
+DB=$2
+PATH=/usr/bin:/bin
+. /usr/local/bin/local/SvWebapp.conf
+DATE=$(date "+%Y.%m.%d_%H_%M")
+BASE=$DIR_WWW/$DOMAIN
+TAR=$DIR_ARCHIVE/$DOMAIN.$DATE.tgz
+if [ -z "$DB" ]; then
+ echo "Usage: SvWebapp DOMAIN DB"
+ echo "Example SvWebapp stage.infeos.net swstageinfeos"
+ echo "+++ missing DOMAIN"
+elif [ ! -d $BASE ]; then
+ echo "+++ missing $BASE"
+else
+ cd $BASE/db
+ mysqldump $DB | gzip >$DOMAIN.sql.gz
+ cd $BASE
+ tar czf $TAR .
+ test -n "$VERBOSE" && ls -l $TAR
+fi