自动备份的脚本
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;
