需求比較簡單,因為svn庫比較小,才10多個g,每天定時備份乙個全量的svn檔案,上傳到另外乙個伺服器上就可以了,
(按照周一到周五自動備份,然後ftp上傳覆蓋更新)
1、先建立乙個svn.pl備份指令碼,內容如下:
#!/usr/bin/perl -w
my $svn_repos="/var/svn/svnrepos";
my $backup_dir="/var/svn/svnrepos";
#my $time=$(date +%y%m%d:%h:%m:%s);
#my $next_backup_file = "svn".$time;
#按照星期幾當檔案字尾,
#my $next_backup_file = "svnback.".`date +%y%m%d`;
my $next_backup_file = "svnback.".`date +%u`;
#my $svnadmin_cmd="svnadmin dump --revision $youngest $svn_repos >$backup_dir/$next_backup_file";
#'$svnadmin_cmd';
my $svnadmin_cmd="svnadmin dump $svn_repos >$backup_dir/$next_backup_file";
`$svnadmin_cmd`;
open(log,">$backup_dir/last_backed_up"); #記錄備份的版本號
print log $next_backup_file;
close log;
#如果想節約空間,則再執行下面的壓縮指令碼
#print "compressing dump file.../n";
print `gzip -9 $backup_dir/$next_backup_file`;
svn檔案在windows下7.5g,生成的檔案是5.5g,然後放開了gzip壓縮,壓縮完畢 3.5g
2、 上傳到 linux /usr/local/scripts/ 路徑下
3、 設定定時排程
linux 下輸入 crontab -e 命令,
設定 定時的時間和程式路徑 */1 * * * * /usr/local/scripts/incr0_svn.sh (測試階段,設定一分鐘一呼叫,完事設定成1天一呼叫)
最後修改為周一和周五(2點)定時排程 * 2 * * 1,2,3,4,5 /usr/local/scripts/incr0_svn.sh
4、 生成 svnback.5檔案在 /var/svn/svnrepos/ 目錄下
備份完成的檔案需要呼叫shell指令碼上傳到另外乙個linux機器上備份
5、新建乙個檔案 ftp_svn.sh
內容如下
#! /bin/sh
ftp -i -n << !
open 10.210.33.37
user eteller eteller1234
cd /svnbackup/
lcd /var/svn/svnrepos/.
binput svnback.`date +%u`.gz
bye!
LINUX 定時備份檔案
檔案備份操作指南備份1.檢視vixie cron rpm 軟體包是否已安裝 判定該軟體包是否已安裝,使用 rpm q vixie cron 命令。2.判定服務是否在執行 判定該服務是否在執行,使用 sbin service crond status 命令 3.啟動 關閉和重啟 重新載入配置 執行以下...
用winrar定時壓縮備份檔案
近日由於需要定時對系統中某個指定資料夾進行定時按日期全備份。原來想著自己做個軟體執行,後來查到一種通過計畫任務執行bat檔案,利用winrar進行引數呼叫壓縮的方法。1.安裝winrar 2.新建文字文件,輸入程式 c progra 1 winrar winrar.exe a ag k r s ib...
windows使用bat檔案定時備份檔案
遇到乙個需求,需要備份access資料庫,access生成的資料都儲存在xx.mdb檔案中,所以考慮使用windows任務 定時執行乙個備份檔案的bat檔案來解決這個問題。echo off set nowdate date 10 copy e testing demo backup data.mdb...