bup-restore - dosyaları bir yedekleme kümesinden çıkarın
bup restore [-r host:[path]] [--outdir=outdir] [--exclude-rx pattern] [--exclude-rx-from filename] [-v] [-q] <paths...>
bup restore, dosyaları bir yedekleme kümesinden (bup-save(1) ile oluşturulmuş) yerel dosya sistemine çıkarır.
Belirtilen yollar, /branch/revision/some/where biçimindedir. Yolun bileşenleri aşağıdaki gibidir:
geri yüklenecek yedekleme kümesinin adı; bu, bup kaydetme için --name (-n) seçeneğine karşılık gelir.
geri yüklenecek yedekleme kümesinin revizyonu. en son düzeltme, her zaman ilgili daldaki en son yedeklemedir. Bup ls /branch kullanarak diğer düzeltmeleri keşfedebilirsiniz.
geri yüklemek istediğiniz önceden kaydedilmiş yol (herhangi bir soyma/aşılamadan sonra). Örneğin, etc/passwd.
some/where bir dizini adlandırırsa, bup restore bu dizini geri yükler ve ardından tekrar tekrar içeriğini geri yükler.
some/where bir dizini adlandırıyorsa ve eğik çizgiyle bitiyorsa (yani. path/to/dir/), bup restore bu dizinin alt öğelerini doğrudan geçerli dizine (veya --outdir'e) geri yükler. some/where eğik çizgiyle bitmezse, alt öğeler geçerli dizinin bir alt dizinine geri yüklenir.
bazı/yer bir dizini adlandırıyorsa ve `/' ile bitiyorsa. (örn. path/to/dir/.), bup restore tam olarak path/to/dir için yapacağı şeyi yapacak ve ardından dir meta verilerini geçerli dizine (veya --outdir). ÖRNEKLER bölümüne bakın.
Özel bir durum olarak, eğer bazı/yer "en son" simge bağlantısını adlandırırsa, örn. bup restore /foo/latest, o zaman bup tam olarak "en son" işaret eden kaydetme belirtilmiş gibi davranacak ve "en son" simge bağlantısının kendisi yerine bunu geri yükleyecektir.
Yol meta verileri mevcut olduğunda, bup restore onu geri yüklemeye çalışır. Sahipliği geri yüklerken bup, tar/rsync benzeri semantiği uygular. Normalde kullanıcı ve grup adlarını, kullanılabilir olduklarında uid'lere ve gid'lere tercih eder, ancak root olarak çalışmadığı sürece kullanıcıyı geri yüklemeye çalışmaz ve meta veriler mevcut sistemde bulunmayan bir kullanıcı veya grup adı içerdiğinde sayısal uid veya gid'e geri döner. Kullanıcı ve grup adlarının kullanımı --numeric-ids aracılığıyla devre dışı bırakılabilir (örneğin, bir chroot'u geri yüklerken bu önemli olabilir) ve özel bir durum olarak, 0'lık bir uid veya gid asla ada göre yeniden eşlenmeyecektir. Ek olarak, bazı sistemler, bilinen bir kullanıcı/grupla uyuşmayan bir uid/gid ayarına izin vermez. Bu sistemlerde, bup ilgili her yol için bir hata günlüğe kaydeder.
--map-user, --map-group, --map-uid, --map-gid seçenekleri, yukarıdaki kurallardan herhangi biri uygulanmadan önce mevcut sahiplik bilgilerini ayarlamak için kullanılabilir, ancak bu kurallar nedeniyle, --map-uid ve --map-gid'in bir yolun geçerli bir kullanıcısı veya grubu olduğunda hiçbir etkisinin olmayacağını unutmayın. Bu durumlarda, --numeric-ids belirtilmeli veya kullanıcı veya grup uygun bir --map-user foo= veya --map-group foo= tarafından temizlenmelidir.
Sabit bağlantılar da mümkün olduğunda geri yüklenecektir, ancak en azından şu anda, geri yükleme ağacının dışındaki hedeflere bağlantı yapılmayacaktır ve geri yükleme ağacı, kaydetme ağacından farklı bir dosya sistemi düzenlemesini kapsıyorsa, bazı sabit bağlantı kümeleri tamamen geri yüklenmeyebilir.
Ayrıca, diskteki sabit bağlantı kümelerini dizin ve kaydetme arasında değiştirmenin beklenmeyen sonuçlara yol açabileceğini unutmayın. Mevcut uygulamada, bup, herhangi bir sabit bağlantı setini, kayıt zamanında setteki tüm dosyalar hala sabit bağlantılı olmasa (ancak bunun dışında aynı olsalar bile) indeks zamanında olduğu gibi yeniden yaratmaya çalışacaktır.
Geri yükleme işlemi sırasında, geri yükleme ağacındaki verilere erişimin orijinal kaynakta olduğundan daha izinli olabileceğini unutmayın. Güvenlik alakasız olmadığı sürece, özel bir alt dizine geri yüklemeniz ve ardından ortaya çıkan ağacı son konumuna taşımanız gerekir. Bir gösteri için ÖRNEKLER bölümüne bakın.
verilen uzak sunucudan yedekleme kümesini geri yükleyin. yol atlanırsa, uzak sunucudaki varsayılan yolu kullanır (':' karakterini yine de eklemeniz gerekir). Uzak sunucuya bağlantı SSH ile yapılır. SSH bağlantısı için hangi bağlantı noktası, kullanıcı veya özel anahtarın kullanılacağını belirtmek isterseniz ~/.ssh/config dosyasını kullanmanızı öneririz.
dosyaları çıkarmadan önce outdir dizinini oluşturun ve değiştirin.
adlar yerine sayısal kimlikleri (kullanıcı, grup vb.) geri yükleyin.
Python normal ifadesi olması gereken kalıp ile eşleşen herhangi bir yolu hariç tutun (http://docs.python.org/library/re.html). Model, sabitleme olmadan, geri yükleme ağacının tepesinde bulunan tam yolla karşılaştırılacaktır, böylece "x/y", "öküz/yarda" veya "kutu/yarda" ile eşleşecektir. /tmp içeriğini hariç tutmak, ancak dizinin kendisini hariç tutmak için “^/tmp/ kullanın. ”. (birden fazla belirtilebilir)
Geri yükleme ağacının kökünün (^/' ile eşleşen) geri yüklenen arşiv ağacının tepesi olduğunu ve dosya sistemi hedefiyle hiçbir ilgisi olmadığını unutmayın. "restore ... /foo/latest/etc/" verildiğinde, passwd adlı bir dosya "/foo/latest/etc/passwd" olarak kaydedilmişse, "^/passwd$" kalıbı eşleşir.
Örnekler:
fo adlı herhangi bir dosyayı hariç tutun
foo adlı herhangi bir dizini hariç tutun
foo adlı herhangi bir dizinin içeriğini hariç tutun
kök düzeyindeki /tmp içeriğini hariç tutun, ancak /tmp'nin kendisini hariç tutun
filename dosyasından –exclude-rx kalıplarını okuyun, her satıra bir kalıp (tekrarlanabilir). Tamamen boş satırları yok sayın.
makul olduğunda çıktı verilerini seyrek olarak yazın. Şu anda makul, "en azından 512 veya daha fazla ardışık sıfır olduğunda" anlamına gelir.
her yol için eski (kaydedilmiş) kullanıcı adını yeni olarak geri yükleyin. Yeni için “ ” belirtmek, kullanıcıyı temizleyecektir. Örneğin, “–map-user foo=”, sonraki bir “–map-user foo=...” belirtimi tarafından karşı çıkılmadığı sürece, kullanıcı kimliğinin başlangıçta “foo” kullanıcısı olan herhangi bir yol için etkili olmasına izin verecektir. Daha fazla bilgi için yukarıdaki AÇIKLAMA'ya bakın.
her yol için eski (kaydedilmiş) grup adını yeni olarak geri yükleyin. Yeni için “ ” belirtildiğinde grup temizlenir. Örneğin, “–map-group foo=”, sonraki bir “–map-group foo=...” belirtimi tarafından aksi belirtilmediği sürece, başlangıçta bir “foo” grubuna sahip olan herhangi bir yol için gid'in etkili olmasına izin verecektir. Daha fazla bilgi için yukarıdaki AÇIKLAMA'ya bakın.
sonraki bir “–map-uid old=... ” seçeneği tarafından karşı çıkılmadıkça, her yol için eski (kaydedilmiş) kullanıcı kimliğini yeni olarak geri yükleyin. Uid'nin yalnızca kullanıcısı olmayan yollar için geçerli olacağını unutmayın. Daha fazla bilgi için yukarıdaki AÇIKLAMA'ya bakın.
her yol için eski (kaydedilmiş) gid'i, sonraki bir “–map-gid eski=... " seçenek. Gid'in yalnızca kullanıcısı olmayan yollar için geçerli olacağını unutmayın. Daha fazla bilgi için yukarıdaki AÇIKLAMA'ya bakın.
günlük çıktısını artırın. Bir kez verildiğinde, her dizini geri yüklendiğinde yazdırır; iki kez verildiğinde, her dosya ve dizini yazdırır.
ilerleme ölçer dahil çıktıyı bastırın. Normalde, stderr bir tty ise, bir ilerleme ölçer geri yüklenen toplam dosya sayısını görüntüler.
Basit bir test yedekleme seti oluşturun:
$ bup index -u /etc
$ bup save -n mybackup /etc/passwd /etc/profileYalnızca bir dosyayı geri yükleyin:
$ bup restore /mybackup/latest/etc/passwd
Restoring: 1, done.
$ ls -l passwd
-rw-r--r-- 1 apenwarr apenwarr 1478 2010-09-08 03:06 passwdTest etmek için geri yükleyin (sondaki eğik çizgi yok):
$ bup restore -C test /mybackup/latest/etc
Restoring: 3, done.
$ find test
test
test/etc
test/etc/passwd
test/etc/profileTest etmek için etc içeriğini geri yükleyin (sondaki eğik çizgi):
$ bup restore -C test /mybackup/latest/etc/
Restoring: 2, done.
$ find test
test
test/passwd
test/profileTest etmek için etc ve etc meta verilerinin içeriğini geri yükleyin (sonunda “/. ”):
$ 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/profileYetkisiz erişim riski olmadan bir ağacı geri yükleyin:
# mkdir --mode 0700 restore-tmp
# bup restore -C restore-tmp /somebackup/latest/foo
Restoring: 42, done.
# mv restore-tmp/foo somewhere
# rmdir restore-tmpEski bir kullanıcıyı ve grubu yeni bir kullanıcı ve grupla yeniden eşleyerek bir ağacı geri yükleyin:
# 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 yEski bir kullanıcı kimliğini yeni bir kullanıcı kimliğine yeniden eşleyerek bir ağacı geri yükleyin. Bup'ın uid yerine onu tercih etmemesi için eski kullanıcının silinmesi gerektiğini unutmayın:
# 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 yKullanıcıları/grupları evrensel olarak --numeric-ids ile sınırlayarak aynı şeyi yapmanın alternatif bir yolu:
# 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)
bup(1) paketinin bir parçası.
Avery Pennarun