日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 备份svn

發布時間:2023/12/19 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 备份svn 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面具體描述備份的方法:
===============

1、svnadmin dump備份工具
------------------------
??? 這是subversion官方推薦的備份方式。

??? 1)定義備份策略:
?????? 備份頻度:每周六進行一次全量備份,每周日到周五進行增量備份
?????? 備份地點:備份存儲路徑到/home/backup/svn/
?????? 備份命名:全量備份文件名為:weekly_fully_backup.yymmdd,增量備份文件命名為:daily-incremental-backup.yymmdd
?????? 備份時間:每晚21點開始
?????? 備份檢查:每月末進行svnadmin load恢復試驗。
??? 2)建立全量備份腳本:
?????? 在~/下建立一個perl腳本文件,名為weekly_backup.pl,執行全量備份,并壓縮備份文件,代碼如下(本代碼只針對一個庫的備份,如果是多個庫請做相應改動):
#!/usr/bin/perl -w
my $svn_repos="/home/svn/repos/project1";
my $backup_dir="/home/backup/svn/";
my $next_backup_file = "weekly_fully_backup.".`date +%Y%m%d`;

$youngest=`svnlook youngest $svn_repos`;
chomp $youngest;

print "Backing up to revision $youngest/n";
my $svnadmin_cmd="svnadmin dump --revision 0:$youngest $svn_repos >$backup_dir/$next_backup_file";
`$svnadmin_cmd`;
open(LOG,">$backup_dir/last_backed_up"); #記錄備份的版本號
print LOG $youngest;
close LOG;
#如果想節約空間,則再執行下面的壓縮腳本
print "Compressing dump file.../n";
print `gzip -g $backup_dir/$next_backup_file`;

? 3)建立增量備份腳本:
??? 在全量備份的基礎上,進行增量備份:在~/下建立一個perl腳本文件,名為:daily_backup.pl,代碼如下:

#!/usr/bin/perl -w
my $svn_repos="/home/svn/repos/project1";
my $backup_dir="/home/backup/svn/";
my $next_backup_file = "daily_incremental_backup.".`date +%Y%m%d`;

open(IN,"$backup_dir/last_backed_up");
$previous_youngest = <IN>;
chomp $previous_youngest;
close IN;

$youngest=`svnlook youngest $svn_repos`;
chomp $youngest;
if ($youngest eq $previous_youngest)
{
? print "No new revisions to backup./n";
? exit 0;
}
my $first_rev = $previous_youngest + 1;
print "Backing up revisions $youngest .../n";
my $svnadmin_cmd = "svnadmin dump --incremental --revision $first_rev:$youngest $svn_repos &gt; $backup_dir/$next_backup_file";
`$svnadmin_cmd`;
open(LOG,"&gt;$backup_dir/last_backed_up"); #記錄備份的版本號
print LOG $youngest;
close LOG;
#如果想節約空間,則再執行下面的壓縮腳本
print "Compressing dump file.../n";
print `gzip -g $backup_dir/$next_backup_file`;
?? 4)配置/etc/crontab文件
?? 配置 /etc/crontab 文件,指定每周六執行weekly_backup.pl,指定周一到周五執行daily_backup.pl;
?? 具體步驟俺就不啰嗦了.
?? 5)備份恢復檢查
?? 在月底恢復檢查中或者在災難來臨時,請按照如下步驟進行恢復:恢復順序從低版本逐個恢復到高版本;即,先恢復最近的一次完整備份 weekly_full_backup.071201(舉例),然后恢復緊挨著這個文件的增量備份 daily_incremental_backup.071202,再恢復后一天的備份071203,依次類推。如下:
user1&gt;mkdir newrepos
user1&gt;svnadmin create newrepos
user1&gt;svnadmin load newrepos < weekly_full_backup.071201
user1>svnadmin load newrepos < daily_incremental_backup.071202
user1>svnadmin load newrepos < daily_incremental_backup.071203
....

如果備份時采用了gzip進行壓縮,恢復時可將解壓縮和恢復命令合并,簡單寫成:
user1>zcat weekly_full_backup.071201 | svnadmin load newrepos
user1&gt;zcat daily_incremental_backup.071202 | svnadmin load newrepos

轉載于:https://www.cnblogs.com/Mygirl/p/3177332.html

總結

以上是生活随笔為你收集整理的linux 备份svn的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。