Saya tidak tahu pasti, tapi pasti beberapa alat seperti 7-zip akan dapat mengompres data dari STDIN, yang berarti Anda bisa menggunakan gaya pertama di Windows juga.
nickf
5
Saya hanya melihat ini sendiri dan satu komentar dari docs svnbook.red-bean.com/nightly/en/… adalah bahwa Anda akan mendapatkan output dump svnadmin yang sangat besar, kecuali jika Anda menggunakan opsi --deltas.
Menggunakan 7Zip: svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn Ini akan membuat file bernama 'backup.7z' yang berisi satu file, 'backupname.svn', yang merupakan output dari svnadmin dump.
Matt
4
@Josh Stodola bash :for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
Anda dapat menjalankan perintah ini kapan saja dan membuat salinan repositori yang aman, terlepas dari apakah proses lain menggunakan repositori.
Anda tentu saja dapat menyalin salinan cadangan (lebih disukai 7-Zip). IMHO Ini yang paling mudah dari opsi cadangan: jika terjadi bencana ada sedikit yang harus dilakukan selain unzip kembali ke posisi semula.
@demonemon: Saya sarankan Anda membaca balasan ke posting yang Anda tautkan, khususnya yang menyebutkan dump svnadmin tidak termasuk file kontrol repo.
Powerlord
ras dekat, tetapi, saya memberikan suara untuk svnadmin dump setelah membaca balasan yang disarankan oleh R. Bemrose
mobibob
Perintah hotcopy tidak menimpa atau menambah cadangan yang dihasilkannya. Jadi jika Anda berencana untuk mengotomatiskannya di windows menggunakan penjadwal tugas, lihat file batch berikut: cfchimp.com/wordpress/2008/05/…
Ryan Sampson
1
Sebuah kata peringatan. Jangan hotcopy salinan mirror dari repositori saat svnsync sedang berjalan! Salinan yang dihasilkan mungkin rusak. Lihat utas ini untuk detail: subversion.open.collab.net/ds/…
zvolkov
24
Ada skrip hotbackup.py yang tersedia di situs web Subversion yang cukup berguna untuk mengotomatisasi cadangan.
Saya menggunakan svnsync , yang mengatur server jauh sebagai mirror / slave. Kami memiliki server turun dua minggu yang lalu, dan saya dapat dengan mudah mengganti slave ke posisi utama (hanya harus mereset UUID pada repositori slave ke yang asli).
Manfaat lain adalah bahwa sinkronisasi dapat dijalankan oleh perantara, bukan sebagai tugas di kedua server. Saya punya klien untuk dua VPN yang menyinkronkan repositori di antara mereka.
jadi itu menyinkronkan versi repo terbaru antara keduanya jelas?
PositiveGuy
1
Meskipun dalam judul, saya tidak tahu bahwa saya akan menyebutnya "sinkronisasi". Ini benar-benar cadangan, di mana ia akan mengambil revisi pada master dan meletakkannya di slave. Jika Anda membuat modifikasi pada slave, mereka akan merusak "sinkronisasi", atau mengakibatkan kegilaan. Tujuan penggunaan alat ini adalah untuk membuat mirror di luar situs, hanya-baca, tetapi melakukan pekerjaan yang mengagumkan untuk membuat server cadangan.
Tom Mayfield
1
Manfaat svnsync adalah Anda dapat menjalankan ini sangat sering. Setiap sepuluh menit atau bahkan di setiap komit (menggunakan kail). Manfaatnya adalah bahwa seseorang dapat mengurangi potensi kehilangan data yang sebaliknya Anda dapatkan antara cadangan terakhir dan ketika repo langsung hilang.
Jadi, jika Anda diizinkan untuk menghentikan server, lakukan dan salin repositori, baik dengan beberapa skrip atau alat cadangan. Cadangan Cobian cocok di sini karena dapat menghentikan dan memulai layanan secara otomatis, dan dapat melakukan pencadangan tambahan sehingga Anda hanya mencadangkan bagian repositori yang telah berubah baru-baru ini (berguna jika repositori besar dan Anda mencadangkan ke lokasi jauh ).
Contoh:
Instal Cobian Backup
Tambahkan tugas cadangan:
Setel sumber ke folder repositori (mis. C:\Repositories\),
Tambahkan "STOP_SERVICE"VisualSVN acara pra-cadangan ,
Tambahkan acara pasca-pencadangan, "START_SERVICE"VisualSVN,
Tetapkan opsi lain sesuai kebutuhan. Kami telah menyiapkan cadangan tambahan termasuk menghapus yang lama, jadwal cadangan, tujuan, termasuk kompresi. pemisahan arsip dll.
ada 2 metode utama untuk mem-backup server svn, pertama adalah hotcopy yang akan membuat salinan file repositori Anda, masalah utama dengan pendekatan ini adalah menyimpan data tentang sistem file yang mendasarinya, sehingga Anda mungkin mengalami beberapa kesulitan mencoba repostore jenis cadangan ini dalam jenis server svn lain atau mesin lain. ada jenis cadangan lain yang disebut dump, cadangan ini tidak akan menyimpan informasi apa pun dari sistem file yang mendasarinya dan dapat diminum ke segala jenis server SVN yang berbasis di subversi tigiris.org.
tentang alat cadangan Anda dapat menggunakan alat svnadmin (dapat melakukan hotcopy dan dump) dari command prompt, konsol ini berada di direktori yang sama di mana server svn Anda tinggal atau Anda dapat mencari alat cadangan svn di google.
rekomendasi saya adalah bahwa Anda melakukan kedua jenis cadangan dan membawanya keluar dari kantor ke akun email Anda, layanan amazon s3, ftp, atau layanan biru, dengan cara itu Anda akan memiliki cadangan yang aman tanpa harus meng-host server svn di suatu tempat di luar kantormu.
Alat sederhana ini memungkinkan untuk membuat cadangan dump repositori subversi lokal dan jarak jauh. Perangkat lunak bekerja dengan cara yang sama dengan "svnadmin" tetapi bukan antarmuka GUI di atasnya. Alih-alih gunakan langsung pustaka subversi untuk memungkinkan membuat dump dalam mode mandiri tanpa alat tambahan lainnya.
Terima kasih telah berbagi ini, tidak persis seperti yang dinyatakan.
Ed DeGagne
3
Saya suka menyalin seluruh direktori repo ke lokasi cadangan saya. Dengan begitu, jika sesuatu terjadi, Anda bisa menyalin direktori kembali dan siap untuk segera pergi.
Pastikan untuk menjaga izin, jika perlu. Biasanya, ini hanya masalah pada mesin Linux.
ini tidak sepenuhnya aman jika seseorang membuat komit selama operasi penyalinan - saya pernah mengalami ini bahkan dengan hanya 4 orang yang memiliki akses ke repo dan jarang menggunakannya. Lihat jawaban Duncan tentang menggunakan hotcopy.
nickf
Namun, jika Anda bekerja sepenuhnya solo, maka saya menganggap ini adalah cara yang aman untuk membuat cadangan repo? Saya menggunakan subversi untuk proyek pribadi saya, dan inilah yang saya lakukan saat ini.
Andrew Garrison
3
Untuk repositori yang di-host, Anda dapat sejak svn menggunakan versi 1.7 svnrdump, yang analog dengan svnadmin dumprepositori lokal. Artikel ini menyediakan walk-through yang bagus, yang intinya bermuara pada:
Jika Anda menggunakan format repositori FSFS (default), maka Anda dapat menyalin repositori itu sendiri untuk membuat cadangan. Dengan sistem BerkleyDB yang lebih lama, repositori tidak bebas platform dan Anda biasanya ingin menggunakan svnadmin dump.
@echo off
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set folder=%date:~6,4%%date:~3,2%%date:~0,2%%hour%%time:~3,2%
echo Performing Backup
md "\\HOME\Development\Backups\SubVersion\%folder%"
svnadmin dump "C:\Users\Yakyb\Desktop\MainRepositary\Jake" | "C:\Program Files\7-Zip\7z.exe" a "\\HOME\Development\Backups\SubVersion\%folder%\Jake.7z" -sibackupname.svn
Ini adalah File Batch yang saya jalankan yang menjalankan Backups saya
Ini membutuhkan waktu dan mengatakan bahwa itu mengambil log dari repositori. Ini menciptakan satu set file di dalamnya C:\Documents and Settings\nverma\.svk\local.
Untuk memperbarui repositori lokal ini dengan set perubahan terbaru dari jarak jauh, jalankan saja perintah sebelumnya dari waktu ke waktu.
Sekarang Anda dapat bermain dengan repositori lokal Anda (/home/user/.svk/local dalam contoh ini) seolah-olah itu adalah repositori SVN normal!
Satu-satunya masalah dengan pendekatan ini adalah bahwa repositori lokal dibuat dengan peningkatan revisi oleh revisi aktual dalam repositori jarak jauh. Seperti seseorang menulis:
Perintah miror svk menghasilkan komit di repositori yang baru saja dibuat. Jadi semua komit yang dibuat oleh sinkronisasi selanjutnya akan memiliki angka revisi yang bertambah satu dibandingkan dengan repositori publik jarak jauh.
Tapi, ini tidak masalah bagi saya karena saya hanya ingin cadangan dari repositori jarak jauh dari waktu ke waktu, tidak ada yang lain.
Verifikasi:
Untuk memverifikasi, gunakan klien SVN dengan repositori lokal seperti ini:
svn checkout "file:///C:/Documents and Settings\nverma/.svk/local/" <local-dir-path-to-checkout-onto>
Perintah ini kemudian digunakan untuk checkout revisi terbaru dari repositori lokal. Pada akhirnya dikatakan Checked out revision N. IniN adalah satu lebih dari revisi aktual yang ditemukan di repositori jarak jauh (karena masalah yang disebutkan di atas).
Untuk memverifikasi bahwa svk juga membawa semua sejarah, checkout SVN dijalankan dengan berbagai revisi lama menggunakan -rdengan 2, 10, 50 dll. Lalu file-file di<local-dir-path-to-checkout-onto> dikonfirmasi dari revisi itu.
Pada akhirnya, zip direktori C:/Documents and Settings\nverma/.svk/local/dan simpan zip di suatu tempat. Terus lakukan ini secara teratur.
seperti yang orang lain katakan, hot-backup.py dari tim Subversion memiliki beberapa fitur bagus di atas sekadar polos svnadmin hotcopy
Saya menjalankan tugas yang dijadwalkan pada skrip python yang laba-laba untuk semua repositori saya di mesin, dan menggunakan hotbackup untuk menyimpan hotcopies (paranoid korupsi) selama beberapa hari dan svnadmin svndumppada mesin jarak jauh. Restorasi sangat mudah dari itu - sejauh ini.
Jawaban:
Anda dapat menggunakan sesuatu seperti (Linux):
Karena Windows tidak mendukung GZip, itu hanya:
sumber
svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn
Ini akan membuat file bernama 'backup.7z' yang berisi satu file, 'backupname.svn', yang merupakan output darisvnadmin dump
.for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
Kami menggunakan hotcopy svnadmin, misalnya:
Sesuai buku :
Anda tentu saja dapat menyalin salinan cadangan (lebih disukai 7-Zip). IMHO Ini yang paling mudah dari opsi cadangan: jika terjadi bencana ada sedikit yang harus dilakukan selain unzip kembali ke posisi semula.
sumber
Ada skrip hotbackup.py yang tersedia di situs web Subversion yang cukup berguna untuk mengotomatisasi cadangan.
http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in
sumber
Berikut ini skrip Perl yang akan:
Naskah:
Sumber skrip dan detail lebih lanjut tentang rasional untuk jenis cadangan ini.
sumber
Saya menggunakan svnsync , yang mengatur server jauh sebagai mirror / slave. Kami memiliki server turun dua minggu yang lalu, dan saya dapat dengan mudah mengganti slave ke posisi utama (hanya harus mereset UUID pada repositori slave ke yang asli).
Manfaat lain adalah bahwa sinkronisasi dapat dijalankan oleh perantara, bukan sebagai tugas di kedua server. Saya punya klien untuk dua VPN yang menyinkronkan repositori di antara mereka.
sumber
svnadmin hotcopy
sumber
svnbackup ke Google Code, aplikasi .NET console.
sumber
Anda dapat membuat cadangan repositori ( dump ) dengan
svnadmin dump
.Anda kemudian dapat mengimpornya menggunakan
svnadmin load
.Referensi terperinci di SVNBook: "Migrasi data repositori menggunakan svnadmin"
sumber
Pada dasarnya aman untuk menyalin folder repositori jika server svn dihentikan. (sumber: https://groups.google.com/forum/?fromgroups#!topic/visualsvn/i_55khUBrys%5B1-25%5D )
Jadi, jika Anda diizinkan untuk menghentikan server, lakukan dan salin repositori, baik dengan beberapa skrip atau alat cadangan. Cadangan Cobian cocok di sini karena dapat menghentikan dan memulai layanan secara otomatis, dan dapat melakukan pencadangan tambahan sehingga Anda hanya mencadangkan bagian repositori yang telah berubah baru-baru ini (berguna jika repositori besar dan Anda mencadangkan ke lokasi jauh ).
Contoh:
Tambahkan tugas cadangan:
Setel sumber ke folder repositori (mis.
C:\Repositories\
),Tambahkan
"STOP_SERVICE"
VisualSVN acara pra-cadangan ,Tambahkan acara pasca-pencadangan,
"START_SERVICE"
VisualSVN,Tetapkan opsi lain sesuai kebutuhan. Kami telah menyiapkan cadangan tambahan termasuk menghapus yang lama, jadwal cadangan, tujuan, termasuk kompresi. pemisahan arsip dll.
Keuntungan!
sumber
ada 2 metode utama untuk mem-backup server svn, pertama adalah hotcopy yang akan membuat salinan file repositori Anda, masalah utama dengan pendekatan ini adalah menyimpan data tentang sistem file yang mendasarinya, sehingga Anda mungkin mengalami beberapa kesulitan mencoba repostore jenis cadangan ini dalam jenis server svn lain atau mesin lain. ada jenis cadangan lain yang disebut dump, cadangan ini tidak akan menyimpan informasi apa pun dari sistem file yang mendasarinya dan dapat diminum ke segala jenis server SVN yang berbasis di subversi tigiris.org.
tentang alat cadangan Anda dapat menggunakan alat svnadmin (dapat melakukan hotcopy dan dump) dari command prompt, konsol ini berada di direktori yang sama di mana server svn Anda tinggal atau Anda dapat mencari alat cadangan svn di google.
rekomendasi saya adalah bahwa Anda melakukan kedua jenis cadangan dan membawanya keluar dari kantor ke akun email Anda, layanan amazon s3, ftp, atau layanan biru, dengan cara itu Anda akan memiliki cadangan yang aman tanpa harus meng-host server svn di suatu tempat di luar kantormu.
sumber
Di sini, alat GUI Windows untuk melakukan dump dari repositori lokal dan remote:
https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html
Deskripsi alat mengatakan:
Alat sederhana ini memungkinkan untuk membuat cadangan dump repositori subversi lokal dan jarak jauh. Perangkat lunak bekerja dengan cara yang sama dengan "svnadmin" tetapi bukan antarmuka GUI di atasnya. Alih-alih gunakan langsung pustaka subversi untuk memungkinkan membuat dump dalam mode mandiri tanpa alat tambahan lainnya.
Semoga ini bisa membantu ...
sumber
Saya suka menyalin seluruh direktori repo ke lokasi cadangan saya. Dengan begitu, jika sesuatu terjadi, Anda bisa menyalin direktori kembali dan siap untuk segera pergi.
Pastikan untuk menjaga izin, jika perlu. Biasanya, ini hanya masalah pada mesin Linux.
sumber
Untuk repositori yang di-host, Anda dapat sejak svn menggunakan versi 1.7
svnrdump
, yang analog dengansvnadmin dump
repositori lokal. Artikel ini menyediakan walk-through yang bagus, yang intinya bermuara pada:Setelah mengunduh file dump, Anda dapat mengimpornya secara lokal
atau unggah ke host pilihan Anda.
sumber
Jika Anda menggunakan format repositori FSFS (default), maka Anda dapat menyalin repositori itu sendiri untuk membuat cadangan. Dengan sistem BerkleyDB yang lebih lama, repositori tidak bebas platform dan Anda biasanya ingin menggunakan svnadmin dump.
The dokumentasi svnbook topik untuk cadangan merekomendasikan
svnadmin hotcopy
perintah, karena akan mengurus masalah seperti file digunakan dan semacamnya.sumber
Ini adalah File Batch yang saya jalankan yang menjalankan Backups saya
sumber
Untuk solusi cadangan harian dan lengkap, gunakan saja skrip cadangan SVN di sini .
sumber
Saya telah mengkompilasi langkah-langkah yang saya ikuti untuk tujuan mengambil cadangan repositori SVN dari proyek saya.
Ini membutuhkan waktu dan mengatakan bahwa itu mengambil log dari repositori. Ini menciptakan satu set file di dalamnya
C:\Documents and Settings\nverma\.svk\local
.Untuk memperbarui repositori lokal ini dengan set perubahan terbaru dari jarak jauh, jalankan saja perintah sebelumnya dari waktu ke waktu.
Sekarang Anda dapat bermain dengan repositori lokal Anda (
/home/user/.svk/local
dalam contoh ini) seolah-olah itu adalah repositori SVN normal!Satu-satunya masalah dengan pendekatan ini adalah bahwa repositori lokal dibuat dengan peningkatan revisi oleh revisi aktual dalam repositori jarak jauh. Seperti seseorang menulis:
Tapi, ini tidak masalah bagi saya karena saya hanya ingin cadangan dari repositori jarak jauh dari waktu ke waktu, tidak ada yang lain.
Verifikasi:
Untuk memverifikasi, gunakan klien SVN dengan repositori lokal seperti ini:
Perintah ini kemudian digunakan untuk checkout revisi terbaru dari repositori lokal. Pada akhirnya dikatakan
Checked out revision N
. IniN
adalah satu lebih dari revisi aktual yang ditemukan di repositori jarak jauh (karena masalah yang disebutkan di atas).Untuk memverifikasi bahwa svk juga membawa semua sejarah, checkout SVN dijalankan dengan berbagai revisi lama menggunakan
-r
dengan 2, 10, 50 dll. Lalu file-file di<local-dir-path-to-checkout-onto>
dikonfirmasi dari revisi itu.Pada akhirnya, zip direktori
C:/Documents and Settings\nverma/.svk/local/
dan simpan zip di suatu tempat. Terus lakukan ini secara teratur.sumber
seperti yang orang lain katakan, hot-backup.py dari tim Subversion memiliki beberapa fitur bagus di atas sekadar polos
svnadmin hotcopy
Saya menjalankan tugas yang dijadwalkan pada skrip python yang laba-laba untuk semua repositori saya di mesin, dan menggunakan hotbackup untuk menyimpan hotcopies (paranoid korupsi) selama beberapa hari dan
svnadmin svndump
pada mesin jarak jauh. Restorasi sangat mudah dari itu - sejauh ini.sumber
1.1 Membuat Dump dari repositori SVN (Subversion)
Contoh nyata
1.2 Gzip Dump yang Dibuat
Contoh nyata
1.3 Dump SVN dan Dump Gzip dengan One-liner
Contoh nyata
Cara Cadangkan (dump) dan Kembalikan (memuat) repositori SVN (Subversion) di Linux.
Ref: svn backup andrestore subversi
sumber