restic version
restic 0.9.6 (v0.9.6-0-gb723ca3d) ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ Ρ go1.10.4 Π½Π° linux / amd64
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π» NTFS, ΠΎΠ±ΡΠΈΠΉ Π΄Π»Ρ Windows 10 ΠΈ Ubuntu 18.04 Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠΎΠ·Π΄Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ restic ΠΈΠ· Ubuntu. ΠΠ°ΠΊ Π²Ρ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π·Π½Π°Π΅ΡΠ΅, Windows 10 ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ $RECYCLE.BIN
Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ°Π·Π΄Π΅Π»Π° Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌΡΡ
Π² ΠΊΠΎΡΠ·ΠΈΠ½Ρ. Π― Ρ
ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, Π½ΠΎ Π½Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° $RECYCLE.BIN
.
ΠΠΈΠΆΠ΅ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π», ΠΊΠ°ΠΊ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠΎ, ΡΡΠΎ Ρ Π½Π°Π±Π»ΡΠ΄Π°Ρ. ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ --exclude="\$RECYCLE.BIN"
Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΏΠΎΠΌΠ΅ΡΠ°Ρ "$ RECYCLE.BIN" (ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΌΠΎΠ³ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ, ΡΠΌ. ΠΠΈΠΆΠ΅) Π² --exclude-file
Π΄Π΅Π»Π°Π΅Ρ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
Π― Π½Π°Π±Π»ΡΠ΄Π°Ρ Π·Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ (ΠΏΠΎΠ΄ Ubuntu 18.04), ΡΠ°ΠΊ ΠΈ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· SFTP (ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π° Ubuntu 18.04).
ΠΠ°ΠΏΠΊΠ° $RECYCLE.BIN
ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² ΡΠ°ΠΉΠ» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΠΊΠ° $RECYCLE.BIN
Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ, Ρ
ΠΎΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠ² ΡΠ°ΠΉΠ» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ½ΡΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² bash:
# prepare the directory to be backed up
mkdir "data";
mkdir "data/\$RECYCLE.BIN";
touch "data/backup_this";
touch "data/\$RECYCLE.BIN"/ignore_this";
# init repo
mkdir "repo";
restic init --repo=repo/
# prepare exclude file
echo "\$RECYCLE.BIN" > exclude.file
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΄Π°ΡΠ° restic --repo=repo/ backup --verbose --verbose data/
Π΄Π°Π΅Ρ:
open repository
enter password for repository:
repository 837fc3f7 opened successfully, password is correct
lock repository
load index files
start scan on [data/]
start backup on [data/]
scan finished in 0.257s: 2 files, 0 B
new /data/$RECYCLE.BIN/ignore_this, saved in 0.004s (0 B added)
new /data/backup_this, saved in 0.000s (0 B added)
Files: 2 new, 0 changed, 0 unmodified
Dirs: 0 new, 0 changed, 0 unmodified
Data Blobs: 0 new
Tree Blobs: 1 new
Added to the repo: 372 B
processed 2 files, 0 B in 0:00
snapshot 27c00c6b saved
ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ.
ΠΡΠ΄Π°ΡΠ° restic --repo=repo/ backup --verbose --verbose --exclude="\$RECYCLE.BIN" data/
Π΄ΠΎΡ
ΠΎΠ΄Π½ΠΎΡΡΠΈ
open repository
enter password for repository:
repository 837fc3f7 opened successfully, password is correct
lock repository
load index files
using parent snapshot 27c00c6b
start scan on [data/]
start backup on [data/]
scan finished in 0.257s: 1 files, 0 B
unchanged /data/backup_this
Files: 0 new, 0 changed, 1 unmodified
Dirs: 0 new, 0 changed, 0 unmodified
Data Blobs: 0 new
Tree Blobs: 1 new
Added to the repo: 372 B
processed 1 files, 0 B in 0:00
snapshot 61c27a16 saved
ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Π²ΡΠ΄Π°ΡΠ° restic --repo=repo/ backup --verbose --verbose --exclude-file=exclude.file data/
, Π³Π΄Π΅
$ cat exclude.file
$RECYCLE.BIN
ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ
open repository
enter password for repository:
repository 837fc3f7 opened successfully, password is correct
lock repository
load index files
using parent snapshot 61c27a16
start scan on [data/]
start backup on [data/]
scan finished in 0.211s: 2 files, 0 B
unchanged /data/backup_this
new /data/$RECYCLE.BIN/ignore_this, saved in 0.003s (0 B added)
Files: 1 new, 0 changed, 1 unmodified
Dirs: 0 new, 0 changed, 0 unmodified
Data Blobs: 0 new
Tree Blobs: 0 new
Added to the repo: 0 B
processed 2 files, 0 B in 0:00
snapshot 9a62470f saved
Π’ΠΎ Π΅ΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ, Ρ ΠΎΡΡ ΠΎΠ½ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠ°ΠΉΠ»Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ°Π·Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ°ΠΉΠ»Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΠΈΠ·Π±Π΅Π³Π°Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π»Π°ΡΠ°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Π²ΡΡΠ΅ΠΊ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π°), Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π»ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°ΡΠ°), Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Ρ ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Ρ ΠΎ go (Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° C ++), Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ ΠΠ‘ ΠΈ / ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΡΠ°Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ.
Π― ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ restic ΠΊΠ°ΠΊ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ Ρ
ΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ!
ΠΡΠ»ΠΈ Ρ ΠΌΠΎΠ³Ρ ΠΎΠΊΠ°Π·Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ.
ΠΠ΅ ΡΠ²Π΅ΡΠ΅Π½ Π½Π°ΡΡΠ΅Ρ --exclude
, Π½ΠΎ Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
restic ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ $$RECYCLE.BIN
ΡΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ.
Π‘ΠΌ. Https://restic.readthedocs.io/en/latest/040_backup.html#excluding -files
Π§ΡΠΎ ΠΆ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΠ» ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°Π±Π·Π°Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΠΆΠ΅ΡΡΡ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ:
$ cat exclude.file
$$RECYCLE.BIN
ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½Π°Ρ Π²ΡΠ΄Π°ΡΠ° restic --repo=repo/ backup --verbose --verbose --exclude-file=exclude.file data/
Π΄Π°Π΅Ρ
open repository
enter password for repository:
repository 837fc3f7 opened successfully, password is correct
lock repository
load index files
using parent snapshot 96bdd658
start scan on [data/]
start backup on [data/]
scan finished in 0.211s: 1 files, 0 B
unchanged /data/backup_this
Files: 0 new, 0 changed, 1 unmodified
Dirs: 0 new, 0 changed, 0 unmodified
Data Blobs: 0 new
Tree Blobs: 0 new
Added to the repo: 0 B
processed 1 files, 0 B in 0:00
snapshot 5c475b96 saved
ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Π·Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 10-Π»Π΅ΡΠ½ΠΈΠΉ ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Linux Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ $
ΠΏΠΎΠΌΠΎΡΡΡ $$
Π²ΠΌΠ΅ΡΡΠΎ \$
, Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ Π΄Π»Ρ os.ExpandEnv
, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ restic.
ΠΠ΄Π½Π°ΠΊΠΎ restic --repo=repo/ backup --verbose --verbose --exclude="$$RECYCLE.BIN" data/
Π΄Π°Π΅Ρ
open repository
enter password for repository:
repository 837fc3f7 opened successfully, password is correct
lock repository
load index files
using parent snapshot 5c475b96
start scan on [data/]
start backup on [data/]
scan finished in 0.204s: 2 files, 0 B
new /data/$RECYCLE.BIN/ignore_this, saved in 0.002s (0 B added)
unchanged /data/backup_this
Files: 1 new, 0 changed, 1 unmodified
Dirs: 0 new, 0 changed, 0 unmodified
Data Blobs: 0 new
Tree Blobs: 0 new
Added to the repo: 0 B
processed 2 files, 0 B in 0:00
snapshot ed44b219 saved
ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠ°ΡΠΈΠΌ ΠΈΠ½ΡΡΠΈΡΠΈΠΈ.
ΠΠ²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ Π² --exclude="$$RECYCLE.BIN"
ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΡΠ°ΡΡΠΈΡΡΠ΅Ρ $$
Π΄ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ PID. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ: --exclude='$$RECYCLE.BIN'
(ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° echo "$$RECYCLE.BIN"
vs echo '$$RECYCLE.BIN'
)
@kontakm ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π°. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π·Π°ΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ.