Dosya Sağlama Toplamları (Checksum) ile Çevrimdışı Günlük Yedeği Nasıl Kontrol Edilir?
Dijital bir günlüğün çevrimdışı bir kopyasının kaynakla bayt bayt eşleştiğini doğrulamak için, hedeflenen kaynaktan bir SHA-256 sağlama toplamı listesi (manifest) ve dosya envanteri oluşturun; ardından yedeği bu korunan referans noktasına göre doğrulayın. Eşleşen bir sağlama toplamı, listelenen dosyaların baytları hakkındaki bir iddiayı destekler; listenin eksiksiz olduğunu, orijinal dosyaların doğru veya okunabilir olduğunu ya da güvenilmeyen bir referans noktasının özgün olduğunu göstermez.
Sağlama toplamı kontrolü size ne anlatır?
Sağlama toplamı (checksum), bir dosyanın içeriğinden hesaplanan bir değerdir. İçerik değişirse, hesaplanan değerin de farklı olması beklenir. Bu nedenle bir yedeği referans bir değerle karşılaştırmak, kopyalama veya depolama sırasındaki değişiklikleri tespit etmeye yardımcı olabilir. Digital Preservation Coalition, sağlama toplamlarını başarılı aktarımı ve dosyanın süregelen sabitliğini (fixity) kontrol etmenin bir yolu olarak tanımlar ve doğru olduğu bilinen bir referansla karşılaştırma yapılmasının önemini vurgular ([Fixity and checksums](https://www.dpconline.org/handbook/technical-solutions-and-tools/fixity-and-checksums)).
Referans noktası önemlidir: Hem referans değerini hem de karşılaştırma değerini zaten hasar görmüş olan aynı kopyadan hesaplarsanız, eşleşme dosyanın daha önceki halinin ne içerdiğini ortaya koymaz. Bir eşleşme ayrıca bir günlük girdisinin düzgün açıldığını, kaynağın eksiksiz olduğunu veya dosyaları kimin oluşturduğunu da kanıtlamaz. Bunu, bilinçli olarak seçilmiş bir dosya kümesi için yapılan bir bayt karşılaştırması olarak değerlendirin.
Kaynak kümeyi seçin ve kaydedin
Yedeklenmesi gereken kararlı bir dışa aktarılmış günlük klasörü belirleyin ve hash değerini almadan önce tüm düzenlemeleri tamamlayın. Bu örnek, gizli dosyalar da dahil olmak üzere normal dosyaları kapsar; sembolik bağlantıları (symlink) takip etmez veya çalışan canlı bir uygulama veritabanını tutarlı bir şekilde yakalamaz. Gerektiğinde bağlantılı materyalleri seçilen klasöre aktarın ve uygulamanın dışa aktarma talimatlarını kontrol edin. Oluşturulan envanteri ve bildirim listesini bu klasörün dışında saklayın.
Bu örnekler, Ubuntu Linux'ta olduğu gibi Bash ve GNU findutils/coreutils gerektirir; üzerinde değişiklik yapılmamış bir macOS veya Windows terminaline yönelik komutlar değildir. Örnekte kurgusal yerel yollar ve yeni çıktı dosya adları kullanılmaktadır. Kayıtlar için mevcut bir üst dizin kullanın; önceki referansların üzerine yazılmaması için kullanılmayan dosya adları seçin. Bunları kendi bilgisayarınızdaki yollarla değiştirin; kişisel günlüğü ve oluşturulan kayıtları yerel ortamda tutun. Ubuntu kılavuzu, `sha256sum` üretimini ve önceki bir çıktıyı doğrulamaya yarayan `--check` seçeneğini belgelemektedir ([sha256sum manual](https://manpages.ubuntu.com/manpages/noble/man1/sha256sum.1.html)).
```bash ( set -euo pipefail set -C cd "/home/example/Diary" find . -type f -print0 | LC_ALL=C sort -z > "/home/example/diary-inventory.nul" xargs -0 -r sha256sum < "/home/example/diary-inventory.nul" > "/home/example/diary-source.sha256" test -s "/home/example/diary-source.sha256" ) ```
Alt kabuk (subshell), başarısız bir dizin değişikliğinde veya işlem hattında (pipeline) durur, mevcut kayıt dosyalarının üzerine yazmayı reddeder ve boş bir sağlama toplamı listesini kabul etmez. Hata bildirirse, kısmi çıktıları referans olarak kullanmayın. Envanter NUL ayırıcıları kullanır, böylece satır sonu içeren dosya adları birbirine karışmaz. Her iki kayıt da seçilen klasörün dışında kalır. Güvenmeden önce kaynak kümeyi günlük dışa aktarımıyla karşılaştırarak gözden geçirin; bir bildirim listesi, oluşturulmadan önce atlanmış bir eki ortaya çıkaramaz.
Referans noktasını koruyun ve dosyaları kopyalayın
Bildirim listesini ve envanteri hem çalışan kaynaktan hem de çevrimdışı yedekten ayrı bir yerde saklayın. Bunları kazara düzenlemelere karşı koruyun ve uygulanabiliyorsa korunan ikinci bir kopyasını saklayın. Bir sağlama toplamı karşılaştırması, yalnızca referans noktasına güvenmek ve onu korumak için geçerli bir nedeniniz olduğunda kontrol değeri taşır. Dijital koruma kılavuzları da benzer şekilde sabitlik (fixity) bilgisini kaydedilen ve denetim için kullanılan bir veri olarak ele alır; NARA, dijital koruma programında sabitliklerin kaydedilmesini, dosya eylemlerinin izlenmesini ve manifestolar ile günlüklerin (logs) oluşturulmasını açıklar ([National Archives digital preservation](https://www.archives.gov/preservation/digital-preservation/about)).
Seçilen günlük klasörünü her zamanki dosya kopyalama yönteminizi kullanarak yedekleme sürücüsüne kopyalayın. Kontrol edilmediği zamanlarda yedeğin bağlantısını kesik tutun. Buradaki komutlar kopyalama işlemini gerçekleştirmez; zaten kopyalanmış olan dosyaları kontrol eder. Kontrol etmeden önce yedeği düzenlemekten, yeniden adlandırmaktan veya yeniden düzenlemekten kaçının; çünkü yol değişiklikleri, manifestonun beklenen dosyaları bulmasını engelleyebilir.
Kopyalanan baytları doğrulayın
Çevrimdışı sürücüyü bağlayın ve kopyalanan günlük klasörüne geçin. Kaynakta kaydedilen aynı SHA-256 algoritmasını ve göreli yolları kullanarak, referans bildirim listesine karşı kontrolü çalıştırın:
```bash ( set -euo pipefail cd "/media/example/DiaryBackup/Diary" sha256sum --check --strict "/home/example/diary-source.sha256" ) ```
Bildirim listesi `./` ile başlayan göreli yolları depolar, bu nedenle doğrulama kopyalanan günlük klasöründen çalıştırılır. `OK` ifadesi, o dosya için bir eşleşme olduğunu bildirir. Eksik veya eşleşmeyen dosyalar, hatalı biçimlendirilmiş sağlama toplamı satırları ve komut hataları inceleme gerektirir; bunları `--ignore-missing` ile gizlemeyin veya görünen birkaç `OK` satırının tüm kontrolün başarılı olduğu anlamına geldiğini varsaymayın. [Ubuntu manual](https://manpages.ubuntu.com/manpages/noble/man1/sha256sum.1.html) bu seçenekleri belgelemektedir.
Bu kontrol, yedekte bulunan ancak bildirim listesinde yer almayan fazladan dosyaları bildirmez. Fazlalıkları veya beklenmeyen dizin içeriklerini tespit etmeniz gerekiyorsa, ayrı bir adım olarak yedeğin dosya envanterini kaydedilen kaynak envanteriyle karşılaştırın. Envanter eşitliği dahi, orijinal seçiminizin kaydetmek istediğiniz her günlük öğesini içerdiğini tek başına kanıtlayamaz.
Kanıtları yok etmeden uyuşmazlıkları inceleyin
Bir dosya eşleşmezse, yolunu kaydedin ve her iki kopyayı da değiştirmeden tutun. Hedeflenen bildirim listesini ve çalışma klasörünü onaylayın, ardından kaynak ve yedeği ayrı ayrı karşılaştırın. Düzenleme, yeniden adlandırma veya tamamlanmamış bir kopyalamanın bu tutarsızlığı açıklayıp açıklamadığını kontrol edin. İnceleme sırasında eşleşmeyen kopyayı koruyun; üzerine otomatik olarak yazmak kanıtları ortadan kaldırır.
Dijital koruma kılavuzları, sabitliği kaybolan bir kopyanın yerine iyi olduğu bilinen bir kopyanın kullanılmasını önerir; bu da güvenilir başka bir kopyanın mevcut olmasına bağlıdır ([Digital Preservation Coalition](https://www.dpconline.org/handbook/technical-solutions-and-tools/fixity-and-checksums)). Kişisel bir günlük için bu, ancak mevcut kanıtlar karşılaştırıldıktan sonra verilecek bir karardır. Sağlama toplamları farklılıkları tespit eder; dosyaları onarmaz veya doğru sürümü seçmez.
Sınırlar ve pratik bir kayıt
Kaynak klasörü, referans tarihini, algoritmayı, bildirim listesinin konumunu ve her bir kontrol sonucunu içeren kısa bir yerel kayıt tutun. Daha sonraki kontroller için, değerlendirilen yedekten yeniden oluşturmak yerine belirlenen referans noktasını koruyun. Kasıtlı bir düzenleme veya dönüştürmeden sonra, yeni sürümü ayrı olarak belgeleyin. Düzenli aralıklarla dosyaları açma ve geri yükleme kontrollerine devam edin: Tek başına bayt sabitliği, günlüğünüzün kullanılabilir durumda kalıp kalmadığını söyleyemez.
