{"id":37696,"date":"2026-01-12T21:41:32","date_gmt":"2026-01-12T18:41:32","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37696"},"modified":"2026-01-12T21:41:32","modified_gmt":"2026-01-12T18:41:32","slug":"duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/","title":{"rendered":"Duplicity ve GPG Kullanarak Ubuntu&#8217;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r?"},"content":{"rendered":"<p><body><\/p>\n<h2>Duplicity ve GPG Kullanarak Ubuntu&#8217;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<h2>Giri\u015f: Neden G\u00fcvenli ve Otomatik Yedekleme?<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz dijital d\u00fcnyas\u0131nda veri, en de\u011ferli varl\u0131klar\u0131m\u0131zdan biridir. Ki\u015fisel belgelerden kritik i\u015f verilerine kadar her \u015fey, dijital ortamlarda saklanmaktad\u0131r. Ancak donan\u0131m ar\u0131zalar\u0131, yaz\u0131l\u0131m hatalar\u0131, yanl\u0131\u015fl\u0131kla silmeler, siber sald\u0131r\u0131lar veya do\u011fal afetler gibi pek \u00e7ok risk, verilerimizin kaybolmas\u0131na yol a\u00e7abilir. Veri kayb\u0131, hem bireyler hem de kurumlar i\u00e7in ciddi maliyetlere, itibar kayb\u0131na ve operasyonel aksakl\u0131klara neden olabilir. Bu nedenle, d\u00fczenli ve g\u00fcvenli yedeklemeler yapmak, veri g\u00fcvenli\u011fi stratejisinin temel ta\u015flar\u0131ndan biridir.<\/p>\n<p>Yedekleme s\u00fcrecinin manuel olarak y\u00fcr\u00fct\u00fclmesi, hem zaman al\u0131c\u0131 hem de hata yapmaya a\u00e7\u0131k bir y\u00f6ntemdir. Bu durum, yedeklemelerin s\u0131kl\u0131\u011f\u0131n\u0131 azaltabilir veya tamamen atlanmas\u0131na neden olabilir. \u0130\u015fte tam da bu noktada otomatik yedekleme sistemleri devreye girer. Otomatik yedeklemeler, insan m\u00fcdahalesi olmadan belirli aral\u0131klarla \u00e7al\u0131\u015farak verilerinizin g\u00fcncel kalmas\u0131n\u0131 ve potansiyel kay\u0131plara kar\u015f\u0131 korunmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>G\u00fcvenlik, yedekleme stratejisinin bir di\u011fer kritik y\u00f6n\u00fcd\u00fcr. Yedeklenen veriler, orijinal veriler kadar hatta daha fazla hassas olabilir. Bu verilerin yetkisiz ki\u015filerin eline ge\u00e7mesi, ciddi gizlilik ve g\u00fcvenlik ihlallerine yol a\u00e7abilir. Bu nedenle, yedeklenen verilerin \u015fifrelenmesi ve g\u00fcvenli bir \u015fekilde depolanmas\u0131 zorunludur.<\/p>\n<p>Bu makalede, Ubuntu i\u015fletim sistemi \u00fczerinde Duplicity ve GPG (GNU Privacy Guard) ara\u00e7lar\u0131n\u0131 kullanarak nas\u0131l g\u00fcvenli ve otomatik yedekleme sistemleri kuraca\u011f\u0131m\u0131z\u0131 ayr\u0131nt\u0131l\u0131 olarak ele alaca\u011f\u0131z. Duplicity, g\u00fc\u00e7l\u00fc \u00f6zellikleri ve \u00e7e\u015fitli depolama arka u\u00e7lar\u0131na (backend) destek vermesiyle \u00f6ne \u00e7\u0131kan, bant geni\u015fli\u011fi a\u00e7\u0131s\u0131ndan verimli bir yedekleme arac\u0131d\u0131r. GPG ise, yedeklenen verilerinizin \u015fifrelenmesini sa\u011flayarak gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc koruyan, end\u00fcstri standard\u0131 bir \u015fifreleme \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Bu iki arac\u0131n birle\u015fimi, verilerinizi hem yerel hem de uzak konumlarda g\u00fcvenle saklaman\u0131z i\u00e7in g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<h2>Duplicity Nedir ve Neden Tercih Edilmeli?<\/h2>\n<p>Duplicity, \u015fifreli, bant geni\u015fli\u011fi a\u00e7\u0131s\u0131ndan verimli ve uzaktan yedekleme yapabilen bir Python tabanl\u0131 yedekleme arac\u0131d\u0131r. GNU Genel Kamu Lisans\u0131 (GPL) alt\u0131nda yay\u0131nlanan a\u00e7\u0131k kaynakl\u0131 bir yaz\u0131l\u0131md\u0131r. Duplicity&#8217;nin temel amac\u0131, yedekleme i\u015flemini m\u00fcmk\u00fcn oldu\u011funca g\u00fcvenli ve verimli hale getirmektir.<\/p>\n<h3>Duplicity&#8217;nin Temel \u00d6zellikleri<\/h3>\n<p>*   <strong>Art\u0131ml\u0131 Yedeklemeler (Incremental Backups):<\/strong> Duplicity, ilk tam yedeklemeden sonra yaln\u0131zca de\u011fi\u015fen veya yeni eklenen dosyalar\u0131 yedekleyerek disk alan\u0131 ve bant geni\u015fli\u011finden tasarruf sa\u011flar. Bu, \u00f6zellikle b\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in yedekleme s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde k\u0131salt\u0131r.<br \/>\n*   <strong>\u015eifreleme:<\/strong> Yedeklenen t\u00fcm veriler, GPG kullan\u0131larak \u015fifrelenir. Bu, verilerin depoland\u0131\u011f\u0131 yerde yetkisiz eri\u015fime kar\u015f\u0131 korunmas\u0131n\u0131 sa\u011flar. \u015eifreleme, hem veri gizlili\u011fini hem de b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc garanti eder.<br \/>\n*   <strong>\u00c7e\u015fitli Depolama Arka U\u00e7lar\u0131 (Backends):<\/strong> Duplicity, yerel dosya sistemlerinin yan\u0131 s\u0131ra SSH\/SFTP, Amazon S3, Google Cloud Storage, WebDAV, Rackspace Cloud Files, Backblaze B2, Microsoft OneDrive ve daha fazlas\u0131 gibi bir\u00e7ok uzak depolama hizmetini destekler. Bu esneklik, yedekleme hedefinizi se\u00e7me konusunda size geni\u015f bir yelpaze sunar.<br \/>\n*   <strong>Bant Geni\u015fli\u011fi Verimlili\u011fi:<\/strong> Art\u0131ml\u0131 yedeklemelerin yan\u0131 s\u0131ra, Duplicity rsync algoritmas\u0131na benzer bir yakla\u015f\u0131mla sadece de\u011fi\u015fen bloklar\u0131 yedekleyerek bant geni\u015fli\u011fini daha da optimize eder.<br \/>\n*   <strong>\u0130mzal\u0131 Manifest Dosyalar\u0131:<\/strong> Yedekleme setinin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve kimli\u011fini do\u011frulamak i\u00e7in GPG ile imzalanm\u0131\u015f manifest dosyalar\u0131 kullan\u0131r. Bu, yedekleme verilerinin manip\u00fcle edilmedi\u011finden emin olman\u0131z\u0131 sa\u011flar.<br \/>\n*   <strong>Kolay Geri Y\u00fckleme:<\/strong> Yedeklenen verilerin geri y\u00fcklenmesi, belirli bir zaman noktas\u0131na veya belirli dosyalara kadar esnek se\u00e7enekler sunar.<\/p>\n<h2>GPG (GNU Privacy Guard) Nedir ve Yedeklemelerdeki Rol\u00fc?<\/h2>\n<p>GPG veya GNU Privacy Guard, OpenPGP standard\u0131n\u0131n (RFC 4880) \u00fccretsiz bir uygulamas\u0131d\u0131r. E-postalar\u0131n, dosyalar\u0131n ve di\u011fer verilerin \u015fifrelenmesi ve dijital olarak imzalanmas\u0131 i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir kriptografik ara\u00e7t\u0131r. GPG, \u00f6zellikle hassas verilerin gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in yayg\u0131n olarak kullan\u0131l\u0131r.<\/p>\n<h3>GPG&#8217;nin \u015eifreleme Mekanizmas\u0131<\/h3>\n<p>GPG, genellikle asimetrik \u015fifreleme (a\u00e7\u0131k anahtar \u015fifrelemesi) prensibini kullan\u0131r. Bu sistemde, her kullan\u0131c\u0131n\u0131n bir \u00e7ift anahtar\u0131 vard\u0131r:<br \/>\n*   <strong>Genel Anahtar (Public Key):<\/strong> Bu anahtar, herkesle payla\u015f\u0131labilir. Verileri \u015fifrelemek veya bir imzan\u0131n do\u011frulu\u011funu kontrol etmek i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong>\u00d6zel Anahtar (Private Key):<\/strong> Bu anahtar kesinlikle gizli tutulmal\u0131d\u0131r. \u015eifrelenmi\u015f verileri \u00e7\u00f6zmek veya dijital imza olu\u015fturmak i\u00e7in kullan\u0131l\u0131r. \u00d6zel anahtar genellikle bir parola (passphrase) ile korunur.<\/p>\n<p>Duplicity ile GPG kullan\u0131ld\u0131\u011f\u0131nda:<br \/>\n1.  Duplicity, yedeklenecek verileri al\u0131r.<br \/>\n2.  Bu verileri s\u0131k\u0131\u015ft\u0131r\u0131r ve par\u00e7alara ay\u0131r\u0131r.<br \/>\n3.  Her bir par\u00e7ay\u0131, belirlenen GPG genel anahtar\u0131n\u0131 kullanarak \u015fifreler. Bu, sadece ilgili \u00f6zel anahtara sahip ki\u015finin bu verileri \u00e7\u00f6zebilece\u011fi anlam\u0131na gelir.<br \/>\n4.  Yedekleme manifest dosyalar\u0131n\u0131 da GPG \u00f6zel anahtar\u0131n\u0131zla imzalar. Bu imza, yedekleme setinin sizin taraf\u0131n\u0131zdan olu\u015fturuldu\u011funu ve aktar\u0131m s\u0131ras\u0131nda de\u011fi\u015ftirilmedi\u011fini do\u011frular.<\/p>\n<p>Bu mekanizma sayesinde, yedekleme verileriniz bulut depolama gibi \u00fc\u00e7\u00fcnc\u00fc taraf hizmetlerde saklansa bile, verilerinizin i\u00e7eri\u011fi \u015fifreli kal\u0131r ve yetkisiz eri\u015fime kar\u015f\u0131 korunur.<\/p>\n<h2>\u00d6n Gereksinimler ve Kurulum<\/h2>\n<p>Duplicity ve GPG ile g\u00fcvenli yedeklemeler kurmaya ba\u015flamadan \u00f6nce baz\u0131 \u00f6n gereksinimleri kar\u015f\u0131lamam\u0131z ve gerekli yaz\u0131l\u0131mlar\u0131 kurmam\u0131z gerekir.<\/p>\n<h3>Sistem Gereksinimleri<\/h3>\n<p>*   <strong>Ubuntu \u0130\u015fletim Sistemi:<\/strong> Bu rehber Ubuntu 20.04 LTS veya daha yeni s\u00fcr\u00fcmler i\u00e7in ge\u00e7erlidir.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Yaz\u0131l\u0131m kurulumu ve sistem yap\u0131land\u0131rmas\u0131 i\u00e7in root veya sudo yetkilerine sahip bir kullan\u0131c\u0131.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Yaz\u0131l\u0131m paketlerini indirmek i\u00e7in gereklidir.<br \/>\n*   <strong>Yeterli Depolama Alan\u0131:<\/strong> Yedeklenecek verilerin boyutuna ve yedekleme stratejinize (tam\/art\u0131ml\u0131) ba\u011fl\u0131 olarak hem kaynak sistemde (ge\u00e7ici dosyalar i\u00e7in) hem de hedef depolama alan\u0131nda yeterli bo\u015f alan olmal\u0131d\u0131r.<\/p>\n<h3>Duplicity Kurulumu<\/h3>\n<p>Duplicity, Ubuntu&#8217;nun varsay\u0131lan depolar\u0131nda bulunur ve kurulumu olduk\u00e7a basittir:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install duplicity<\/code><\/pre>\n<p>E\u011fer belirli bir depolama arka ucunu (\u00f6rne\u011fin S3 i\u00e7in boto3) kullanacaksan\u0131z, Duplicity&#8217;nin ilgili Python k\u00fct\u00fcphanesi ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 da kurman\u0131z gerekebilir. Ancak <code>apt install duplicity<\/code> genellikle temel ba\u011f\u0131ml\u0131l\u0131klar\u0131 da \u00e7eker.<\/p>\n<h3>GPG Kurulumu (Kontrol\u00fc)<\/h3>\n<p>GPG (GNU Privacy Guard) genellikle Ubuntu sistemlerinde varsay\u0131lan olarak y\u00fckl\u00fc gelir. Kurulumunu veya varl\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">gpg --version<\/code><\/pre>\n<p>E\u011fer y\u00fckl\u00fc de\u011filse, a\u015fa\u011f\u0131daki komutla kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt install gnupg<\/code><\/pre>\n<h2>GPG Anahtar Y\u00f6netimi: G\u00fcvenli\u011fin Temeli<\/h2>\n<p>Yedekleme sisteminizin g\u00fcvenli\u011fi, GPG anahtarlar\u0131n\u0131z\u0131n g\u00fcvenli\u011fine do\u011frudan ba\u011fl\u0131d\u0131r. Bu nedenle, anahtar y\u00f6netimine \u00f6zel dikkat g\u00f6stermeliyiz. Yedeklemeler i\u00e7in \u00f6zel bir GPG anahtar \u00e7ifti olu\u015fturmak, en iyi uygulamad\u0131r.<\/p>\n<h3>Yeni Bir GPG Anahtar \u00c7ifti Olu\u015fturma<\/h3>\n<p>Yedeklemeler i\u00e7in yeni bir GPG anahtar \u00e7ifti olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">gpg --full-generate-key<\/code><\/pre>\n<p>Bu komut sizi bir dizi soruyla y\u00f6nlendirecektir:<\/p>\n<p>1.  <strong>Anahtar t\u00fcr\u00fc:<\/strong> <code>(1) RSA and RSA<\/code> (varsay\u0131lan) se\u00e7ene\u011fini se\u00e7in. Bu, hem \u015fifreleme hem de imzalama i\u00e7in bir RSA anahtar\u0131 olu\u015fturacakt\u0131r.<br \/>\n2.  <strong>Anahtar boyutu:<\/strong> <code>4096<\/code> bit (\u00f6nerilen) se\u00e7ene\u011fini se\u00e7in. Daha b\u00fcy\u00fck anahtarlar daha g\u00fcvenlidir ancak \u015fifreleme\/\u015fifre \u00e7\u00f6zme i\u015flemleri biraz daha uzun s\u00fcrebilir.<br \/>\n3.  <strong>Anahtar\u0131n ge\u00e7erlilik s\u00fcresi:<\/strong> <code>0<\/code> (anahtar\u0131n s\u00fcresi dolmaz) veya belirli bir s\u00fcre (\u00f6rne\u011fin <code>1y<\/code> bir y\u0131l i\u00e7in) belirleyebilirsiniz. Otomatik yedeklemeler i\u00e7in s\u00fcresi dolmayan bir anahtar genellikle daha pratiktir, ancak g\u00fcvenlik politikalar\u0131n\u0131za g\u00f6re s\u00fcreli anahtar da tercih edilebilir.<br \/>\n4.  <strong>Kullan\u0131c\u0131 Kimli\u011fi:<\/strong><br \/>\n    *   <strong>Ger\u00e7ek ad:<\/strong> Yedekleme sistemi i\u00e7in a\u00e7\u0131klay\u0131c\u0131 bir ad verin (\u00f6rne\u011fin, &#8220;Ubuntu Backup System&#8221; veya &#8220;ServerName Backup Key&#8221;).<br \/>\n    *   <strong>E-posta adresi:<\/strong> Ge\u00e7erli bir e-posta adresi girin. Bu, anahtar\u0131 tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r.<br \/>\n    *   <strong>Yorum:<\/strong> \u0130ste\u011fe ba\u011fl\u0131 bir yorum ekleyebilirsiniz (\u00f6rne\u011fin, &#8220;Duplicity yedeklemeleri i\u00e7in&#8221;).<br \/>\n5.  <strong>Parola (Passphrase):<\/strong> Buras\u0131 en kritik ad\u0131md\u0131r. Anahtar\u0131n\u0131z\u0131 koruyacak g\u00fc\u00e7l\u00fc bir parola belirleyin. Bu parola, \u00f6zel anahtar\u0131n\u0131z\u0131 kullanmak istedi\u011finizde sizden istenecektir. Otomatik yedeklemelerde bu parolan\u0131n nas\u0131l y\u00f6netilece\u011fini daha sonra ele alaca\u011f\u0131z. <strong>Parolan\u0131z\u0131 asla unutmay\u0131n!<\/strong> Unutman\u0131z durumunda yedeklerinizi geri y\u00fckleyemezsiniz.<\/p>\n<p>Anahtar olu\u015fturulduktan sonra, GPG anahtar halkas\u0131na eklenecektir.<\/p>\n<h3>GPG Anahtarlar\u0131n\u0131 Listeleme<\/h3>\n<p>Olu\u015fturdu\u011funuz anahtarlar\u0131 ve sistemdeki di\u011fer anahtarlar\u0131 listelemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">gpg --list-secret-keys --keyid-format LONG<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da, anahtar kimli\u011finizi (Key ID) g\u00f6receksiniz. Bu genellikle <code>sec<\/code> sat\u0131r\u0131nda <code>rsa4096\/0x<KEY_ID><\/code> \u015feklinde g\u00f6r\u00fcn\u00fcr. \u00d6rne\u011fin, <code>0xABCDEF1234567890<\/code>. Bu anahtar kimli\u011fi, Duplicity komutlar\u0131nda kullan\u0131lacakt\u0131r.<\/p>\n<h3>\u00d6zel Anahtar\u0131 G\u00fcvenli Bir \u015eekilde Yedekleme<\/h3>\n<p><strong>Bu ad\u0131m HAYAT\u0130 \u00f6nem ta\u015f\u0131r.<\/strong> \u00d6zel anahtar\u0131n\u0131z\u0131 kaybetmeniz veya unutman\u0131z durumunda, \u015fifrelenmi\u015f yedeklerinizi geri y\u00fcklemeniz m\u00fcmk\u00fcn olmayacakt\u0131r. \u00d6zel anahtar\u0131n\u0131z\u0131 fiziksel olarak g\u00fcvenli bir yerde (\u00f6rne\u011fin, \u015fifreli bir USB s\u00fcr\u00fcc\u00fc, g\u00fcvenli bir bulut depolama hizmeti veya bas\u0131l\u0131 bir kopyan\u0131n g\u00fcvenli bir kasada saklanmas\u0131) yedeklemelisiniz.<\/p>\n<p>\u00d6zel anahtar\u0131 d\u0131\u015fa aktarmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">gpg --export-secret-keys --armor <KEY_ID> > private_backup_key.asc<\/code><\/pre>\n<p><code><KEY_ID><\/code> yerine yukar\u0131da <code>--list-secret-keys<\/code> komutuyla buldu\u011funuz anahtar kimli\u011fini yaz\u0131n. Bu komut, \u00f6zel anahtar\u0131n\u0131z\u0131 <code>private_backup_key.asc<\/code> adl\u0131 bir dosyaya d\u0131\u015fa aktaracakt\u0131r. Bu dosyay\u0131 son derece g\u00fcvenli bir \u015fekilde saklay\u0131n.<\/p>\n<h3>Genel Anahtar\u0131 D\u0131\u015fa Aktarma<\/h3>\n<p>Genel anahtar\u0131 d\u0131\u015fa aktarmak, yedekleri ba\u015fka bir makinede \u00e7\u00f6zmek veya ba\u015fkalar\u0131n\u0131n size \u015fifreli veri g\u00f6ndermesini sa\u011flamak i\u00e7in yararl\u0131 olabilir. Ancak Duplicity kendi i\u00e7inde bu anahtar\u0131 kullan\u0131r, bu ad\u0131m zorunlu de\u011fildir ancak iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">gpg --export --armor <KEY_ID> > public_backup_key.asc<\/code><\/pre>\n<p>Bu komut, genel anahtar\u0131n\u0131z\u0131 <code>public_backup_key.asc<\/code> adl\u0131 bir dosyaya d\u0131\u015fa aktaracakt\u0131r. Bu dosyay\u0131, \u00f6zel anahtar kadar olmasa da, g\u00fcvenli bir yerde saklayabilirsiniz.<\/p>\n<h2>Yedekleme Depolama Alan\u0131 (Backend) Se\u00e7imi<\/h2>\n<p>Duplicity, yedekleme verilerinizi depolamak i\u00e7in \u00e7e\u015fitli &#8220;arka u\u00e7lar&#8221; (backends) veya hedefler destekler. \u0130htiya\u00e7lar\u0131n\u0131za ve g\u00fcvenlik gereksinimlerinize g\u00f6re bir veya daha fazla hedef se\u00e7ebilirsiniz.<\/p>\n<h3>Yerel Dizin<\/h3>\n<p>En basit y\u00f6ntemdir, ancak felaket kurtarma senaryolar\u0131 i\u00e7in \u00f6nerilmez (\u00e7\u00fcnk\u00fc kaynak ve yedek ayn\u0131 fiziksel ortamdad\u0131r).<\/p>\n<pre><code class=\"language-\">file:\/\/\/path\/to\/local\/backup\/directory<\/code><\/pre>\n<h3>SSH\/SFTP ile Uzak Sunucu<\/h3>\n<p>G\u00fcvenli ve yayg\u0131n olarak kullan\u0131lan bir y\u00f6ntemdir. Yedeklerinizin ba\u015fka bir sunucuda veya a\u011f depolama cihaz\u0131nda saklanmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-\">sftp:\/\/user@host:port\/path\/to\/remote\/backup\/directory\nssh:\/\/user@host:port\/path\/to\/remote\/backup\/directory<\/code><\/pre>\n<p>SSH anahtar tabanl\u0131 kimlik do\u011frulama kullanmak, parola tabanl\u0131 kimlik do\u011frulamadan daha g\u00fcvenlidir ve otomasyon i\u00e7in daha uygundur.<\/p>\n<h3>Amazon S3 gibi Bulut Depolama Hizmetleri<\/h3>\n<p>\u00d6l\u00e7eklenebilir, dayan\u0131kl\u0131 ve genellikle uygun maliyetli bir \u00e7\u00f6z\u00fcmd\u00fcr. Di\u011fer bulut depolama hizmetleri (Google Cloud Storage, Backblaze B2 vb.) de benzer \u015fekilde yap\u0131land\u0131r\u0131labilir.<\/p>\n<pre><code class=\"language-\">s3:\/\/bucket_name[\/path\/to\/backup\/directory]<\/code><\/pre>\n<p>S3 i\u00e7in AWS kimlik bilgilerinizi (Access Key ID ve Secret Access Key) ortam de\u011fi\u015fkenleri (<code>AWS_ACCESS_KEY_ID<\/code>, <code>AWS_SECRET_ACCESS_KEY<\/code>) veya <code>~\/.aws\/credentials<\/code> dosyas\u0131 arac\u0131l\u0131\u011f\u0131yla sa\u011flaman\u0131z gerekecektir.<\/p>\n<p>Bu rehberde, \u00f6rneklerimizde SSH\/SFTP ve S3&#8217;\u00fc kullanmaya odaklanaca\u011f\u0131z, ancak prensipler di\u011fer arka u\u00e7lar i\u00e7in de benzerdir.<\/p>\n<h2>Duplicity ile \u0130lk Tam Yedekleme<\/h2>\n<p>Duplicity ile bir yedekleme i\u015flemi ba\u015flatmak i\u00e7in, ilk olarak bir tam yedekleme yapman\u0131z gerekir. Bu, t\u00fcm verilerinizin bir kopyas\u0131n\u0131 olu\u015fturur ve gelecekteki art\u0131ml\u0131 yedeklemeler i\u00e7in bir temel olu\u015fturur.<\/p>\n<h3>Temel Komut Yap\u0131s\u0131<\/h3>\n<p>Duplicity komutunun genel yap\u0131s\u0131 \u015f\u00f6yledir:<\/p>\n<pre><code class=\"language-bash\">duplicity [se\u00e7enekler] <komut> <kaynak_dizin> <hedef_url><\/code><\/pre>\n<p>*   <strong><code>[se\u00e7enekler]<\/code><\/strong>: \u015eifreleme anahtarlar\u0131, hari\u00e7 tutulacak dosyalar gibi ek parametreler.<br \/>\n*   <strong><code><komut><\/code><\/strong>: <code>full<\/code> (tam yedekleme), <code>restore<\/code> (geri y\u00fckleme), <code>collection-status<\/code> (yedekleme durumu) gibi i\u015flemler.<br \/>\n*   <strong><code><kaynak_dizin><\/code><\/strong>: Yedeklenecek verilerin bulundu\u011fu yerel dizin.<br \/>\n*   <strong><code><hedef_url><\/code><\/strong>: Yedeklerin depolanaca\u011f\u0131 uzak veya yerel konumun URL&#8217;si.<\/p>\n<h3>GPG Anahtarlar\u0131yla \u015eifreleme<\/h3>\n<p>Duplicity, yedeklemeyi \u015fifrelemek ve imzalamak i\u00e7in GPG anahtarlar\u0131n\u0131z\u0131 kullan\u0131r. Bunun i\u00e7in <code>--encrypt-key<\/code> ve <code>--sign-key<\/code> se\u00e7eneklerini kullanman\u0131z gerekir.<\/p>\n<p>*   <code>--encrypt-key <KEY_ID><\/code>: Yedekleri \u015fifrelemek i\u00e7in kullan\u0131lacak GPG genel anahtar\u0131n\u0131n kimli\u011fi.<br \/>\n*   <code>--sign-key <KEY_ID><\/code>: Yedek manifest dosyalar\u0131n\u0131 imzalamak i\u00e7in kullan\u0131lacak GPG \u00f6zel anahtar\u0131n\u0131n kimli\u011fi. Bu genellikle <code>--encrypt-key<\/code> ile ayn\u0131 anahtar kimli\u011fi olur.<\/p>\n<p>Duplicity, \u015fifreleme ve imzalama i\u00e7in ayn\u0131 anahtar \u00e7iftini kullanman\u0131z\u0131 \u00f6nerir.<\/p>\n<h3>\u00d6rnek: SSH\/SFTP Hedefine Tam Yedekleme<\/h3>\n<p>\u015eimdi, <code>\/home\/user\/mydata<\/code> dizinini <code>user@remote.example.com:\/backups<\/code> adresindeki bir SSH\/SFTP hedefine tam olarak yedekleyelim. <code><YOUR_GPG_KEY_ID><\/code> yerine kendi GPG anahtar kimli\u011finizi yaz\u0131n.<\/p>\n<pre><code class=\"language-bash\">duplicity full \\\n    --encrypt-key <YOUR_GPG_KEY_ID> \\\n    --sign-key <YOUR_GPG_KEY_ID> \\\n    \/home\/user\/mydata \\\n    sftp:\/\/user@remote.example.com\/backups<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, GPG \u00f6zel anahtar\u0131n\u0131z\u0131n parolas\u0131 sizden istenecektir. Ayr\u0131ca, SSH ba\u011flant\u0131s\u0131 i\u00e7in uzak sunucunun parolas\u0131n\u0131 (e\u011fer SSH anahtar\u0131 kullanm\u0131yorsan\u0131z) veya SSH anahtar\u0131n\u0131z\u0131n parolas\u0131n\u0131 girmeniz gerekebilir.<\/p>\n<p><strong>\u00d6nemli Not:<\/strong> \u0130lk yedekleme, t\u00fcm verileri kopyalad\u0131\u011f\u0131 i\u00e7in zaman alabilir. Yedekleme tamamland\u0131\u011f\u0131nda, Duplicity size ba\u015far\u0131l\u0131 bir mesaj g\u00f6sterecektir.<\/p>\n<h2>Art\u0131ml\u0131 (Incremental) Yedeklemeler<\/h2>\n<p>Tam yedekleme yap\u0131ld\u0131ktan sonra, Duplicity gelecekteki yedeklemeler i\u00e7in varsay\u0131lan olarak art\u0131ml\u0131 modda \u00e7al\u0131\u015f\u0131r. Bu, yaln\u0131zca bir \u00f6nceki yedeklemeden bu yana de\u011fi\u015fen veya eklenen dosyalar\u0131n yedeklenece\u011fi anlam\u0131na gelir. Bu, disk alan\u0131 ve bant geni\u015fli\u011finden \u00f6nemli \u00f6l\u00e7\u00fcde tasarruf sa\u011flar.<\/p>\n<h3>Duplicity&#8217;nin Ak\u0131ll\u0131 Yakla\u015f\u0131m\u0131<\/h3>\n<p>Duplicity, hedef depolama alan\u0131nda bir &#8220;zincir&#8221; yedekleme dosyalar\u0131 olu\u015fturur. Bu zincir, bir tam yedekleme ile ba\u015flar ve ard\u0131ndan bir dizi art\u0131ml\u0131 yedekleme ile devam eder. Her art\u0131ml\u0131 yedekleme, bir \u00f6nceki yedeklemeye g\u00f6re yap\u0131lan de\u011fi\u015fiklikleri i\u00e7erir. Bu sayede, herhangi bir zamanda verilerinizi geri y\u00fcklemek i\u00e7in sadece tam yedeklemeye ve o ana kadar olan art\u0131ml\u0131 yedeklemelere ihtiya\u00e7 duyulur.<\/p>\n<h3>Art\u0131ml\u0131 Yedekleme Komutu<\/h3>\n<p>Art\u0131ml\u0131 yedekleme yapmak i\u00e7in, <code>full<\/code> anahtar kelimesini komuttan \u00e7\u0131karman\u0131z yeterlidir. Duplicity, hedefteki mevcut yedekleme zincirini otomatik olarak alg\u0131layacak ve buna g\u00f6re bir art\u0131ml\u0131 yedekleme yapacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">duplicity \\\n    --encrypt-key <YOUR_GPG_KEY_ID> \\\n    --sign-key <YOUR_GPG_KEY_ID> \\\n    \/home\/user\/mydata \\\n    sftp:\/\/user@remote.example.com\/backups<\/code><\/pre>\n<p>Bu komutu her \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Duplicity yaln\u0131zca de\u011fi\u015fen verileri yedekleyecektir. Art\u0131ml\u0131 yedeklemeler, tam yedeklemelere g\u00f6re \u00e7ok daha h\u0131zl\u0131 tamamlan\u0131r.<\/p>\n<p>Yedekleme durumunu kontrol etmek i\u00e7in <code>collection-status<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">duplicity collection-status sftp:\/\/user@remote.example.com\/backups<\/code><\/pre>\n<p>Bu komut, yedekleme zincirinizdeki tam ve art\u0131ml\u0131 yedeklemelerin bir \u00f6zetini g\u00f6sterecektir.<\/p>\n<h2>Yedeklenen Verileri Geri Y\u00fckleme<\/h2>\n<p>Yedekleme sisteminin en \u00f6nemli par\u00e7as\u0131, verileri ba\u015far\u0131yla geri y\u00fckleyebilme yetene\u011fidir. Duplicity, farkl\u0131 senaryolar i\u00e7in esnek geri y\u00fckleme se\u00e7enekleri sunar.<\/p>\n<h3>En Son Durumu Geri Y\u00fckleme<\/h3>\n<p>Yedeklenen verilerin en son s\u00fcr\u00fcm\u00fcn\u00fc belirli bir dizine geri y\u00fcklemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">duplicity restore \\\n    --encrypt-key <YOUR_GPG_KEY_ID> \\\n    sftp:\/\/user@remote.example.com\/backups \\\n    \/tmp\/restore_directory<\/code><\/pre>\n<p>Bu komut, yedekleme deposundaki en son durumu <code>\/tmp\/restore_directory<\/code> dizinine geri y\u00fckleyecektir. Geri y\u00fckleme s\u0131ras\u0131nda yine GPG \u00f6zel anahtar\u0131n\u0131z\u0131n parolas\u0131 sizden istenecektir.<\/p>\n<h3>Belirli Bir Dosyay\u0131 Geri Y\u00fckleme<\/h3>\n<p>Yedekleme setinden belirli bir dosyay\u0131 geri y\u00fcklemek istiyorsan\u0131z <code>--file-to-restore<\/code> se\u00e7ene\u011fini kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">duplicity restore \\\n    --encrypt-key <YOUR_GPG_KEY_ID> \\\n    --file-to-restore mydata\/documents\/report.docx \\\n    sftp:\/\/user@remote.example.com\/backups \\\n    \/tmp\/restore_directory<\/code><\/pre>\n<p>Bu komut, <code>mydata\/documents\/report.docx<\/code> dosyas\u0131n\u0131 (yedeklenen k\u00f6k dizine g\u00f6re yolu) <code>\/tmp\/restore_directory\/mydata\/documents\/report.docx<\/code> konumuna geri y\u00fckleyecektir.<\/p>\n<h3>Belirli Bir Zamana Geri Y\u00fckleme<\/h3>\n<p>Verileri belirli bir tarih veya zaman noktas\u0131na geri y\u00fcklemek i\u00e7in <code>--time<\/code> se\u00e7ene\u011fini kullanabilirsiniz. Zaman format\u0131 genellikle ISO 8601&#8217;dir (\u00f6rn. <code>YYYY-MM-DDTHH:MM:SS<\/code> veya <code>YYYY-MM-DD<\/code>).<\/p>\n<pre><code class=\"language-bash\">duplicity restore \\\n    --encrypt-key <YOUR_GPG_KEY_ID> \\\n    --time \"2023-10-26T10:00:00\" \\\n    sftp:\/\/user@remote.example.com\/backups \\\n    \/tmp\/restore_directory<\/code><\/pre>\n<p>Bu komut, 26 Ekim 2023 saat 10:00&#8217;daki veri durumunu geri y\u00fckleyecektir. Duplicity, belirtilen zamandan \u00f6nceki en yak\u0131n yedekleme noktas\u0131n\u0131 bulacakt\u0131r.<\/p>\n<h3>Geri Y\u00fckleme S\u0131ras\u0131nda Dikkat Edilmesi Gerekenler<\/h3>\n<p>*   <strong>GPG \u00d6zel Anahtar\u0131:<\/strong> Geri y\u00fckleme i\u015flemi i\u00e7in \u015fifrelemeyi yapan GPG \u00f6zel anahtar\u0131n\u0131n sistemde bulunmas\u0131 ve parolas\u0131n\u0131n bilinmesi zorunludur.<br \/>\n*   <strong>Hedef Dizin:<\/strong> Geri y\u00fcklenecek dizinin bo\u015f veya mevcut dosyalar\u0131 \u00fczerine yazmaya uygun oldu\u011fundan emin olun. Duplicity, mevcut dosyalar\u0131n \u00fczerine yazmadan \u00f6nce genellikle bir uyar\u0131 verir.<br \/>\n*   <strong>Test Etme:<\/strong> Yedeklemelerinizi d\u00fczenli olarak test etmek, sisteminizin felaket an\u0131nda ger\u00e7ekten \u00e7al\u0131\u015faca\u011f\u0131ndan emin olman\u0131n tek yoludur.<\/p>\n<h2>Yedeklemeleri Cron ile Otomatikle\u015ftirme<\/h2>\n<p>Duplicity&#8217;nin g\u00fcc\u00fcn\u00fc tam olarak kullanmak i\u00e7in yedekleme i\u015flemlerini otomatikle\u015ftirmeniz gerekir. Ubuntu&#8217;da bu genellikle cron zamanlay\u0131c\u0131 kullan\u0131larak yap\u0131l\u0131r.<\/p>\n<h3>Yedekleme Beti\u011fi Olu\u015fturma (backup.sh)<\/h3>\n<p>Yedekleme komutlar\u0131n\u0131z\u0131 i\u00e7eren bir betik dosyas\u0131 olu\u015fturmak, otomasyonu kolayla\u015ft\u0131r\u0131r. Bu betik, Duplicity komutunu, GPG anahtar kimli\u011fini ve di\u011fer gerekli se\u00e7enekleri i\u00e7erecektir.<\/p>\n<p>\u00d6ncelikle, beti\u011fi olu\u015fturun ve d\u00fczenlemek i\u00e7in bir metin d\u00fczenleyici a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/usr\/local\/bin\/backup.sh<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin (kendi GPG anahtar kimli\u011finizi ve yedekleme yollar\u0131n\u0131z\u0131 g\u00fcncellemeyi unutmay\u0131n):<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n<h2>GPG anahtar kimli\u011fi<\/h2>\nGPG_KEY_ID=\"<YOUR_GPG_KEY_ID>\"\n\n<h2>Yedeklenecek kaynak dizin<\/h2>\nSOURCE_DIR=\"\/home\/user\/mydata\"\n\n<h2>Yedekleme hedefi (SFTP \u00f6rne\u011fi)<\/h2>\nDEST_URL=\"sftp:\/\/user@remote.example.com\/backups\"\n\n<h2>Yedekleme g\u00fcnl\u00fck dosyas\u0131<\/h2>\nLOG_FILE=\"\/var\/log\/duplicity_backup.log\"\n\n<h2>GPG \u00f6zel anahtar parolas\u0131 (OTOMASYON \u0130\u00c7\u0130N D\u0130KKATL\u0130 KULLANILMALI!)<\/h2>\n<h2>Bu y\u00f6ntem, parolan\u0131n betik i\u00e7inde d\u00fcz metin olarak saklanmas\u0131na neden olur.<\/h2>\n<h2>Daha g\u00fcvenli alternatifler i\u00e7in a\u015fa\u011f\u0131ya bak\u0131n.<\/h2>\nexport GPG_PASSPHRASE=\"<YOUR_GPG_PASSPHRASE>\"\n\n<h2>SSH parola veya anahtar parolas\u0131 (e\u011fer SSH anahtar\u0131 kullanm\u0131yorsan\u0131z veya anahtar parolal\u0131ysa)<\/h2>\n<h2>Bu da d\u00fcz metin olarak saklanmas\u0131na neden olur. SSH anahtarlar\u0131 ve ssh-agent \u00f6nerilir.<\/h2>\n<h2>export FTP_PASSWORD=\"<YOUR_SFTP_PASSWORD>\" # SFTP i\u00e7in FTP_PASSWORD kullan\u0131l\u0131r.<\/h2>\n<h2>export SSH_ASKPASS_COMMAND=\"echo <YOUR_SSH_PASSPHRASE>\" # SSH anahtar parolas\u0131 i\u00e7in<\/h2>\n\necho \"--- Yedekleme Ba\u015flad\u0131: $(date) ---\" >> \"$LOG_FILE\"\n\n<h2>Duplicity komutu<\/h2>\nduplicity \\\n    --encrypt-key \"$GPG_KEY_ID\" \\\n    --sign-key \"$GPG_KEY_ID\" \\\n    --exclude '<strong>\/.cache\/<\/strong>' \\\n    --exclude '<strong>\/.thumbnails\/<\/strong>' \\\n    --full-if-older-than 1M \\\n    --log-file \"$LOG_FILE\" \\\n    \"$SOURCE_DIR\" \\\n    \"$DEST_URL\" 2>&1\n\n<h2>GPG_PASSPHRASE'i s\u0131f\u0131rlay\u0131n<\/h2>\nunset GPG_PASSPHRASE\n<h2>unset FTP_PASSWORD<\/h2>\n\nif [ $? -eq 0 ]; then\n    echo \"Yedekleme Ba\u015far\u0131l\u0131: $(date)\" >> \"$LOG_FILE\"\nelse\n    echo \"Yedekleme HATASI: $(date)\" >> \"$LOG_FILE\"\n    # Hata durumunda bildirim g\u00f6nderme mekanizmas\u0131 eklenebilir (\u00f6rn. e-posta)\nfi\n\n<h2>Eski yedeklemeleri temizle (\u00f6rne\u011fin, 3 aydan eski olanlar\u0131 sil)<\/h2>\necho \"--- Eski yedeklemeler temizleniyor: $(date) ---\" >> \"$LOG_FILE\"\nduplicity remove-older-than 3M --force \"$DEST_URL\" >> \"$LOG_FILE\" 2>&1\necho \"--- Temizleme Tamamland\u0131: $(date) ---\" >> \"$LOG_FILE\"<\/code><\/pre>\n<p>Beti\u011fi kaydettikten sonra, y\u00fcr\u00fct\u00fclebilir hale getirin:<\/p>\n<pre><code class=\"language-bash\">sudo chmod +x \/usr\/local\/bin\/backup.sh<\/code><\/pre>\n<h3>GPG Parola Y\u00f6netimi (GPG_PASSPHRASE)<\/h3>\n<p>Otomatik yedeklemelerde GPG \u00f6zel anahtar\u0131n\u0131z\u0131n parolas\u0131n\u0131 otomatik olarak sa\u011flamak kritik bir konudur. Yukar\u0131daki betikte <code>export GPG_PASSPHRASE=\"<YOUR_GPG_PASSPHRASE>\"<\/code> sat\u0131r\u0131n\u0131 kulland\u0131k. Bu y\u00f6ntem, parolan\u0131n betik i\u00e7inde d\u00fcz metin olarak saklanmas\u0131na neden olur ve <strong>g\u00fcvenlik a\u00e7\u0131s\u0131ndan risklidir<\/strong>. Bu y\u00f6ntemi kullan\u0131rken betik dosyas\u0131n\u0131n izinlerini s\u0131k\u0131 bir \u015fekilde ayarlad\u0131\u011f\u0131n\u0131zdan (sadece root taraf\u0131ndan okunabilir\/yaz\u0131labilir) ve sadece root kullan\u0131c\u0131s\u0131 taraf\u0131ndan \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun.<\/p>\n<p>Daha g\u00fcvenli alternatifler \u015funlard\u0131r:<br \/>\n*   <strong><code>gpg-agent<\/code>:<\/strong> Bu, GPG anahtar\u0131n\u0131z\u0131n parolas\u0131n\u0131 bir s\u00fcre bellekte tutarak tekrar tekrar girmenizi engelleyen bir ara\u00e7t\u0131r. Ancak cron i\u015fleri i\u00e7in genellikle <code>gpg-agent<\/code>&#8216;\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 ek yap\u0131land\u0131rma gerektirir.<br \/>\n*   <strong>Parolas\u0131z GPG Anahtar\u0131 (\u00d6NER\u0130LMEZ):<\/strong> \u00c7ok \u00f6zel ve izole durumlarda, yedekleme i\u00e7in parolas\u0131z bir GPG anahtar\u0131 olu\u015fturulabilir. Ancak bu, \u00f6zel anahtar\u0131n ele ge\u00e7irilmesi durumunda yedeklerinizin tamamen savunmas\u0131z kalaca\u011f\u0131 anlam\u0131na gelir. <strong>Bu yakla\u015f\u0131m genellikle \u015fiddetle \u00f6nerilmez.<\/strong><\/p>\n<p>Basit bir ev sunucusu veya ki\u015fisel kullan\u0131m i\u00e7in, iyi korunmu\u015f bir betik dosyas\u0131ndaki <code>GPG_PASSPHRASE<\/code> ortam de\u011fi\u015fkeni y\u00f6netilebilir bir risk olabilir. Kurumsal ortamlarda ise daha geli\u015fmi\u015f parola y\u00f6netimi \u00e7\u00f6z\u00fcmleri (\u00f6rne\u011fin, HashiCorp Vault gibi) d\u00fc\u015f\u00fcn\u00fclmelidir.<\/p>\n<h3>Crontab ile Zamanlama<\/h3>\n<p>Beti\u011fi cron&#8217;a eklemek i\u00e7in root kullan\u0131c\u0131s\u0131n\u0131n crontab&#8217;\u0131n\u0131 d\u00fczenleyin:<\/p>\n<pre><code class=\"language-bash\">sudo crontab -e<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyerek beti\u011fi her g\u00fcn gece 03:00&#8217;te \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-\">0 3 <em> <\/em> * \/usr\/local\/bin\/backup.sh<\/code><\/pre>\n<p>Cron s\u00f6zdizimi: <code>dakika saat ay\u0131n_g\u00fcn\u00fc ay haftan\u0131n_g\u00fcn\u00fc komut<\/code><\/p>\n<p>*   <code>0<\/code>: Dakika 0 (saatin ba\u015f\u0131)<br \/>\n*   <code>3<\/code>: Saat 03<br \/>\n<em>   <code><\/em><\/code>: Ay\u0131n her g\u00fcn\u00fc<br \/>\n<em>   <code><\/em><\/code>: Her ay<br \/>\n<em>   <code><\/em><\/code>: Haftan\u0131n her g\u00fcn\u00fc<\/p>\n<p>Crontab&#8217;\u0131 kaydedip kapat\u0131n. Yedekleme beti\u011finiz art\u0131k her g\u00fcn otomatik olarak \u00e7al\u0131\u015facakt\u0131r.<\/p>\n<h3>G\u00fcnl\u00fck Y\u00f6netimi<\/h3>\n<p>Beti\u011fin i\u00e7ine <code>LOG_FILE<\/code> de\u011fi\u015fkeni ekleyerek yedekleme \u00e7\u0131kt\u0131s\u0131n\u0131 bir dosyaya y\u00f6nlendirdik. Bu g\u00fcnl\u00fck dosyas\u0131n\u0131 d\u00fczenli olarak kontrol etmeniz, yedeklemelerin ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 veya herhangi bir hata olu\u015fup olu\u015fmad\u0131\u011f\u0131n\u0131 anlaman\u0131z i\u00e7in \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">tail -f \/var\/log\/duplicity_backup.log<\/code><\/pre>\n<p>Bu komut, g\u00fcnl\u00fck dosyas\u0131n\u0131n sonunu ger\u00e7ek zamanl\u0131 olarak g\u00f6sterir.<\/p>\n<h2>Geli\u015fmi\u015f Ayarlar ve En \u0130yi Uygulamalar<\/h2>\n<p>Duplicity ile yedekleme sisteminizi daha etkili ve g\u00fcvenli hale getirmek i\u00e7in baz\u0131 geli\u015fmi\u015f ayarlar\u0131 ve en iyi uygulamalar\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131s\u0131n\u0131z.<\/p>\n<h3>Eski Yedeklemeleri Temizleme<\/h3>\n<p>Yedekleme hedefini zamanla doldurmamak i\u00e7in eski yedeklemeleri d\u00fczenli olarak temizlemek \u00f6nemlidir. Beti\u011fimize <code>remove-older-than<\/code> komutunu ekledik, ancak farkl\u0131 stratejiler de mevcuttur:<\/p>\n<p>*   <strong><code>remove-older-than <s\u00fcre><\/code>:<\/strong> Belirtilen s\u00fcreden (\u00f6rn. <code>1M<\/code> bir ay, <code>3M<\/code> \u00fc\u00e7 ay, <code>1Y<\/code> bir y\u0131l) daha eski t\u00fcm yedeklemeleri siler.<br \/>\n*   <strong><code>remove-all-but-n-full <say\u0131><\/code>:<\/strong> En son <code>n<\/code> adet tam yedeklemeyi ve bunlara ait art\u0131ml\u0131 yedeklemeleri tutar, di\u011ferlerini siler.<br \/>\n*   <strong><code>cleanup<\/code>:<\/strong> Ba\u015far\u0131s\u0131z veya yar\u0131m kalm\u0131\u015f yedekleme par\u00e7alar\u0131n\u0131 temizler. Bu komutu d\u00fczenli olarak \u00e7al\u0131\u015ft\u0131rmak iyi bir uygulamad\u0131r.<\/p>\n<p><strong>\u00d6rnek:<\/strong> En son iki tam yedeklemeyi ve bunlara ait art\u0131ml\u0131 yedekleri tut, di\u011ferlerini sil:<\/p>\n<pre><code class=\"language-bash\">duplicity remove-all-but-n-full 2 --force sftp:\/\/user@remote.example.com\/backups<\/code><\/pre>\n<p><code>--force<\/code> se\u00e7ene\u011fi, onay istemeden i\u015flemi tamamlar; otomasyon i\u00e7in gereklidir.<\/p>\n<h3>Dosya ve Dizinleri Hari\u00e7 Tutma\/Dahil Etme<\/h3>\n<p>Yedekleme boyutunu k\u00fc\u00e7\u00fcltmek ve gereksiz dosyalar\u0131 yedeklememek i\u00e7in belirli dizinleri veya dosya t\u00fcrlerini hari\u00e7 tutabilirsiniz.<\/p>\n<p><em>   <strong><code>--exclude <dizin_yolu><\/code>:<\/strong> Belirtilen dizini veya dosyay\u0131 yedekleme d\u0131\u015f\u0131nda b\u0131rak\u0131r. Glob desenleri (<code><\/em><\/code>, <code><em><\/em><\/code>) kullan\u0131labilir.<br \/>\n    *   <code>--exclude \/home\/user\/mydata\/temp_files<\/code><br \/>\n    *   <code>--exclude '<strong>\/.cache\/<\/strong>'<\/code> (t\u00fcm <code>.cache<\/code> dizinlerini hari\u00e7 tutar)<br \/>\n    <em>   <code>--exclude '<\/em><em>\/<\/em>.tmp'<\/code> (t\u00fcm <code>.tmp<\/code> uzant\u0131l\u0131 dosyalar\u0131 hari\u00e7 tutar)<br \/>\n*   <strong><code>--include <dizin_yolu><\/code>:<\/strong> Yaln\u0131zca belirtilen dizinleri veya dosyalar\u0131 dahil eder. E\u011fer <code>--exclude<\/code> ile birlikte kullan\u0131l\u0131rsa, <code>--include<\/code> \u00f6nceliklidir.<\/p>\n<h3>Yedekleme S\u0131kl\u0131\u011f\u0131 ve Stratejisi<\/h3>\n<p>Yedekleme s\u0131kl\u0131\u011f\u0131n\u0131z, veri kayb\u0131na ne kadar toleransl\u0131 oldu\u011funuza ve verilerinizin ne s\u0131kl\u0131kla de\u011fi\u015fti\u011fine ba\u011fl\u0131d\u0131r.<\/p>\n<p>*   <strong>G\u00fcnl\u00fck art\u0131ml\u0131 yedeklemeler:<\/strong> \u00c7o\u011fu senaryo i\u00e7in iyi bir denge sunar.<br \/>\n*   <strong>Haftal\u0131k veya ayl\u0131k tam yedeklemeler:<\/strong> <code>full-if-older-than<\/code> se\u00e7ene\u011fiyle Duplicity&#8217;nin belirli aral\u0131klarla tam yedekleme yapmas\u0131n\u0131 sa\u011flayabilirsiniz. \u00d6rne\u011fin, <code>--full-if-older-than 1M<\/code> bir aydan eski tam yedekleme yoksa yeni bir tam yedekleme yapar.<\/p>\n<h3>Bant Geni\u015fli\u011fi K\u0131s\u0131tlamas\u0131<\/h3>\n<p>Yedekleme i\u015flemleri, a\u011f bant geni\u015fli\u011finizi t\u00fcketebilir. <code>--max-upload-bandwidth<\/code> se\u00e7ene\u011fi ile Duplicity&#8217;nin kullanaca\u011f\u0131 maksimum bant geni\u015fli\u011fini s\u0131n\u0131rlayabilirsiniz (KB\/s cinsinden).<\/p>\n<pre><code class=\"language-bash\">duplicity --max-upload-bandwidth 500 ... (500 KB\/s ile s\u0131n\u0131rlar)<\/code><\/pre>\n<h3>Yedeklemeleri Do\u011frulama<\/h3>\n<p>Yedekleme verilerinizin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc kontrol etmek i\u00e7in <code>verify<\/code> komutunu kullanabilirsiniz. Bu komut, yedekleme setindeki dosyalar\u0131n bozuk olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/p>\n<pre><code class=\"language-bash\">duplicity verify --compare-data sftp:\/\/user@remote.example.com\/backups \/home\/user\/mydata<\/code><\/pre>\n<p><code>--compare-data<\/code> se\u00e7ene\u011fi, yedeklenen verileri orijinal kaynakla kar\u015f\u0131la\u015ft\u0131r\u0131r. Bu, \u00e7ok zaman al\u0131c\u0131 olabilir. Genellikle sadece manifest dosyalar\u0131n\u0131 ve dosya listelerini kontrol etmek yeterlidir:<\/p>\n<pre><code class=\"language-bash\">duplicity verify sftp:\/\/user@remote.example.com\/backups \/tmp\/temp_verify_dir<\/code><\/pre>\n<h3>Yedeklemeleri D\u00fczenli Olarak Test Etme<\/h3>\n<p>Bir yedekleme plan\u0131n\u0131n en kritik ad\u0131m\u0131, yedeklemelerin ger\u00e7ekten i\u015fe yaray\u0131p yaramad\u0131\u011f\u0131n\u0131 test etmektir. D\u00fczenli aral\u0131klarla (\u00f6rne\u011fin ayda bir) k\u00fc\u00e7\u00fck bir veri k\u00fcmesini yedekten geri y\u00fcklemeyi deneyin. Bu, hem yedekleme s\u00fcrecinizin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 hem de geri y\u00fckleme i\u015flemini bildi\u011finizi do\u011frular.<\/p>\n<h3>Offsite (Uzak Konumda) Yedekleme<\/h3>\n<p>Yerel bir felaket (yang\u0131n, h\u0131rs\u0131zl\u0131k vb.) durumunda verilerinizi korumak i\u00e7in yedeklemelerinizin fiziksel olarak farkl\u0131 bir konumda saklanmas\u0131 \u00e7ok \u00f6nemlidir. SSH\/SFTP ile uzak bir sunucuya veya Amazon S3 gibi bulut depolama hizmetlerine yedeklemek, offsite yedekleme stratejisinin bir par\u00e7as\u0131d\u0131r.<\/p>\n<h2>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Duplicity ile \u00e7al\u0131\u015f\u0131rken baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte baz\u0131lar\u0131 ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<h3>GPG Anahtar\u0131 Bulunam\u0131yor veya Parola Sorunlar\u0131<\/h3>\n<p>*   <strong>Sorun:<\/strong> <code>No GPG key supplied<\/code> veya <code>GPG passphrase incorrect<\/code>.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <code>--encrypt-key<\/code> ve <code>--sign-key<\/code> se\u00e7eneklerinde do\u011fru GPG anahtar kimli\u011fini kulland\u0131\u011f\u0131n\u0131zdan emin olun. <code>gpg --list-secret-keys --keyid-format LONG<\/code> komutuyla kontrol edin.<br \/>\n    *   GPG \u00f6zel anahtar\u0131n\u0131z\u0131n parolas\u0131n\u0131 do\u011fru girdi\u011finizden emin olun. Otomatik betiklerde <code>GPG_PASSPHRASE<\/code> ortam de\u011fi\u015fkenini do\u011fru ayarlad\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n    *   GPG \u00f6zel anahtar\u0131n\u0131z\u0131n <code>~\/.gnupg<\/code> dizininde veya GPG&#8217;nin eri\u015febilece\u011fi ba\u015fka bir konumda oldu\u011fundan emin olun.<\/p>\n<h3>\u0130zin Sorunlar\u0131<\/h3>\n<p>*   <strong>Sorun:<\/strong> <code>Permission denied<\/code> hatalar\u0131, \u00f6zellikle kaynak dizinlere veya hedef depolama alan\u0131na yazarken.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   Yedekleme beti\u011fini \u00e7al\u0131\u015ft\u0131ran kullan\u0131c\u0131n\u0131n (genellikle <code>root<\/code> veya <code>sudo<\/code> ile \u00e7al\u0131\u015ft\u0131r\u0131lan kullan\u0131c\u0131) yedeklenecek dosyalara okuma ve hedef dizine yazma izinlerine sahip oldu\u011fundan emin olun.<br \/>\n    *   SFTP\/SSH hedefleri i\u00e7in, uzak sunucudaki kullan\u0131c\u0131n\u0131n hedef dizine yazma izinleri oldu\u011fundan emin olun.<br \/>\n    *   SSH anahtar\u0131 kullan\u0131yorsan\u0131z, anahtar dosyas\u0131n\u0131n izinlerinin do\u011fru oldu\u011fundan emin olun (<code>chmod 600 ~\/.ssh\/id_rsa<\/code>).<\/p>\n<h3>A\u011f Ba\u011flant\u0131s\u0131 Hatalar\u0131<\/h3>\n<p>*   <strong>Sorun:<\/strong> <code>BackendException<\/code>, <code>Connection refused<\/code>, <code>Host unreachable<\/code> gibi hatalar.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   A\u011f ba\u011flant\u0131n\u0131z\u0131 kontrol edin. Uzak sunucuya ping atarak veya SSH ile ba\u011flanmay\u0131 deneyerek ba\u011flant\u0131y\u0131 test edin.<br \/>\n    *   Uzak sunucunun g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131n (firewall) Duplicity&#8217;nin kulland\u0131\u011f\u0131 portu (\u00f6rn. SSH i\u00e7in 22) engellemedi\u011finden emin olun.<br \/>\n    *   Uzak sunucunun \u00e7al\u0131\u015f\u0131r durumda oldu\u011fundan emin olun.<\/p>\n<h3>Depolama Alan\u0131 Dolu<\/h3>\n<p>*   <strong>Sorun:<\/strong> <code>No space left on device<\/code> veya benzeri hatalar.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   Hem kaynak sistemde (ge\u00e7ici dosyalar i\u00e7in) hem de hedef depolama alan\u0131nda yeterli bo\u015f alan oldu\u011fundan emin olun.<br \/>\n    *   Eski yedeklemeleri temizlemek i\u00e7in <code>remove-older-than<\/code> veya <code>remove-all-but-n-full<\/code> komutlar\u0131n\u0131 d\u00fczenli olarak \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<h3>Duplicity Hatalar\u0131 (BackendException, vb.)<\/h3>\n<p>*   <strong>Sorun:<\/strong> Duplicity, genel bir <code>BackendException<\/code> veya ba\u015fka spesifik hatalar veriyor.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   Duplicity komutunuzun s\u00f6zdizimini dikkatlice kontrol edin.<br \/>\n    *   <code>--log-file<\/code> se\u00e7ene\u011fini kullanarak ayr\u0131nt\u0131l\u0131 g\u00fcnl\u00fck kayd\u0131 al\u0131n ve hatan\u0131n nedenini anlamaya \u00e7al\u0131\u015f\u0131n.<br \/>\n    *   Duplicity&#8217;nin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131n (\u00f6rne\u011fin S3 i\u00e7in <code>python3-boto3<\/code>) y\u00fckl\u00fc oldu\u011fundan emin olun.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Veri kayb\u0131, g\u00fcn\u00fcm\u00fcz\u00fcn en ciddi dijital tehditlerinden biridir. Duplicity ve GPG kullanarak Ubuntu \u00fczerinde kurdu\u011fumuz bu g\u00fcvenli ve otomatik yedekleme sistemi, verilerinizi \u00e7e\u015fitli risklere kar\u015f\u0131 korumak i\u00e7in sa\u011flam bir temel sunar. Duplicity&#8217;nin art\u0131ml\u0131 yedekleme yetenekleri, farkl\u0131 depolama arka u\u00e7lar\u0131na deste\u011fi ve GPG&#8217;nin g\u00fc\u00e7l\u00fc \u015fifreleme \u00f6zellikleri bir araya geldi\u011finde, hem verimli hem de g\u00fcvenilir bir \u00e7\u00f6z\u00fcm elde edilir.<\/p>\n<p>Unutulmamal\u0131d\u0131r ki, bir yedekleme sisteminin kurulumu sadece ba\u015flang\u0131\u00e7t\u0131r. Yedekleme anahtarlar\u0131n\u0131z\u0131n (\u00f6zellikle GPG \u00f6zel anahtar\u0131n\u0131z\u0131n) g\u00fcvenli\u011fini sa\u011flamak, yedeklemelerinizi d\u00fczenli olarak izlemek ve en \u00f6nemlisi, geri y\u00fckleme i\u015flemlerini periyodik olarak test etmek, veri g\u00fcvenli\u011fi stratejinizin ayr\u0131lmaz par\u00e7alar\u0131d\u0131r. Test edilmemi\u015f bir yedekleme, hi\u00e7 yedekleme yapmamak kadar riskli olabilir. Bu rehberdeki ad\u0131mlar\u0131 dikkatle takip ederek, de\u011ferli verilerinizin g\u00fcvende oldu\u011fundan emin olabilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Duplicity ve GPG Kullanarak Ubuntu&#8217;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r?\nGiri\u015f: Neden G\u00fcvenli ve Otomatik Yedekleme?\nG\u00fcn\u00fcm\u00fcz dijit","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-37696","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Duplicity ve GPG Kullanarak Ubuntu&#039;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Duplicity ve GPG Kullanarak Ubuntu&#039;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r?\" \/>\n<meta property=\"og:description\" content=\"Duplicity ve GPG Kullanarak Ubuntu&#039;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r? Giri\u015f: Neden G\u00fcvenli ve Otomatik Yedekleme? G\u00fcn\u00fcm\u00fcz dijit\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-12T18:41:32+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Duplicity ve GPG Kullanarak Ubuntu&#8217;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r?\",\"datePublished\":\"2026-01-12T18:41:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/\"},\"wordCount\":4076,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/\",\"name\":\"Duplicity ve GPG Kullanarak Ubuntu'da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-12T18:41:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Duplicity ve GPG Kullanarak Ubuntu&#8217;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Duplicity ve GPG Kullanarak Ubuntu'da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/","og_locale":"tr_TR","og_type":"article","og_title":"Duplicity ve GPG Kullanarak Ubuntu'da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r?","og_description":"Duplicity ve GPG Kullanarak Ubuntu'da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r? Giri\u015f: Neden G\u00fcvenli ve Otomatik Yedekleme? G\u00fcn\u00fcm\u00fcz dijit","og_url":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-12T18:41:32+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Duplicity ve GPG Kullanarak Ubuntu&#8217;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r?","datePublished":"2026-01-12T18:41:32+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/"},"wordCount":4076,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/","url":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/","name":"Duplicity ve GPG Kullanarak Ubuntu'da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-12T18:41:32+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/duplicity-ve-gpg-kullanarak-ubuntuda-guvenli-otomatik-yedeklemeler-nasil-yapilir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Duplicity ve GPG Kullanarak Ubuntu&#8217;da G\u00fcvenli Otomatik Yedeklemeler Nas\u0131l Yap\u0131l\u0131r?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37696"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37696\/revisions"}],"predecessor-version":[{"id":37697,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37696\/revisions\/37697"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}