自動備份的腳本
Linux是公認的運行穩定、安全性較高的操作系統,但是伺服器硬體故障和各種意外因素都會導致Linux伺服器硬碟上數據丟失。特別對於運用在商業領域中的Linux伺服器,數據的安全性、完整性和災難後的數據恢復能力是每一個Linux系統管理員最為關心的問題。Linux作為新一代網路操作系統,在伺服器方面的應用越來越廣泛。作為專門的網路伺服器,一個重要功能就是對伺服器數據進行備份,以確保數據的安全。
常見的Linux數據備份方法
Linux操作系統中的數據備份工作是Linux系統管理員的重要工作和職責。傳統的Linux伺服器數據備份的方法很多,備份的手段也多種多樣。常見的Linux數據備份方式僅僅是把數據通過TAR命令壓縮拷貝到磁碟的其它區域中去。還有比較保險的做法是雙機自動備份,不把所有數據存放在一台計算機上,否則一旦這台計算機的硬碟物理性損壞,那麼一切數據將不復存在了。所以雙機備份是商業伺服器數據安全的基本要求。通常情況下使用的雙機備份是雙機定時備份文件,而不是實時的。要實現雙機備份,必須先在單機上備份所有的文件,然後再把備份文件傳輸到其它機器上。這樣可能比較麻煩,而且有不足之處。例如,這樣做對於不需要備份的文件也要在網路上傳輸,會造成帶寬的浪費。
實現備份與刻錄的整合
為了彌補Linux上常見備份方法的不足,本文將講述使用sitback軟體將Linux伺服器磁碟中的指定數據進行自動備份,並刻錄到CDR光碟的方法,以達到數據在光碟中安全存儲的目的。此方法將數據備份和光碟刻錄兩個步驟整合在一起,自動化程度和安全性較高,而且sitback還能實現Linux網路中不同計算機之間的數據備份。
sitback簡介
sitback是一款基於開源協議開發的Unix平台下的自動備份軟體。與一些 Linux開放源碼軟體不同,sitback開發者僅提供源代碼壓縮包的形式給Linux用戶下載。盡管sitback沒有提供安裝方便的RPM格式,但是sitback的安裝採用了基於GNU協議的自動安裝和配置的automake/autoconf模式,使得一般的Linux系統管理員能順利地安裝調試好sitback。
sitback的獲取和安裝
目前sitback官方網站www.mrbean.dk提供的 sitback最高版本為0.3.1。為了能最大程度地體現sitback的最佳性能,sitback的開發者建議Linux用戶不要把sitback的開發版本和Beta測試版本使用到實際的數據備份中去,以防出現意外。
安裝sitback源代碼壓縮包可以根據以下幾個簡單的步驟完成:
◆建立臨時解壓目錄 /temp;
◆把sitback壓縮包拷貝到/temp目錄,並使用「tar xvfz sitback-x.x.x.tar.gz」命令對sitback源代碼壓縮包進行解壓;
◆執行./configure;
◆執行make;
◆執行make install。
通過以上幾個步驟可以迅速地安裝好sitback。請注意使用超級用戶root身份對sitback進行安裝。
編譯完sitback源代碼壓縮包之後,接著要在用戶根目錄中的Home目錄下創建一個.sitback目錄。該目錄用來存放一些數據備份和刻錄時產生的臨時文件,以及一些腳本文件或磁碟驅動器參數文件。
同所有通過編寫腳本文件來運行的程序一樣,sitback也需要Linux用戶自行編寫備份和刻錄的腳本文件,並讓Linux系統把sitback當作一個備份進程(backup-daemon)來自動執行。使用高效安全的Webmin管理系統來自動執行sitback也很方便。總之,用最少的代碼編寫出適合Linux系統實際情況的腳本是最為安全、高效的。
將數據刻錄至光碟的條件
讓sitback自動備份指定的磁碟數據,並將備份的數據直接刻錄到光碟中去,必須考慮的條件主要有以下幾點:
◆sitback運行的時間,即備份數據時間;
◆要備份的源目錄;
◆要備份到的目的目錄;
◆選擇存儲介質,包括磁介質、光存儲介質等;
◆是否要對備份數據進行校驗比較,提高備份安全性;
◆備份模式,全備份或部分數據備份;
◆備份數據還原問題。
sitback提供了很多參數供用戶選擇,具體參數和用法可以參考sitback源代碼壓縮包里的開發文檔和詳細的使用手冊。
實例運用
實例1
假設某Linux伺服器中有以下這些目錄:
◆/usr/smbdata 包含大多數應用軟體和用戶數據文件;
◆/usr/grafik 包含有重要的圖形文件。
為了備份以上兩個目錄數據,可以編寫一個腳本文件,代碼及說明如下:
ARCHIVE=/dev/st0
#定義要備份的數據
(ARCHIVE表示要備份的磁碟驅動器、文件目錄,甚至主機,例如:
「backuphost:/dev/st0」、
「backup@backuphost:/dev/nrt0」、
「[email protected]:/tmp/temp_backup.tar.gz」等)
TARGET=/usr/smbdata
#要備份的目的目錄
TARGET=/usr/grafik
#要備份的目的目錄
COMPRESSION=YES
#備份模式為對數據進行壓縮後備份
VERIFY=YES
#對備份數據進行校驗
REPORTFILE=/usr/smbdata/latest_backup.txt
#產生備份報告文件
REPORTPRINTER=//penguin4/Canon
#列印機信息
SMBUSER=computer1
#SAMBA用戶端計算機名
SMBPASSWD=123abc
#訪問密碼
VOLUMENAME=Full backup - Taastrup
TIME=1;02;00
#備份時間,每天2:00進行備份
TIME=2;02;00
TIME=3;02;00
TIME=4;02;00
TIME=5;02;00
TIME=6;02;00
以上是一個簡單的數據自動備份腳本的樣本文件。如果想使用SysV初始化,可以在/etc/rc.d/init.d/中創建一個小的腳本文件來運行 sitback。在上述腳本最後一行加入「/usr/local/bin/sitback -d data」才能使得sitback自動運行。查看每次備份的情況時,可以打開臨時文件/.sitback/sitback.log,裡面有sitback 運行的詳細記錄。
實例2
使用sitback將Linux伺服器中數據自動備份、刻錄兩個步驟進行整合。
為了達到數據備份和光碟刻錄整合的目的,需要使用以下腳本來實現。它是來自sitback官方網站的樣板腳本。
# Full backup of /home/bean, excluding Images
#對/home/bean,目錄進行全備份
# [email protected] 2002
# Write the archive to my cd-writer at 0,0,0
#將備份數據在指定時間寫入CDR刻錄機中
# (Iomega ZIPCD 650, USB), use speed=2, so that i can 刻錄機硬體參數
# do other things while the backup is cooking. Also
# use on-the-fly to avoid too much temporary data.
# (my machine has no problem supporting this)
#
ARCHIVE=0,0,0
SPEED=2
#Iomega ZIPCD 650, USB刻錄機寫入速度,
CD ON THE FLY
#寫入方式
# It is a huge advantage to have the files directory available
# on the cd, not inside an archive, when restoring my
# setup, hence the type 'CDRW'
#
TYPE=CDRW
#光碟類型,CDRW可擦寫光碟
# Targets... Exclude Images
TARGET=/home/bean
#目標文件目錄
EXCLUDE=/home/bean/Images
#目標文件目錄中不用備份的目錄(即排除備份的目錄)
# Various stuff. Compression and verification will automagically
# be turned off by sitback, but i do not want the warnings either,
# so i just turn it off from the beginning...
#
VERIFY=NO
#對備份數據進行校驗
COMPRESSION=NO
#備份數據無需壓縮
# When done, put a backup report in /home/bean/backup.log
#
REPORTFILE=/home/bean/backup.log
#產生的備份報告文件及路徑
關於sitback備份數據的恢復及SSH等安全措施,此處不予舉例說明。總的來說,sitback是一款不可多得的Linux操作系統平台中優秀的數據備份和恢復工具,使用sitback可以使得企業實現安全而高效的備份。
B. 如何編寫一個windows下的oracle自動備份腳本
@echo off
echo ================================================
echo Windows環境下Oracle資料庫的自動備份腳本
echo 1. 使用當前日期命名備份文件。
echo 2. 自動刪除7天前的備份。
echo ================================================
::以「YYYYMMDD」格式取出當前時間。
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%
::設置用戶名、密碼和要備份的資料庫。
set USER=xxx
set PASSWORD=123456
set DATABASE=dbtest
::創建備份目錄。
if not exist "D:\backup\data" mkdir D:\backup\data
if not exist "D:\backup\log" mkdir D:\backup\log
set DATADIR=D:\backup\data
set LOGDIR=D:\backup\log
exp %USER%/%PASSWORD%@%DATABASE% file=%DATADIR%\data_%BACKUPDATE%.dmp log=%LOGDIR%\log_%BACKUPDATE%.log
::刪除7天前的備份。
forfiles /p "%DATADIR%" /s /m *.* /d -7 /c "cmd /c del @path"
forfiles /p "%LOGDIR%" /s /m *.* /d -7 /c "cmd /c del @path"
exit
C. oracle 自動備份的腳本 望高手給解釋
很好理解的,一句一句來:
exp CJHDJ/CJHDJ file=E:\QIAOs環境備份\資料庫每日備份\oa\gzql_oa_%date:~0,10%.dmp:
導出 CJHDJ用戶數據, 導出文件路徑為 E:\QIAOs環境備份\資料庫每日備份\oa\ ,導出文件名為gzql_oa_%date:~0,10%.dmp ,其中%date:~0,10%是取系統時間精確到日,
dir *.dmp /O:-D >dir.txt :
列出所有後綴為.dmp文件的信息記錄到dir.txt 文件中,/O:-D 是dir命令的參數,排序和顯示目錄名和文件名的順序,按日期和時間,最晚的優先。
for /F "skip=20 tokens=4" %%a in (dir.txt) do @if exist %%a del %%a:
讀取dir.txt文件中的第4列的文件名(.dmp文件)並進行刪除文件操作
在說一下為什麼要"skip=20 tokens=4" 讀取dir.txt文件中從首行開始跳過20行 ,dir.txt的第4列
因為dir.txt中前5行是驅動器,目錄等信息,所以需要跳過。而前3列為日期,時間等信息,第4列為文件名,所以取第4列
你可以試一下,執行 dir * /O:-D >d:\dir.txt
d:\dir.txt 文件內容如下:
驅動器 C 中的卷是 OS
卷的序列號是 541D-F538
C:\ 的目錄
2011-02-18 08:14 <DIR> WINDOWS
2011-02-12 18:41 <DIR> TEMP
2011-02-03 15:24 <DIR> Program Files
2011-01-18 10:16 <DIR> UXLOG
D. 怎麼讓電腦定期自動備份文件或文件夾
想要讓電腦定期自動備份文件或者文件夾,需要使用三方工具,FileYee。
操作步驟如下:
步驟1:選擇備份路徑
如下圖所示,可以選擇本地磁碟/共享目錄、FTP目錄、SFTP目錄、網路網盤,這里演示已常用的本地磁碟/共享目錄為主,後期給大家講解每個功能的作用和使用方法,在選擇想要備份的文件夾,點擊「確認」。
E. 如何使用shell腳本每天自動備份mysql資料庫
mysql備份用自帶的備份工具mysqlmp
每天自動執行用cron工具,把mysql的備份命令放在.sh文件裡面
.sh文件放在/etc/cron.daily目錄,就會每天自動執行了。
F. 如何使用腳本自動備份阿里雲rds資料庫
1、在ECS上使用mysqlmp進行邏輯備份,再中轉到本地伺服器。使用ECS中轉是為了避免將RDS暴露到公網上。
2、在RDS控制台上的「備份恢復」中找到「數據備份」,七天內的全量備份是帶有下載地址的。點擊後會產生一個24小時有效的下載地址。下載回去後按照文檔說明進行恢復。
G. linux 每日自動備份文件的腳本
1、比如每天產生一個/data/access.log這樣的文件,我們每天備份到backup目錄的access_2011-01-12.log.gz這樣的文件。
2、增加計劃任務
export
EDITOR=vi
crontab
-e
0
0
*
*
*
/data/bak.sh;
3、bak.sh文件內容如下:
cat
/data/bak.sh
#!/bin/bash
logs_dir=/data
bak_dir=/data/backup
bak_file=access_`date
+%Y%m%d`.log
#
tar
everyday
#echo
"begining
of
tar"
tar
zcf
$bak_dir/$bak_file.gz
$logs_dir/access.log
#
clear
bak_file
#echo
"clearing
file.log"
find
$bak_dir
-mtime
+7
-exec
rm
-rf
{}
\;
#end
求採納為滿意回答。
H. windows環境下oracle資料庫的自動備份腳本怎麼用
需要寫個bat腳本,然後在windows計劃任務里調用此腳本可實現每天自動備份。工具:Oracle10g步驟:1、在某個盤符某個路徑(以C盤data目錄為例),創建oraclebackup.txt文件,內容如下:@echooffecho刪除10天前的備分文件和日誌forfiles/p"c:/data/"/m*.dmp/d-10/c"cmd/cdel@path"forfiles/p"c:/data/"/m*.log/d-10/c"cmd/cdel@path"echo正在備份Oracle資料庫,請稍等……exp用戶名/密碼@實例名file=c:/data/mdb%date:~0,4%%date:~5,2%%date:~8,2%.dmplog=c:/data//mdb%date:~0,4%%date:~5,2%%date:~8,2%.logfull=ybuffer=65535echo任務完成!2、保存上述文件後,將文件名的後綴改成.bat3、進入windows的控制面板,打開計劃與任務,新建任務,點擊瀏覽,選擇剛才新建的c盤data目錄下的oraclebackup.bat文件。接著選擇每天晚上22:00點執行,再輸入本機的administrator密碼即可。注意事項:exp語句中的用戶名密碼等內容,需要根據實際需要來填寫。
I. centos 6.5 mysql 自動備份資料庫腳本怎麼寫
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
#資料庫用戶名
dbuser='root'
#資料庫用密碼
dbpasswd='********'
需要備份的資料庫,多個資料庫用空格分開
dbname='xiaohuai xiaohuai2'
#備份時間
backtime=`date +%Y%m%d%H%M%S`
#日誌備份路徑
logpath='/home/mysqlbak'
#數據備份路徑
datapath='/home/mysqlbak'
#日誌記錄頭部
echo 『"備份時間為${backtime},備份資料庫表 ${dbname} 開始" >> ${logpath}/log.log
#正式備份資料庫
for table in $dbname; do
source=`mysqlmp -u ${dbuser} -p${dbpasswd} ${table}> ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;