服务器备份清理脚本
‘壹’ 服务器数据怎样备份
对于服务器而言,它承担的使命是7x24小时不间断的对外提供稿袭服务,但它面临的风险也是很大的,无论是人为误操作、硬件损坏还是黑客攻击,难免有数据损坏丢失的时候。一旦发生数据损坏、丢失现象后,如果没有备份数据,那损失就大了,所以对于任何一台服务器而言,数据的备份机制是不可缺少的。
服务器根据提供的服务不同,大致可为分:数据库服务器、应用服务器、文件服务器。不同服务器的备份机制还是有所区别的,我们分别来看下:
文件服务器备份方案有哪些?
1、纯敬锋Rsync+Inotify实时增量备份
借助linux的Inotify特性可以监测文件系统变化,一旦发现变化则通知Rsync去同步数据,这样就实现了增量备份,而且性能和及时性都很高。
2、通过服务器定时任务每日凌晨执行备份任务
这种只适合对重要的数据进行日切备份,大概思路就是:Crontab+shell脚本来定时备份。
3、云服务器可借助快照功能来全盘备份
数据库服务器备份方案
对于数据库而言建议部署“主从同步”来实现数据备份,这样做的好处就是:一方面存在数据副本,另外一方面多节点可以缓解数据库做晌压力。
当然了,现在主流数据库也提供全量备份的功能,但如果在数据量大的情况下可能会影响数据库的性能。
1、以主流的Mysql数据库为例,备份方案主要有:
binlog备份
mysqlmp全库备份
2、SQLServer也支持完全备份、事务日志备份、差异备份等:
以上就是我的观点,对于这个问题大家是怎么看待的呢?‘贰’ rman备份脚本和rman增量备份脚本分享
一、单独备份
1、经典整库备份:backup
as
compressed
backupset
database
include
current
controlfile
plus
archivelog
delete
all
input;
2、tablespace:backup
tablespace
名字;
3、数据文件:backup
datafile
n;
(n:具体的数据文件编号select
file_name,file_id,tablespace_name
from
dba_data_files;)
4、控制文件:backup
current
controlfile;或者backup
database
include
current
controlfile;
5、日志文件:backup
archivelog
all;或者
database
plus
archivelog;
6、参数文件:backup
spfile;
7、全库备份脚本:
复制代码
代码如下:
run{
allocate
channel
c1
type
disk;
backup
full
tag
‘dbfull'
format
‘/backup/full%u_%s_%p'
database
include
current
controlfile;
sql
‘alter
system
archive
log
current';
#在数据库进行全备份完成之后,需要执行该条命令将当前日志归档,备份归档日志时应该包括最后生成的归档
backup
filesperset
3
format
‘/backup/arch%u_%s_%p'#filesperset
3设定每个备份集里文件不超过3个
archivelog
all
delete
input;
#备份归档可选,可以单独定期备份
release
channel
c1;
}
二、增量备份
1、0级增量备份
复制代码
代码如下:
run{
allocate
channel
c1
type
disk;
backup
incremental
level
0
tag
‘db0'
format
‘/backup/db0%u_%s_%p'database
include
current
controlfile;
;
sql
'alter
system
archive
log
current';#在数据库进行全备份完成之后,需要执行该条命令将当前日志归档,备份归档日志时应该包括最后生成的归档
backup
filesperset
3
format
‘/backup/arch%u_%s_%p'#filesperset
3设定每个备份集里文件不超过3个
archivelog
all
delete
input;
#备份归档可选,可以单独定期备份
release
channel
c1;
}
2、1级备份脚本
复制代码
代码如下:
run{
allocate
channel
c1
type
disk;
backup
incremental
level
1
tag
‘db1'
format
‘/backup/db1%u_%s_%p'
database
skip
readonly
include
current
controlfile;
backup
filesperset
3
format
‘/backup/arch%u_%s_%p'#filesperset设定每个备份集里文件不超过3个
archivelog
all
delete
input;
#备份归档可选,可以单独定期备份
release
channel
c1;
}
‘叁’ 菜鸟求助:linux下oracle数据库自动备份脚本,脚本可实现数据库自动备份功能,并删除三天前的备份
这个好办。 cp 你的数据库`date +'%y%m%d'` 指定目录 这个是以年月日来命名备份 删除的命令是
rm -f 你的数据库名字`date -d "3 days ago" +'%y%m%d'` 这个是删除匹配你数据库的备份名日期前3天的备份文件 他会按照日期-3天匹配3天前的日期来删除备份的
‘肆’ windos服务器怎么写压缩备份的脚本啊
集成命令列表1功能:自动备份数据库并按日期创建备份文件夹。代码如下:@echooffecho执行备份任务echo正在停止数据库…echo正在停止网站数据库…netstopMySQLecho执行备份数据库x"D:MySQLdata*.*"D:mysqlbakwebbak%date:~0,10%/e/y/cnetstartMySQLecho正在启动网站数据库…echo退出备份任务echo.exit拆解:停止数据库命令代码如下:netstopMySQL拷贝数据库文件D:MySQLdata为数据库存放目录D:mysqlbakwebbak为数据库备份目录%date:~0,10%为当前备份日期创建目录代码如下:x"D:MySQLdata*.*"D:mysqlbakwebbak%date:~0,10%/e/y/c启动数据库代码如下:netstartMySQL集成命令列表2功能:自动备份数据库并日期rar加密打包(密码为123456)。代码如下:@echooffecho执行备份任务echo正在停止数据库…echo正在停止网站数据库…netstopMySQLecho执行备份数据库x"D:hostmysqldata*.*"E:wwwrootDefaultwebmysql/e/y/cnetstartMySQLecho正在启动网站数据库…echo正在打包网站数据库…"C:ProgramFilesWinRARWinRAR.exe"a-r-ibck-p123456-yE:wwwrootDefault\%date:~0,10%-WEBDATA.rarE:wwwrootDefaultwebmysql*.*echo退出RAR打包echo删除复制数据库del/s/qE:wwwrootDefaultwebmysql*echo退出备份任务echo.exit拆解:以上重复命令不重复说明了打包并加密C:ProgramFilesWinRARWinRAR.exe为winrar压缩程序安装目录123456为压缩包加密密码E:wwwrootDefault为打包到的目录%date:~0,10%-WEBDATA.rar为压缩文件名,例如今天是2012-12-27名字就是2012-12-27-WEBDATA.rar代码如下:"C:ProgramFilesWinRARWinRAR.exe"a-r-ibck-p123456-yE:wwwrootDefault\%date:~0,10%-WEBDATA.rarE:wwwrootDefaultwebmysql*.*删除拷贝数据E:wwwrootDefaultwebmysql*为备份目录,为方便下次备份一定要删除。不然容易重复。代码如下:del/s/qE:wwwrootDefaultwebmysql*备份任务下载说明:从网站进行命令下载到指定的目录代码如下:wgethttp://备份文件的WEB地址/MySQLDATA-%date:~0,10%.rar-PE:数据备份\%date:~0,10%wget下载地址:放在C:WindowsSystem32注意:也可以用其它工具进行下载,如果大文件的话不建议用这种方法。对于小文件倒还好。添加自动任务打开任务面板->任务计划双击“添加任务计划”下一步浏览到你创建的CMD。自定义任务的名称,如果是数据库的话建议一天备份一次。如果网站文件的话可以设置一周。下一步设置时间,建议设置2-3点左右。下一步输入管理的帐号和密码来完成任务创建。
‘伍’ linux 自动备份和恢复的脚本
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可以使得企业实现安全而高效的备份。
‘陆’ Oracle数据库RMAN的自动备份脚本简介
Oracle数据库RMAN的自动备份脚本简介
各位同学知道Oracle数据库RMAN如何自动备份脚本嘛?下面我为大家整理了关于Oracle数据库RMAN的自动备份脚本文章,希望能为你提供帮助:
1、数据库设置为归档方式
2、数据库的备份脚本
db_full_backup.sh :数据库全备脚本
db_l0_backup.sh :数据库0级备份脚本
db_l1_backup.sh :数据库1级备份脚本
ftp.sh :数据FTP上传脚本
ftp_del.sh :数据FTP清理脚本
rman_bak.sh :数据备份主程序
3、备份原理
每周1、3、6进行0级备份
每周日、2、4、5进行1级备份
备份文件上传到FTP服务器
FTP服务器每周清理一次,但是清理后将周六和周日的备份进行保留(6.bak和0.bak)
所有工作防暑crontab中自动执行备份
4、备份目录含义
arc :数据库归档目录
rmanbak :数据库备份文件的保存目录
rmanscripts :数据库脚本存放路径
5、FTP目录
ftp上必须手动建立目录
L0:
---1
---3
---6
---6.bak
L1:
---2
---4
---5
---0
---0.bak
rman_bak.sh脚本主程序
#!/bin/bash
#--------------------------------------------
# Oracle auto backup using rman
#
# author:songrh
# week:1,3,6 Level 0 backup
# 2,4,5,0 Level 1 backup
# Copyright by ChenLong Tec
#--------------------------------------------
#
#
export ORACLE_BASE=/u02/oracle
export ORACLE_HOME=/u02/oracle/proct/9.2.4
export ORACLE_SID=PROD
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export NLS_LANG=american_america.ZHS16GBK
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NL33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH
export PATH=$PATH:/opt/local/bin
#
SH_PATH=/u02/rmanscripts
ARC_PATH=/u02/arch
RMAN_BAK_PATH=/u02/rmanbak
#
#FULL_PATH=$RMAN_BAK_PATH/full
L0_PATH=$RMAN_BAK_PATH/L0
L1_PATH=$RMAN_BAK_PATH/L1
#
#DAY_TAG=`date "%Y-%m-%d"`
LOG_TAG=`date "%Y-%m-%d"`
#FIRST_DAY=`date %e`
WEEK=`date %w`
#WEEK=1
#
# FTP configure
IP="122.120.150.155"
FTPUSER="ftpbak"
FTPPASS="******"
FTPROOT0="L0"
FTPROOT1="L1"
#
DISK_USE=`df -k |sed -n '/u02/'p | awk '{print $5}' |sed 's/%//'`
####check path function
############
if [[ $DISK_USE -ge 90 ]]; then
rm -rf $L0_PATH/*
rm -rf $L1_PATH/*
fi
if [ "$WEEK" = "6" -o "$WEEK" = "3" -o "$WEEK" = "1" ]; then
if [ ! -d $L0_PATH ]; then
mkdir $L0_PATH
fi
if [ "$WEEK" = "1" ]; then
rm -rf $L0_PATH/*
rm -rf $L1_PATH/*
mkdir $L0_PATH/$WEEK
$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK
cd $L0_PATH/$WEEK
$SH_PATH/ftp_del.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log
else
if [ ! -d $L0_PATH/$WEEK ]; then
mkdir $L0_PATH/$WEEK
$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK
cd $L0_PATH/$WEEK
$SH_PATH/ftp.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log
else
;