-
Notifications
You must be signed in to change notification settings - Fork 0
/
backup-functions
42 lines (37 loc) · 1.1 KB
/
backup-functions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/sh
get_backups_count () {
local BACKUPS_COUNT=$(find . -type f -name "$1-*.$2" -print | wc -l)
echo "$BACKUPS_COUNT"
}
remove_old_backups () {
local TARGET=$1
local BACKUP_EXT=$2
local MAX_BACKUPS=$3
local BACKUPS_COUNT=$(get_backups_count $TARGET $BACKUP_EXT)
while [ $BACKUPS_COUNT -gt $MAX_BACKUPS ]; do
local OLDEST_BACKUP_FILE=$(find . -type f -name "$TARGET-*.$BACKUP_EXT" -print | sort | head -1)
rm -f "$OLDEST_BACKUP_FILE"
if [ -f "$OLDEST_BACKUP_FILE.md5" ]; then
rm -f "$OLDEST_BACKUP_FILE.md5"
fi
local BACKUPS_COUNT=$(get_backups_count $TARGET $BACKUP_EXT)
done
}
# log_notify arguments:
# $1 - message title
# $2 - message body
# $3 - name of logfile
# $4 - urgency (low, normal, critical)
log_notify () {
local NOTIFY_TIME=1200000 # in ms, 20 min
echo "$(date -R) - $1 : $2" >> $3
if [ -x "$(command -v notify-send)" ]; then
notify-send -u $4 -t $NOTIFY_TIME "$1" "$2"
fi
}
log_message () {
log_notify "$1" "$2" "$3" "normal"
}
log_error () {
log_notify "$1" "$2" "$3" "critical"
}