-
Notifications
You must be signed in to change notification settings - Fork 9
/
user-callback.diagnostics
executable file
·107 lines (96 loc) · 4.25 KB
/
user-callback.diagnostics
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/bin/bash
# Copyright (c) 2012-2015 Germar Reitze, modified 2022 by J. Altfeld
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#Script should return 0 if everything is alright. Returncode !0 will cancle
#the running snapshot (BIT version >1.1.0).
# This script is meant for debugging purposes only (to check when
# and how the backup process is started and snapshots are taken.
# You can also add further checks (eg. check for existing mounts
# or readable paths to diagnose problems with inaccessible mounts).
profile_id="$1"
profile_name="$2"
reason="$3"
printLog() {
# argument $1 contains the log message
echo "$(date +'%Y-%m-%d %H:%M:%S') ($(whoami)/$BASHPID) profile_id=$profile_id: $1" 2>&1 >> ~/backintime_usercallback_diagnostics.log
}
case $reason in
1) #Backup process begins
printLog "1 - backup process begins"
;;
2) #Backup process ends
printLog "2 - backup process ends"
;;
3) #A new snapshot was taken
snapshot_id="$4"
snapshot_name="$5"
printLog "3 - snapshot taken (snapshot_id=$snapshot_id - snapshot_name=$snapshot_name)"
;;
4) #There was an error
errorcode="$4"
msg="$5"
case $errorcode in
1) # ERROR: The application is not configured
printLog "4 - ERROR $errorcode: The application is not configured"
;;
2) # ERROR: A 'take snapshot' process is already running
printLog "4 - ERROR $errorcode: A 'take snapshot' process is already running"
;;
3) # ERROR: Can't find snapshots folder (is it on a removable drive ?)
printLog "4 - ERROR $errorcode: Can't find snapshots folder (maybe it is on a removable drive)"
;;
4) # ERROR: A snapshot for 'now' already exist
printLog "4 - ERROR $errorcode: A snapshot for 'now' already exist"
;;
5) # ERROR: Error while taking a snapshot
printLog "4 - ERROR $errorcode: Error while taking a snapshot"
;;
6) # ERROR: New snapshot taken but with errors
printLog "4 - ERROR $errorcode: New snapshot taken but with errors (may happen with 'continue on error')"
;;
*) # Unknown error number
printLog "4 - ERROR $errorcode: Unknown error code!"
;;
esac
printLog " Error message: $msg"
;;
5) #backintime-qt4 (GUI) started
printLog "5 - backintime-qt GUI started"
;;
6) #backintime-qt4 (GUI) closed
printLog "6 - backintime-qt GUI closed"
;;
7) #Mount drives
printLog "7 - mount drive requested"
# Further diagnostics examples (use "on demand"):
# Check if a mount point is in the list of mounted devices
# mountPoint="/media/<user>/<mount root folder>" # insert your mount folder here
# printLog "Mount point status: $(mount | grep '$mountPoint')" # empty if not mounted!
# Check if a folder does exists and is readable (eg. the snapshot target folder)
# testFolder="/path/to/snapshots" # insert your path to check here
# if [[ -r $testFolder ]]; then
# printLog "Folder exists and can be read..."
# else
# printLog "Folder does not exist or cannot be read (missing permissions?)"
# fi
;;
8) #Unmount the drives
printLog "8 - unmount drive requested"
;;
*) ## Unknown reason
printLog "Called with invalid reason $reason"
;;
esac