Alexander Neumann
2218ecd049
archiver: Use lstat before open/fstat
...
The previous code tried to be as efficient as possible and only do a
single open() on an item to save, and then fstat() on the fd to find out
what the item is (file, dir, other). For normal files, it would then
start reading the data without opening the file again, so it could not
be exchanged for e.g. a symlink.
This behavior starts the watchdog on my machine when /dev is saved
with restic, and after a few seconds, the machine reboots.
This commit reverts the behavior to the strategy the old archiver code
used: run lstat(), then decide what to do. For normal files, open the
file and then run fstat() on the fd to verify it's still a normal file,
then start reading the data.
The downside is that for normal files we now do two stat() calls
(lstat+fstat) instead of only one. On the upside, this does not start
the watchdog. :)
2018-05-01 23:05:50 +02:00
Alexander Neumann
8026e6fdfb
Merge pull request #1749 from restic/add-cache-cmd
...
Add 'cache' command to list and cleanup cache dirs
2018-05-01 21:25:52 +02:00
Alexander Neumann
f928aeec34
Add 'cache' command
2018-05-01 16:27:44 +02:00
Alexander Neumann
eb6650b201
Add textfile
2018-05-01 14:38:59 +02:00
Alexander Neumann
bc68d55e94
fs: Add TestTempFile
2018-05-01 14:38:41 +02:00
Alexander Neumann
ecbbd851a1
Merge pull request #1744 from restic/fix-parent-detect
...
backup: Clean target paths before finding parent
2018-05-01 11:13:19 +02:00
Bryce Chidester
e9f1721678
http backend: Parse the correct argument when loading --tls-client-cert
...
Previously, the function read from ARGV[1] (hardcoded) rather than the
value passed to it, the command-line argument as it exists in globalOptions.
Resolves #1745
2018-04-30 15:21:09 -07:00
Alexander Neumann
64d98945a6
backup: Clean target paths before finding parent
...
This resolves an issue described in the forum where restic could not
find a parent snapshot if the target path ends with a slash:
https://forum.restic.net/t/new-archiver-code-please-test/623/23
2018-04-30 22:03:11 +02:00
Alexander Neumann
c83c03ed63
archiver: Fix blocking on pipes
2018-04-30 15:34:58 +02:00
Alexander Neumann
19b9c881ca
fs: Add O_NONBLOCK
2018-04-30 15:34:58 +02:00
Alexander Neumann
4e34325035
archiver: Process dirs concurrently
2018-04-30 15:13:28 +02:00
Alexander Neumann
78bd591c7c
archiver: Improve buffer pool
2018-04-30 15:13:28 +02:00
Alexander Neumann
39ac12f6ea
archiver: Correct comment
2018-04-30 14:19:07 +02:00
Alexander Neumann
400730afca
archiver: Improve memory usage, tune buffer pool
2018-04-30 14:19:07 +02:00
Alexander Neumann
d80e108b03
backup: Clear status lines on finish
2018-04-30 14:19:07 +02:00
Alexander Neumann
846c2b6869
backup: Fix ETA calculation for >= 100%
2018-04-30 14:19:07 +02:00
Alexander Neumann
16c314ab7f
termstatus: Don't print status if in background
2018-04-28 22:08:11 +02:00
Alexander Neumann
0e78ac92d8
Use new archiver code for backup
2018-04-28 22:08:11 +02:00
Alexander Neumann
1af96fc6dd
Add termstatus
2018-04-27 21:42:15 +02:00
Alexander Neumann
38926d8576
Use new archiver code in tests
2018-04-25 14:42:45 +02:00
Alexander Neumann
f279731168
Add new archiver code
2018-04-25 14:42:45 +02:00
Alexander Neumann
76b616451f
Remove unneeded code
2018-04-23 21:40:33 +02:00
Alexander Neumann
fd12a3af20
Remove old archiver code
2018-04-23 21:40:33 +02:00
Alexander Neumann
a56b8fad87
repository: Improve buffer pooling
2018-04-22 11:37:05 +02:00
Alexander Neumann
b6f98bdb02
node: Fill minimal info
2018-04-22 11:37:05 +02:00
Alexander Neumann
c4b2486b7c
fs: Add interface and FS implementations
...
This adds two implementations of the new `FS` interface: One for the local
file system (`Local`) and one for a single file read from an
`io.Reader` (`Reader`).
2018-04-22 11:37:05 +02:00
Alexander Neumann
83ca08245b
checker: Check metadata size and blob sizes
2018-04-22 11:37:05 +02:00
Alexander Neumann
6a7c23d2ae
tree: Add convenience functions
2018-04-22 11:37:05 +02:00
Alexander Neumann
cc847a3d6d
tree: Improve error for pre-existing node
2018-04-22 11:37:05 +02:00
Alexander Neumann
baebf45e2e
FindLatestSnapshot: Use absolute paths
2018-04-22 11:37:05 +02:00
Alexander Neumann
fa4f438bc1
snapshot: Do not modify slice of paths
2018-04-22 11:37:05 +02:00
Alexander Neumann
4e0b2a8e3a
snapshot: correct error handling for filepath.Abs
2018-04-22 11:37:05 +02:00
Alexander Neumann
0532f08048
Add test.Helper, also works with Go 1.8
2018-04-22 11:37:05 +02:00
Alexander Neumann
a472868e06
fs: Add TestChdir()
2018-04-22 11:37:05 +02:00
Alexander Neumann
e4fdc5eb76
fs: Add IsRegularFile()
2018-04-22 11:37:05 +02:00
Alexander Neumann
09bd924710
Do not restore sockets, correct error handling
...
Closes #1730
2018-04-20 13:53:11 +02:00
Alexander Neumann
577faa7570
local/sftp: Handling non-existing dirs in List()
2018-04-10 21:35:30 +02:00
Alexander Neumann
1c1fede399
Improve error message for orphaned pack files
2018-04-07 10:07:54 +02:00
Eri Bastos
901e1b129c
Fixed issue #1608 - Use --time argument properly
...
Backups via stdin will now handle --time argument and pass it down as
expected
2018-04-03 14:40:42 -03:00
Alexander Neumann
e68a7fea8a
check: Allow filling the cache during check
...
Closes #1665
2018-04-01 13:59:27 +02:00
Alexander Neumann
2e7ec717c1
repository: Move cache preparation into function
2018-04-01 13:59:27 +02:00
Alexander Neumann
3f48e0e0f4
Add extra options to rclone
...
For details see https://github.com/restic/restic/pull/1657#issuecomment-377707486
2018-04-01 10:34:30 +02:00
Alexander Neumann
86f4b03730
Remove unneeded byte counters
2018-04-01 10:18:38 +02:00
Alexander Neumann
c43c94776b
rclone: Make concurrent connections configurable
2018-04-01 10:18:38 +02:00
Alexander Neumann
0b776e63e7
backend/rclone: Request random file name
...
When `/` is requested, rclone returns the list of all files in the
remote, which is not what we want (and it can take quite some time).
2018-04-01 10:18:38 +02:00
Alexander Neumann
737d93860a
Extend first timeout to 60 seconds.
2018-04-01 10:18:38 +02:00
Alexander Neumann
17312d3a98
backend/rest: Ensure base URL ends with slash
...
This makes it easier for rclone.
2018-04-01 10:18:38 +02:00
Alexander Neumann
4d5c7a8749
backend/rclone: Make sure rclone terminates
2018-04-01 10:18:38 +02:00
Alexander Neumann
fc0295016a
Address code review comments
2018-04-01 10:18:38 +02:00
Alexander Neumann
99b62c11b8
backend/rclone: Stop rclone in case of errors
2018-04-01 10:18:38 +02:00