bup-index - bup dosya sistemi dizinini yazdırın ve/veya güncelleyin
bup index <-p|-m|-s|-u|--clear|--check> [-H] [-l] [-x] [--fake-valid] [--no-check-device] [--fake-invalid] [-f indexfile] [--exclude path] [--exclude-from filename] [--exclude-rx pattern] [--exclude-rx-from filename] [-v] <paths...>
bup dizini, mutlak yolların ve bunların meta verilerinin (öznitelikler, SHA-1 karmaları, vb.) önbelleği olan dosya sistemi dizinini yönetir. Bup indeksi fonksiyon olarak git(1) indeksine benzer ve varsayılan indeks $BUP_DIR/bupindex içinde bulunabilir.
bup'ta bir yedekleme oluşturmak iki adımdan oluşur: dizini bup dizini ile güncellemek, ardından dosyaları (veya dosyaların bir alt kümesini) bup kaydetme ile gerçekten yedeklemek. Ayrılık şu nedenlerle vardır:
Yedeklenmesi gereken dosyaların bir listesini oluşturmanın birden fazla yolu vardır. Örneğin, inotify(7) veya dnotify(7) kullanmak isteyebilirsiniz.
Dosyaları birden çok hedefe yedekleseniz bile (ek fazlalık için), dosya adları, nitelikler ve karmalar her seferinde aynı olacaktır. Böylece, her yedekleme kümesi için dosya listesini tekrar tekrar oluşturma zahmetinden kurtulabilirsiniz.
Bup indeksi tarafından izlenen verileri başka amaçlar için kullanmak isteyebilirsiniz (aynı bilgiye ihtiyaç duyan diğer programları hızlandırmak gibi).
Şu anda bup, bazı sistemlerde (sizeof(long) < sizeof(int)) olan herhangi bir big-endian sisteminde Linux özniteliklerini (bkz. chattr(1) ve lsattr(1)) yok sayacaktır. Bunun nedeni, Linux çekirdeği ve FUSE'nin şu anda attr sistem çağrısı bağımsız değişkenlerinin türü konusunda anlaşmazlığa düşmesidir ve bu nedenle big-endian sistemlerinde yığın bozulması riski olmadan sonuçları almanın bir yolu yoktur (http://lwn.net/Articles) /575846/). Bu durumlarda, herhangi bir dizin/kaydet/geri yükle işlemi sırasında Linux özniteliklerinin ilgili olduğu ilk kez bup bir uyarı yazdıracaktır.
bup, beklenen "en kötü durum" dosya sistemi zaman damgası çözünürlüğü için ayarlamalar yapar - şu anda bir saniye; örnekler arasında VFAT, ext2, ext3, küçük ext4 vb. yer alır. Bup, dosya sistemi zaman damgası çözünürlüğünü bilemediğinden ve herhangi bir çalıştırma sırasında birden çok dosya sisteminden geçebileceğinden, her zaman çözünürlüğün bir saniyeden daha iyi olmayabileceğini varsayar.
Pratik bir konu olarak, bu, dizin güncellemelerinin biraz kesin olmadığı anlamına gelir ve bu nedenle bup save, ara sıra beklemediğiniz dosya sistemi değişikliklerini kaydedebilir. Bunun nedeni, bir dizin güncellemesi sırasında, bup'ın gerçek zaman damgaları güncelleme başlamadan önceki bir saniyeden daha yeni olan bir yolla karşılaşması durumunda, bup'un bu yol için dizin zaman damgalarını (mtime ve ctime) çalıştırmadan tam olarak bir saniye önceye ayarlamasıdır, – bu değerleri etkili bir şekilde sınırlandırmak.
Bu, bu yollarda daha sonra yapılacak hiçbir değişikliğin, dizindekilerle aynı zaman damgalarıyla sonuçlanmamasını sağlar. Bu mümkün olsaydı, bup değişiklikleri gözden kaçırabilirdi.
Bu davranışın etkisini bu örnekte görebilirsiniz (ilk dosya oluşturma ile ilk dizin çalıştırma arasında bir saniyeden az bir süre geçtiğini varsayalım):
$ touch src/1 src/2
# A "sleep 1" here would avoid the unexpected save.
$ bup index src
$ bup save -n src src # Saves 1 and 2.
$ date > src/1
$ bup index src
$ date > src/2 # Not indexed.
$ bup save -n src src # But src/2 is saved anyway.Açıkça söylemek gerekirse, bup src/2'deki değişikliği fark etmemelidir, ancak yukarıda açıklanan kolaylıklar nedeniyle fark eder.
verilen yollar ve bunların alt öğeleri için dizini yinelemeli olarak güncelleyin. Bir veya daha fazla yol belirtilmelidir ve bir yol sembolik bir bağlantıyla sona ererse, hedef değil, bağlantının kendisi dizine eklenir. Herhangi bir kip seçeneği verilmezse, --update varsayılandır ve --exclude, --exclude-rx ve --one-file-system seçenekleriyle yollar hariç tutulabilir.
dizinin içeriğini yazdırın. Yollar verilmişse, verilen girişleri ve bunların alt öğelerini gösterir. Hiçbir yol belirtilmemişse, geçerli çalışma dizininden (.) başlayan girişleri gösterir.
yalnızca dizinde değiştirilmiş (yani en son yedeklemeden bu yana değiştirilen) olarak işaretlenen dosyaları yazdırır. -p anlamına gelir.
her yolun önüne bir durum kodu (A, M, D veya boşluk) ekleyin. -p anlamına gelir. Kodlar sırasıyla, bir dosyanın dizinde son yedeklemeden bu yana eklenmiş, değiştirilmiş, silinmiş veya değiştirilmemiş olarak işaretlendiği anlamına gelir.
Güncellemeden önce ve sonra indeks dosyası bütünlüğünü dikkatlice kontrol edin. Çoğunlukla otomatik testler için kullanışlıdır.
varsayılan dizini temizle.
yazdırılan her dosya için en son kaydedilen karma kodu başa ekleyin. Hash kodu normalde bup save tarafından üretilir. Henüz yedeklenmemiş nesneler için hash kodu 0000000000000000000000000000000000000 olacaktır. Dosyanın dizinde değiştirildiği veya silindiği bilinse bile karma kodun yazdırıldığını unutmayın (örn. dosya sistemindeki dosya artık dosya sistemindeki dosyayla eşleşmez). kaydedilen hash). Bu sizin için bir sorunsa, --status'u kullanın.
ls(1) için -l seçeneğine benzer bir biçimde her dosya hakkında daha fazla bilgi yazdırın.
dosya sisteminde gezinirken dosya sistemi sınırlarını aşmayın - tar ve rsync'de olduğu gibi, bağlama noktalarının kendisi yine de dizine eklenecektir. Yalnızca -u kullanıyorsanız geçerlidir.
belirtilen yolları güncel olmasalar bile güncel olarak işaretleyin. Bu, test etmek veya sıkıcı olduğunu bildiğiniz dosyaları gereksiz yere yedeklemekten kaçınmak için yararlı olabilir.
belirtilen yolları güncel değil olarak işaretleyerek bir sonraki "bup save" çalıştırmasını içeriklerini yeniden kontrol etmeye zorlar.
$BUP_DIR/bupindex yerine farklı bir dizin dosya adı kullanın.
yolu yedeklemeden hariç tutun (tekrarlanabilir).
read –yolları dosyaadı'ndan hariç tut, her satıra bir yol (tekrarlanabilir). Tamamen boş satırları yok sayın.
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 tam yolla karşılaştırılacaktır, bu nedenle "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. ”. (tekrarlanabilir)
Örnekler:
`/foo$' - foo adlı herhangi bir dosyayı hariç tutun
`/foo/$' - foo adlı herhangi bir dizini hariç tutun
`/foo/.' - foo adlı herhangi bir dizinin içeriğini hariç tutun
`^/tmp/.' - 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.
cihaz numarası (stat(2) st_dev) değişirse bir girişi geçersiz olarak işaretlemeyin. Bu, aygıt numarasının sabit olmadığı uzak, otomatik bağlanan veya anlık görüntü dosya sistemlerini (LVM, Btrfs, vb.) dizine eklerken faydalı olabilir.
güncelleme sırasında günlük çıktısını artırın (birden fazla kullanılabilir). Bir -v ile her dizini güncellendikçe yazdırın; iki -v ile her dosyayı da yazdırın.
bup index -vux /etc /var /usrbup-save(1), bup-drecurse(1), bup-on(1)
bup(1) paketinin bir parçası.
Avery Pennarun