restic version
restic 0.6.1 (v0.6.1-126-gb0fb95df)
dikompilasi dengan go1.8.3 di darwin / amd64
restic backup --exclude-file ~/exclude.txt ~
sftp ke LAN
Lewati file yang cocok dengan pola di exclude.txt
File disertakan kecuali saya secara drastis melonggarkan pola ke titik di mana polanya terlalu ambigu.
Menggunakan file pengecualian seperti ini:
.[^.]*
/matt/Applications
/matt/Dropbox
/matt/Downloads
/matt/VirtualBox VMs
*.vmdk
Tujuan saya adalah untuk melewati dotfiles dan beberapa folder tertentu di direktori $ HOME saya (bernama matt
) (tetapi tidak setiap folder bernama "Aplikasi" misalnya). Oh, dan file .vmdk apa pun (ukurannya bisa sangat besar!)
Saat saya mengendurkan polanya menjadi seperti ini:
.[^.]*
Applications
Dropbox
Downloads
VirtualBox VMs
*.vmdk
itu berhasil (artinya itu melewatkan folder) tetapi ini terlalu ambigu, karena saya tidak ingin melewati semua folder bernama Download, misalnya.
Mungkin saya masih belum memahami pola pengecualian dengan benar. : smile: Saya membaca # 1005 dan saya rasa saya bingung apakah jalur absolut diperlukan untuk --exclude atau jika jalur repo-absolut diperlukan seperti dengan --include.
Pembaruan: Oke, mengganti /matt/
dengan $HOME/
tampaknya berhasil, meskipun saya menemukan ketidakkonsistenan antara --exclude dan --include jalur absolut agak aneh / mengejutkan.
Biasanya $HOME/blabla
adalah /home/matt/blabla
atau apakah Anda mengubah sesuatu di sistem Anda?
Sigh, ya, Anda benar sekali. Pola pengecualian bersifat mutlak terkait dengan apa yang Anda cadangkan:
Pola /home/matt/*.go
cocok dengan semua file Go di rumah Anda saat Anda menjalankan restic backup /home/matt
. Karena cara kerja pengarsip (lihat # 549, keputusan desain yang buruk yang perlu kita perbaiki), prefiks /home/
dihilangkan dan komponen path tingkat atas dalam snapshot adalah /matt
. Jadi untuk memulihkan, Anda perlu menggunakan pola penyertaan /matt/*.go
untuk mencocokkan file yang sama. Saya tahu itu buruk, saya akan memperbaikinya nanti :)
Jadi, ini adalah daftar file yang dikecualikan untuk kasus penggunaan Anda:
.[^.]*
/home/matt/Applications
/home/matt/Dropbox
/home/matt/Downloads
/home/matt/VirtualBox VMs
*.vmdk
@ibib Di Mac saya, direktori beranda saya adalah /Users/matt
, tetapi karena --include
menggunakan jalur repositori-absolut (seperti restic ls
pertunjukan), saya pikir jalur absolut yang tepat adalah /matt/...
.
@ fd0 Ah! Itu lebih masuk akal, terima kasih telah menjelaskan. Jadi --exclude
bila digunakan dengan restic backup
adalah mutlak untuk sistem file, dan --include
(digunakan dengan restic restore
) adalah mutlak untuk repositori. Dengan kata lain, polanya mutlak dari mana file itu berasal.
Terima kasih banyak atas penjelasannya. Sekarang saya lebih mengerti mengapa 549 adalah masalah yang ingin Anda perbaiki. :tersenyum:
Komentar yang paling membantu
Sigh, ya, Anda benar sekali. Pola pengecualian bersifat mutlak terkait dengan apa yang Anda cadangkan:
Pola
/home/matt/*.go
cocok dengan semua file Go di rumah Anda saat Anda menjalankanrestic backup /home/matt
. Karena cara kerja pengarsip (lihat # 549, keputusan desain yang buruk yang perlu kita perbaiki), prefiks/home/
dihilangkan dan komponen path tingkat atas dalam snapshot adalah/matt
. Jadi untuk memulihkan, Anda perlu menggunakan pola penyertaan/matt/*.go
untuk mencocokkan file yang sama. Saya tahu itu buruk, saya akan memperbaikinya nanti :)Jadi, ini adalah daftar file yang dikecualikan untuk kasus penggunaan Anda: