bup-restore - ekstrak file dari set cadangan
bup restore [-r host:[path]] [--outdir=outdir] [--exclude-rx pattern] [--exclude-rx-from filename] [-v] [-q] <paths...>
bup restore mengekstrak file dari set cadangan (dibuat dengan bup-save(1)) ke sistem file lokal.
jalur yang ditentukan berbentuk /cabang/revisi/beberapa/di mana. Komponen jalan adalah sebagai berikut:
nama set cadangan untuk dipulihkan; ini sesuai dengan opsi --name (-n) untuk bup save.
revisi set cadangan untuk memulihkan. Revisi terbaru selalu merupakan cadangan terbaru di cabang tertentu. Anda dapat menemukan revisi lain menggunakan bup ls /branch.
jalur yang disimpan sebelumnya (setelah pengupasan/pencangkokan) yang ingin Anda pulihkan. Misalnya, etc/passwd.
Jika beberapa/dimana menamai sebuah direktori, bup restore akan mengembalikan direktori tersebut dan kemudian mengembalikan isinya secara rekursif.
Jika some/where menamai sebuah direktori dan diakhiri dengan garis miring (mis. path/to/dir/), bup restore akan mengembalikan anak-anak dari direktori tersebut langsung ke direktori saat ini (atau --outdir ). Jika beberapa/dimana tidak diakhiri dengan garis miring, turunan akan dikembalikan ke subdirektori dari direktori saat ini.
Jika beberapa/dimana menamai direktori dan diakhiri dengan `/.' (mis. path/to/dir/.), bup restore akan melakukan persis seperti yang seharusnya dilakukan untuk path/to/dir, lalu mengembalikan metadata dir ke direktori saat ini (atau --outdir). Lihat bagian CONTOH.
Sebagai kasus khusus, jika some/where menamai symlink “terbaru ”, mis. bup restore /foo/latest, maka bup akan bertindak persis seolah-olah save yang "terbaru" menunjuk ke telah ditentukan, dan memulihkannya, daripada symlink "terbaru" itu sendiri.
Setiap kali metadata jalur tersedia, bup restore akan berusaha memulihkannya. Saat memulihkan kepemilikan, bup mengimplementasikan semantik seperti tar/rsync. Biasanya akan lebih memilih nama pengguna dan grup daripada uid dan gid saat tersedia, tetapi tidak akan mencoba memulihkan pengguna kecuali dijalankan sebagai root, dan akan kembali ke uid atau gid numerik setiap kali metadata berisi pengguna atau nama grup yang tidak ada di sistem saat ini. Penggunaan nama pengguna dan grup dapat dinonaktifkan melalui --numeric-ids (yang dapat menjadi penting saat memulihkan chroot, misalnya), dan sebagai kasus khusus, uid atau gid 0 tidak akan pernah dipetakan ulang berdasarkan nama. Selain itu, beberapa sistem tidak mengizinkan pengaturan uid/gid yang tidak sesuai dengan pengguna/grup yang dikenal. Pada sistem tersebut, bup akan mencatat kesalahan untuk setiap jalur yang relevan.
Opsi --map-user, --map-group, --map-uid, --map-gid dapat digunakan untuk menyesuaikan informasi kepemilikan yang tersedia sebelum salah satu aturan di atas diterapkan, tetapi perhatikan bahwa karena aturan tersebut , --map-uid dan --map-gid tidak akan berpengaruh setiap kali jalur memiliki pengguna atau grup yang valid. Dalam kasus tersebut, --numeric-ids harus ditentukan, atau pengguna atau grup harus dibersihkan oleh --map-user foo= atau --map-group foo= yang sesuai.
Hardlink juga akan dipulihkan jika memungkinkan, tetapi setidaknya saat ini, tidak ada tautan yang akan dibuat ke target di luar pohon pemulihan, dan jika pohon pemulihan mencakup susunan sistem file yang berbeda dari pohon penyimpanan, beberapa kumpulan hardlink mungkin tidak dipulihkan sepenuhnya.
Perhatikan juga bahwa mengubah kumpulan hardlink pada disk antara indeks dan penyimpanan dapat memberikan hasil yang tidak diharapkan. Dengan implementasi saat ini, bup akan mencoba untuk membuat ulang set hardlink yang diberikan seperti yang ada pada waktu indeks, bahkan jika semua file di set tidak masih di-hardlink (tetapi sebaliknya identik) pada waktu hemat.
Perhatikan bahwa selama proses pemulihan, akses ke data di dalam pohon pemulihan mungkin lebih permisif daripada di sumber aslinya. Kecuali jika keamanan tidak relevan, Anda harus memulihkan ke subdirektori pribadi, lalu memindahkan pohon yang dihasilkan ke posisi akhirnya. Lihat bagian CONTOH untuk demonstrasi.
pulihkan set cadangan dari server jarak jauh yang diberikan. Jika jalur dihilangkan, gunakan jalur default di server jarak jauh (Anda masih harus menyertakan `:'). Koneksi ke server jarak jauh dilakukan dengan SSH. Jika Anda ingin menentukan port, pengguna, atau kunci pribadi mana yang akan digunakan untuk koneksi SSH, kami sarankan Anda menggunakan file ~/.ssh/config.
buat dan ubah ke direktori outdir sebelum mengekstrak file.
pulihkan ID numerik (pengguna, grup, dll.) daripada nama.
mengecualikan semua pattern yang cocok dengan jalur, yang harus berupa ekspresi reguler Python (http://docs.python.org/library/re.html). Pola akan dibandingkan dengan path lengkap yang di-root di bagian atas pohon pemulihan, tanpa jangkar, jadi "x/y" akan cocok dengan "ox/yard" atau "box/yards". Untuk mengecualikan konten /tmp, tetapi bukan direktori itu sendiri, gunakan “^/tmp/. ”. (dapat ditentukan lebih dari satu kali)
Perhatikan bahwa akar pohon pemulihan (yang cocok dengan `^/') adalah bagian atas pohon arsip yang sedang dipulihkan, dan tidak ada hubungannya dengan tujuan sistem file. Diberikan “restore ... /foo/latest/etc/ ”, pola `^/passwd$' akan cocok jika file bernama passwd telah disimpan sebagai `/foo/latest/etc/passwd'.
Contoh:
kecualikan file apa pun yang bernama foo
mengecualikan setiap direktori bernama foo
mengecualikan isi dari setiap direktori bernama foo
mengecualikan konten tingkat root /tmp, tetapi tidak /tmp itu sendiri
baca pola –exclude-rx dari nama file, satu pola per baris (dapat diulang). Abaikan baris yang benar-benar kosong.
tulis data keluaran jarang jika masuk akal. Saat ini, masuk akal hanya berarti “setidaknya setiap kali ada 512 atau lebih angka nol yang berurutan”.
untuk setiap jalur, pulihkan nama pengguna lama (yang disimpan) sebagai baru. Menentukan “ ” untuk baru akan menghapus pengguna. Misalnya “–map-user foo= ” akan memungkinkan uid berlaku untuk jalur apa pun yang awalnya memiliki pengguna “foo ”, kecuali jika diganti dengan spesifikasi “–map-user foo=... ” berikutnya. Lihat DESKRIPSI di atas untuk informasi lebih lanjut.
untuk setiap jalur, pulihkan nama grup lama (tersimpan) sebagai baru. Menentukan “ ” untuk baru akan menghapus grup. Misalnya “–map-group foo= ” akan memungkinkan gid berlaku untuk setiap jalur yang awalnya memiliki grup “foo ”, kecuali jika diimbangi dengan spesifikasi “–map-group foo=... ” berikutnya. Lihat DESKRIPSI di atas untuk informasi lebih lanjut.
untuk setiap jalur, pulihkan uid lama (disimpan) sebagai baru, kecuali diganti dengan “–map-uid lama=... " pilihan. Perhatikan bahwa uid hanya akan relevan untuk jalur tanpa pengguna. Lihat DESKRIPSI di atas untuk informasi lebih lanjut.
untuk setiap jalur, pulihkan gid lama (disimpan) sebagai baru, kecuali diganti dengan “–map-gid lama=... " pilihan. Perhatikan bahwa gid hanya akan relevan untuk jalur tanpa pengguna. Lihat DESKRIPSI di atas untuk informasi lebih lanjut.
meningkatkan keluaran log. Diberikan sekali, cetak setiap direktori saat dipulihkan; diberikan dua kali, mencetak setiap file dan direktori.
menekan keluaran, termasuk pengukur kemajuan. Biasanya, jika stderr adalah tty, pengukur kemajuan menampilkan jumlah total file yang dipulihkan.
Buat set cadangan pengujian sederhana:
$ bup index -u /etc
$ bup save -n mybackup /etc/passwd /etc/profilePulihkan hanya satu file:
$ bup restore /mybackup/latest/etc/passwd
Restoring: 1, done.
$ ls -l passwd
-rw-r--r-- 1 apenwarr apenwarr 1478 2010-09-08 03:06 passwdPulihkan dll untuk menguji (tanpa garis miring):
$ bup restore -C test /mybackup/latest/etc
Restoring: 3, done.
$ find test
test
test/etc
test/etc/passwd
test/etc/profilePulihkan konten dll untuk menguji (garis miring tambahan):
$ bup restore -C test /mybackup/latest/etc/
Restoring: 2, done.
$ find test
test
test/passwd
test/profilePulihkan konten metadata etc dan etc untuk diuji (diikuti "/."):
$ bup restore -C test /mybackup/latest/etc/.
Restoring: 2, done.
# At this point test and etc's metadata will match.
$ find test
test
test/passwd
test/profilePulihkan pohon tanpa risiko akses tidak sah:
# mkdir --mode 0700 restore-tmp
# bup restore -C restore-tmp /somebackup/latest/foo
Restoring: 42, done.
# mv restore-tmp/foo somewhere
# rmdir restore-tmpPulihkan pohon, memetakan ulang pengguna dan grup lama ke pengguna dan grup baru:
# ls -l /original/y
-rw-r----- 1 foo baz 3610 Nov 4 11:31 y
# bup restore -C dest --map-user foo=bar --map-group baz=bax /x/latest/y
Restoring: 42, done.
# ls -l dest/y
-rw-r----- 1 bar bax 3610 Nov 4 11:31 yMengembalikan pohon, memetakan ulang uid lama ke uid baru. Perhatikan bahwa pengguna lama harus dihapus sehingga bup tidak akan memilihnya daripada uid:
# ls -l /original/y
-rw-r----- 1 foo baz 3610 Nov 4 11:31 y
# ls -ln /original/y
-rw-r----- 1 1000 1007 3610 Nov 4 11:31 y
# bup restore -C dest --map-user foo= --map-uid 1000=1042 /x/latest/y
Restoring: 97, done.
# ls -ln dest/y
-rw-r----- 1 1042 1007 3610 Nov 4 11:31 yCara alternatif untuk melakukan hal yang sama dengan membatalkan pengguna/grup secara universal dengan --numeric-ids:
# bup restore -C dest --numeric-ids --map-uid 1000=1042 /x/latest/y
Restoring: 97, done.bup-save(1), bup-ftp(1), bup-fuse(1), bup-web(1)
Bagian dari paket bup(1).
Avery Pennarun