From 9180e2c48a01295a7c8d60571de8284390b3add6 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 11 May 2018 21:26:10 +0200 Subject: [PATCH 1/3] Remove unneeded file excludes --- cmd/restic/excludes | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 cmd/restic/excludes diff --git a/cmd/restic/excludes b/cmd/restic/excludes deleted file mode 100644 index ab2f4fd31..000000000 --- a/cmd/restic/excludes +++ /dev/null @@ -1,31 +0,0 @@ -/boot -/dev -/etc -/home -/lost+found -/mnt -/proc -/root -/run -/sys -/tmp -/usr -/var -/opt/android-sdk -/opt/bullet -/opt/dex2jar -/opt/jameica -/opt/google -/opt/JDownloader -/opt/JDownloaderScripts -/opt/opencascade -/opt/vagrant -/opt/visual-studio-code -/opt/vtk6 -/bin -/fonts* -/srv/ftp -/srv/http -/sbin -/lib -/lib64 From 18d4ac2fd93f0a381a6e483e6b98129b9e8870b8 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 11 May 2018 21:26:18 +0200 Subject: [PATCH 2/3] backup: Always use cleaned path for excludes --- cmd/restic/exclude.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmd/restic/exclude.go b/cmd/restic/exclude.go index e4a934d9b..5cfb4a535 100644 --- a/cmd/restic/exclude.go +++ b/cmd/restic/exclude.go @@ -185,6 +185,7 @@ func isDirExcludedByFile(dir, tagFilename, header string) bool { func gatherDevices(items []string) (deviceMap map[string]uint64, err error) { deviceMap = make(map[string]uint64) for _, item := range items { + item = filepath.Clean(item) fi, err := fs.Lstat(item) if err != nil { return nil, err @@ -215,6 +216,8 @@ func rejectByDevice(samples []string) (RejectFunc, error) { return false } + item = filepath.Clean(item) + id, err := fs.DeviceID(fi) if err != nil { // This should never happen because gatherDevices() would have From ef7747313d448641976eeb898da36dd2b27605c2 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 11 May 2018 21:31:13 +0200 Subject: [PATCH 3/3] backup: Use absolute paths for allowed devices --- cmd/restic/exclude.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd/restic/exclude.go b/cmd/restic/exclude.go index 5cfb4a535..9d86f9892 100644 --- a/cmd/restic/exclude.go +++ b/cmd/restic/exclude.go @@ -185,7 +185,11 @@ func isDirExcludedByFile(dir, tagFilename, header string) bool { func gatherDevices(items []string) (deviceMap map[string]uint64, err error) { deviceMap = make(map[string]uint64) for _, item := range items { - item = filepath.Clean(item) + item, err = filepath.Abs(filepath.Clean(item)) + if err != nil { + return nil, err + } + fi, err := fs.Lstat(item) if err != nil { return nil, err @@ -225,7 +229,7 @@ func rejectByDevice(samples []string) (RejectFunc, error) { panic(err) } - for dir := item; dir != ""; dir = filepath.Dir(dir) { + for dir := item; dir != filepath.Dir(dir); dir = filepath.Dir(dir) { debug.Log("item %v, test dir %v", item, dir) allowedID, ok := allowed[dir]