linux下SVN定時備份
利用svnadmin hotcopy可以實現完全備份,但不能進行增量備份。svnadmin hotcopy是將整個庫都“熱”拷貝一份出來,包括庫的鉤子指令碼、配置檔案等;任何時候執行這個指令碼都得到一個版本庫的安全拷貝,不管是否有其他程序正在使用版本庫。
優點是:備份過程較快,災難恢復也很快;如果備份機上已經搭建了svn服務,甚至不需要恢復,只需要進行簡單配置即可切換到備份庫上工作。
缺點是:比較耗費硬碟,需要有較大的硬碟支援。
備份命令:
1 |
|
1)定義備份策略
備份頻度:每天進行一次全量備份。
備份地點:備份目錄以當前時間命名,備份路徑到/data/svnbackup/。
備份保留時期:保留7天,超過7天的進行刪除。
備份時間:每晚11點59分開始。
備份檢查:備份完畢後自動檢查備份是否正確、記錄日誌。
2)建立備份指令碼
在/data/shells目錄建立備份指令碼svnbak.sh,假如svn倉庫路徑為/data/svn,要備份到/data/svnbackup/:
#!/bin/bash # # Filename: svnbak.sh # Revision: 1.0 # Date: 2014/11/07 # Author: Qicheng # Email: # Website: # Description: SVN完全備份 # Notes: 將指令碼加入crontab中,每天定時執行 # MAXDAYS=7 # 備份保留最大天數 TIME=`date +'%Y%m%d%H%M%S'` SVNPATH=/data/svn # 定義倉庫repos路徑 BAKDIR=/data/svnbackup # 定義備份主目錄 BAKSUBDIR=${BAKDIR}/${TIME} # 定義全備路徑 BAKLOG=${BAKDIR}/${TIME}.log # 定義備份日誌 [ ! -f "${BAKSUBDIR}" ] && mkdir -p ${BAKSUBDIR} exec 1>${BAKLOG} exec 2>&1 set -x # 刪除歷史備份 find ${BAKDIR} -maxdepth 1 -type f -mtime +$(expr ${MAXDAYS} - 1) -exec echo "Delete {}" \; -exec rm "{}" \; # 全備份 svnadmin hotcopy ${SVNPATH} ${BAKSUBDIR} # 如果能列印版本號說明備份正確 svnlook youngest ${BAKSUBDIR} [ $? -ne 0 ] && exit 1 cd ${BAKDIR} # 壓縮備份 tar cvzf ${TIME}.tar.gz ${TIME}/ rm -rf ${BAKSUBDIR}
測試一下:
3)設定定時crontab
每天23點59分開始執行指令碼:
1 |
|
輸入crontab -e 編輯當前使用者的定時任務:
檢視當前使用者的定時任務:
[[email protected] ~]$ crontab -l
刪除當前使用者的定時任務:
[[email protected] ~]# crontab -r
linux內建的cron程序能幫我們實現這些需求,cron搭配shell指令碼,非常複雜的指令也沒有問題。
cron介紹
我們經常使用的是crontab命令是cron table的簡寫,它是cron的配置檔案,也可以叫它作業列表,我們可以在以下資料夾內找到相關配置檔案。
/var/spool/cron/ 目錄下存放的是每個使用者包括root的crontab任務,每個任務以建立者的名字命名
/etc/crontab 這個檔案負責排程各種管理和維護任務。
/etc/cron.d/ 這個目錄用來存放任何要執行的crontab檔案或指令碼。
我們還可以把指令碼放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目錄中,讓它每小時/天/星期、月執行一次。
crontab的使用
我們常用的命令如下:
crontab [-u username] //省略使用者表表示操作當前使用者的crontab -e (編輯工作表) -l (列出工作表裡的命令) -r (刪除工作作)
我們用crontab -e進入當前使用者的工作表編輯,是常見的vim介面。每行是一條命令。
crontab的命令構成為 時間+動作,其時間有分、時、日、月、週五種,操作符有
* 取值範圍內的所有數字
/ 每過多少個數字
- 從X到Z
,雜湊數字。
相關推薦
linux下SVN定時備份
利用svnadmin hotcopy可以實現完全備份,但不能進行增量備份。svnadmin hotcopy是將整個庫都“熱”拷貝一份出來,包括庫的鉤子指令碼、配置檔案等;任何時候執行這個指令碼都得到一個版本庫的安全拷貝,不管是否有其他程序正在使用版本庫。 優點是:
linux下SVN定時備份並刪除歷史備份
sco 利用 exe abs tabs file 腳本 壓縮 安全 利用svnadmin hotcopy可以實現完全備份,但不能進行增量備份。svnadmin hotcopy是將整個庫都“熱”拷貝一份出來,包括庫的鉤子腳本、配置文件等;任何時候運行這個腳本都得到一個版本庫的
Linux下mysql定時備份及恢復
備份1.資料庫定時備份工作指令碼:(日期時間作為名稱的壓縮檔案,解壓開是sql指令碼)/root/backup/script/backup_mysql.sh2.備份輸出路徑:/root/backup/mysql3.執行計劃任務的命令:#crontab -e 開啟計劃任務編輯器
LINUX下ORACLE定時備份資料,使用的expdp。
1、root賬戶登陸,切換到ORACLE使用者。 su - oracle 2、建立一個名為te.sh的指令碼,並授權可執行。 mkdir /home/oracle/te/te.sh chomod 775 /home/oracle/te/te.sh 3、vi 編輯te.sh
linux下svn定時更新專案
svn 專案中的 hooks 檔案中的 post-commit(該資料夾下有 tmp檔案 去除字尾即可) post-commit #!/bin/sh export LANG=zh_CN.GBK #svn 編碼是GBK export LANG=en_US.UTF-8 #svn 編碼是UTF-8 s
linux下使用定時任務完成mysql定期備份
Crontab相關 首先,定時任務需要安裝crontab 執行crontab 命令如果報command not found,就表明沒有安裝。 crond 是linux用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鍾
Linux下SVN的三種備份方式
$youngest=`svnlook youngest $svn_repos`; chomp $youngest; if ($youngest eq $previous_youngest) { print "No new revisions to backup./n"; exit 0; } my $f
Linux下svn的安裝與部署
myeclipse span .com 服務 點擊 svn服務器 。。 hook idt 最近工作碰到一個問題,我和一個同夥負責開發一個管理系統,基於原來的代碼上進行修改,每當他修改之後,我要再修改都要和他確定是不是最新的文件,才能進行修改。非常影響工作的效率,所以
Linux下SVN+多個Tomcat自動部署
mod .html 部署 update語句 hooks 參考 eba bsp auth 項目中都是jsp開發,所以用到Tomcat。 在我文章中也寫過多個Tomcat 的部署,具體可以參考:http://www.cnblogs.com/magmell/p/7045193.h
Linux下MySQL的備份和恢復
mysql備份 再也不用擔心數據丟失了 MySQL備份的原因 1. 災難恢復 2. 審計 3. 測試1234512345mysql的備份類型 1. 根據服務器的在線狀態: 熱備:服務器處於運行狀態 冷備:服務器出去停止狀態 溫備:服務器處於半離線狀態,只能讀,但是不能
linux下svn的常用操作命令總結
svn版本管理導入代碼文件到 repo 版本庫我的代碼文件存放在 /var/www/html/; svn代碼版本庫的路徑 /application/svndata/repo (也就是剛剛我們創建的版本庫的位置);執行導入命令: svn import /var/www/html/svntest file:///
linux下的定時任務
spa 執行 編輯 span mod txt ont -s cron 1.首先創建一個 .sh 結尾的文件 如:task.sh 2.編輯 [[email protected] /]# vi task.shtask.sh裏面的命令date >> /h
LINUX下svn安裝部署
rc.d -- 版本 mit sta 密碼 secret all ner 1.#安裝yum install subversion 2.#測試svnserve --version3.#創建庫根路徑mkdir /usr/local/svn4.#創建一個項目庫svnadmin c
Linux 下 svn 多個項目多用戶分配
usr osi 匿名 win 註意 () 禁止訪問 缺省值 管理 安裝步驟如下: 1、yum install subversion 2、輸入rpm -ql subversion查看安裝位置,如下圖: 輸入 svn –help可以查看svn的使用方法 需求 開發
svn定時備份
本指令碼為自動備份svn目錄下的版本庫,通過awk來遍歷庫,這樣做的好處是當有人新增新的版本庫之後不用更改程式碼,程式會自動認出來。 一下程式為周全備份指令碼 #!/bin/sh #version 1.0 #updated 2008.9.2 SVN_ROOT=”/home/svn
linux下svn多使用者及多倉庫許可權配置
前言 安裝請參考前面文章,這裡只講使用者與許可權配置 1.建立倉庫和使用者 svnadmin create /var/svn/java 建立了一個java的倉庫 svnadmin create /var/svn/vue 又建立了一個前端的倉庫 [gro
linux下mysql資料備份和匯入
匯出整個資料庫結構和資料 mysqldump -h 127.0.0.1 -uroot -p database > /usr/local/dump.sql 匯出單個數據表結構和資料mysqldump -h 127.0.0.1 -uroot -p123456 database table > du
Linux下mysql的備份和還原命令
Linux下MySQL的備份和還原 Linux下的資料備份 Linux下的資料還原 介紹mysqldump的引數 最近一直在更新一個專案,給現場部署,每次都需要備份一下資料庫(以防有問題可以還原回去) Linux下的資
Windows下MySQL定時備份指令碼
一、寫定備份指令碼,儲存為.bat檔案 @echo off set hour=%time:~0,2% if "%time:~0,1%"==" " set hour=0%time:~1,1% set now=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%