linux svn定時備份檔案 檔案上傳

2021-07-25 02:24:29 字數 1655 閱讀 5335

需求比較簡單,因為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...