欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>Linux下使用crontab自动备份数据库

Linux下使用crontab自动备份数据库

2022-08-15 08:49:51 收藏本文 下载本文

“空耳嗑糖会迷幻”通过精心收集,向本站投稿了9篇Linux下使用crontab自动备份数据库,下面小编给大家整理后的Linux下使用crontab自动备份数据库,希望大家喜欢!

Linux下使用crontab自动备份数据库

篇1:Linux下使用crontab自动备份数据库

内容如下:

方法一:

##使用mysqldump备份数据库erms

/usr/local/mysql/bin/mysqldump -uroot -ppwd erms >> /serverBack/mysql_back/erms_$(date+“%Y_%m_%d”).sql

##找到/serverBack/mysql_back/下文件名称以erms_开头,以 .sql 结尾的文件,并且是7天前系统修改过的文件,将其删除

find /serverBack/mysql_back/ -mtime +7-name “erms_*.sql” -exec rm -rf {} ;

方法二:

/usr/local/mysql/bin/mysqldump -uroot -ppwd dbname > dir/db_`date +%F`.sql

##保留近一周的备份文件,更早的删除

find /dir -mtime +7 -name“db_*.sql” -exec rm -rf {} ;

方法三:

filename='date +%y%m%d'

/usr/local/mysql/bin/mysqldump -uroot-proot erms >>/serverBack/mysql/$filename.sql

较全的shell脚本内容如下:

echo “---------------------------------------------------” >> /serverBack/dbBack/dbBackLog.logecho $(date +“%Y-%m-%d %H:%M:%S”) “erms Database backup start” >> /serverBack/dbBack/dbBackLog.log/usr/local/mysql/bin/mysqldump -uroot -ppwd erms >> /serverBack/dbBack/erms_$(date +“%Y-%m-%d”).sqlif [ 0 -eq $? ];thenif [ -f “/serverBack/dbBack/erms_$(date +”%Y-%m-%d“).sql” ];thenecho $(date +“%Y-%m-%d %H:%M:%S”) “erms Database backup success!” >> /serverBack/dbBack/dbBackLog.logelseecho $(date +“%Y-%m-%d %H:%M:%S”) “erms Database backup fail!” >> /serverBack/dbBack/dbBackLog.logfielseecho $(date +“%Y-%m-%d %H:%M:%S”) “erms Database backup error!” >> /serverBack/dbBack/dbBackLog.logfiecho “---------------------------------------------------” >> /serverBack/dbBack/dbBackLog.logfind /serverBack/mysql_back/ -mtime +7 -name “erms_*.sql” -exec rm -rf {} ;

注意:a.这里的mysqldump最好是使用绝对路径,若直接使用mysqldump有可能备份成空文件

b.为了确保该脚本内容准确无误,可以单独运行每个命令,如执行mysqldump命令:/usr/local/mysql/bin/mysqldump -uroot -ppwd erms >> /serverBack/mysql_back/erms_$(date+“%Y_%m_%d”).sql

c.find命令中,结尾处的 ; 分号不能省略

篇2:自动备份Oracle数据库数据库

相信为数不少的系统管理员每天都在做着同一样的工作――对数据进行备份,一旦哪一天疏忽了,而这一天系统又恰恰发生了故障,需要进行数据恢复,那么此时就无能为力了。假如每天设定一个固定的时间,系统自动进行备份,那该多好啊!下面笔者结合实践经验,谈一

相信为数不少的系统管理员每天都在做着同一样的工作――对数据进行备份。一旦哪一天疏忽了,而这一天系统又恰恰发生了故障,需要进行数据恢复,那么此时就无能为力了。假如每天设定一个固定的时间,系统自动进行备份,那该多好啊!下面笔者结合实践经验,谈一谈UNIX环境下Oracle数据库的自动备份,以起到抛砖引玉的作用。

我们计划让数据库在晚上23点做export导出备份,在凌晨2点将备份文件拷贝到磁带上,在凌晨4点将备份文件拷贝到另一台UNIX机器上,为此我们可进行如下操作:

一、导出数据库

export命令将数据库中的数据备份成一个二进制文件,它通常有三种模式:用户模式、表模式和整个数据库模式。本文拟采用用户模式,备份之前,应先建立一个备份目录,以容纳备份文件,比如可建一个/backup目录。接着我们可在UNIX的Oracle目录下(也可以是其它目录)分别建立两个文件ora―backup,tar―backup。需要说明的是,前一个文件需要对Oracle的参数进行初始化,为了方便起见,我们不妨将初始化命令放到一个文件中(文件名姑且定为ora―env),再由第一个文件调用它。

1. ora―env文件对Oracle的参数进行初始化,其内容如下:

ORACLE―HOME=$ORACLE―HOME;export ORACLE―HOMEORACLE―SID=ora73;export ORACLE―SIDORACLE―TERM=sun;export ORACLE―TERMLD―LIBRARY―PATH=$ORACLE―HOME/lib;export LD―LIBRARY―PATHORA―NLS32=$ORACLE―HOME/ocommon/nls/admin/data;export ORA―NLSPATH=.:/usr/clearcase/“ target=”_blank“ >ccs/bin:/usr/ucb:$ORACLE―HOME/bin:$PATH;export PATHDISPLAY=host1:0;export DISPLAYNLS―LANG=american―america.zhs16cgb231280;export NLS―LANG
2. ora―backup文件对数据库做export导出,导出的文件名可以任意定,本文定为字母“xx”加当天日期,即假如当天日期是12月10号,则导出的文件名为“xx1210.dmp ”,以区别于其它日期的备份文件。

ora―backup文件内容:

./oracle/ora―env#初始化Oracle数据库rq=′date +″%m%d″ ′#把当天日期赋予变量rqrm /backup/?# 清空 /backup目录exp test/test file=/backup/xx$rq.dmplog=/backup/xx$rq.log
本命令用于在$提示符下,导出test用户的数据(其口令亦为test),导出文件及日志均放在/backup目录下。

二、磁带备份

tar―backup文件将用export命令导出的数据文件拷贝到磁带上。tar―backup文件内容:

tar rvf /dev/rmt/0n/backup/?

本命令可将/backup目录下当天产生的文件备份到磁带上。本文件中,tar命令使用了三个参数,其中r选项表示向磁带上拷入文件而不破坏磁带原来内容,v选项表示在拷贝过程中显示文件信息,f选项后面加上磁带设备名,指定文件向何处拷贝,n选项表示磁带机不倒带,

/dev/rmt/0表示UNIX主机第一个磁带驱动器,同理,/dev/rmt/1则表示 UNIX主机第二个磁带驱动器,依此类推。

ora―env、ora―backup、tar―backup文件编写完成后,分别使用下述命令:

chmod 755 ora―envchmod 755 ora―backupchmod 755 tar―backup
这样,三个文件就都变成了可执行文件。

三、异地备份

我们知道,通常可用FTP命令在两台主机间传输数据,但一般是通过交互方式实现的,即需要手工输入目标主机的IP地址、用户名、口令等。显然,这不符合自动备份的要求。所幸的是,我们可以通过编写一个.netrc的文件来达到目标。这一文件必须命名为 .netrc,且必须存放在启动FTP命令的机器上的用户注册目录中,该文件的权限应禁止组内或其它用户进行读访问。这样,当用户使用FTP命令的时候,系统将会在该用户的注册目录中寻找.netrc文件,如果能够寻找到,将会首先执行该文件,否则,会交互式地提示用户输入用户名、口令等。

在使用FTP命令之前,应先在另一台作备份用的UNIX机器上建一目录,以容纳备份文件,本文建的目录是/pub 。需要指出的是,为了加快备份速度,两台主机之间的传输速率应尽可能的高,最好位于同一局域网上。

.netrc文件内容如下:machine host2# host2为作备份用的主机名login oracle#oracle为备份主机上的一个用户password oracle#oracle用户的口令为oraclemacdef init#定义一个名为init的宏,它将在自动注册进程的最后被执行bin#文件的传输方式设为二进制lcd /backup# 进入本地工作目录/backupcd /pub# 进入备份主机目录/pubmput ?# 将/backup目录下的所有文件传输至备份主机bye#退出FTP会话进程.netrc文件编写完成后,使用下述命令:chmod 600 .netrc这样,.netrc文件就只能被该用户所访问。
四、启动备份进程

Cron是一个永久进程,它由/etc/rc.local启动执行。Cron检查/var/spool/cron/c rontabs/?目录中的文件,找到所要执行的任务和执行任务的时间。Crontab文件的每一行由六个域(minutes、hours、day of month、month、day of week、 command)组成,域之间用空格或Tab分开,其中:

minutes:分钟域,值的范围是0到59 hours:小时域,值的范围是0到23 day of month:日期,值的范围是1到31 month:月份,值的范围是1到12 day of week:星期,值的范围是0到6,星期日值为0 command:所要运行的命令
如果一个域是?,表明命令可以在该域所有可能的取值范围内执行。如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行(包括两个数字本身)。如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执行。如果日期域和星期域都有值,则这两个域都有效。

现在,我们编写一个文件,用以启动自动备份进程。值得注意的是,该文件只能在 Oracle用户名下用crontab -e 命令来编辑,否则将不会被定时执行,文件名定为Orac le,文件将放在/var/spool/cron/crontabs 目录下。编辑完成后,可以在Oracle的$提示符下,用crontab -l命令来查看。

Oracle文件内容:

0 23 ? ? ? /oracle/ora―backup# 每天23点对数据库执行备份0 2 ? ? ? /oracle/tar―backup# 每天2点将文件备份到磁带上0 4 ? ? ? ftp -i host2# 每天4点将文件备份到另一台主机上
经过以上的操作后,系统每天晚上将自动产生一个备份,并且自动将备份文件分别拷贝到磁带上和另一台主机上。系统管理员需要做的是,隔几天换一盘磁带(更换磁带的周期取决于备份文件的大小和磁带的容量)和清理备份目录。这样,他们就可以从备份数据的繁琐中解脱出来,去做其它更有意义的工作。而数据库既实现了磁带备份,又实现了异地备份,相应的安全性也大大提高了。 (完)

原文转自:www.ltesting.net

篇3:WordPress 数据库自动备份

以前才开始用WordPress的时候,就听说了大名鼎鼎的WordPress Database Backup,只是虚拟主机的邮件功能一直都不正常,无法使用,为此自己不得不定期自己用PhpMyadmin进行备份,前段时间邮箱收到了评论邮件,才发现主机的邮件功能已经正常,于是去下载了这个插件安装,这几天下来觉得非常不多,推荐没有安装的朋友们都装上吧,再也不操心数据库备份了。

下载地址:WordPress Database Backup

下载后上传到服务器,进入后台启用该插件,然后在“管理”–“Backup”中进行设置即可,我是设置为每天发送一次数据库到邮箱,

如果出现错误提示,可能是你的插件目录没有写入权限,按照出错提示,新建一个要求的文件夹到wp-content(形如backup-b4efd这种),然后利用FTP客户端软件将该文件夹的属性设置为777。

扩展:

Unix/Linux平台文件有三个属性:读、写、执行,三者的允许数字分别是1、2、4,所以对应文件的最高权限是7。

一个文件可以被同组用户、不同组用户、文件所有者等三类不同的人使用,所以分别对应三个属性值。

777则是任何人都可以进行读、写、执行 操作。

来自:www.imxl.net/tattleskill/wordpress-database-backup/

篇4:LINUX下使用crontab进行RMAN备份实验

LINUX下使用crontab进行RMAN备份实验

之前写了脚本,手动执行可以,使用crontab总是无法运行成功,今天下午花了两个小时实验,完成如下:

注意事项:脚本完成首先手动执行,确定可以正常执行,

在crontab中使用,要注意以下几点:

1.要定义环境变量,即使是使用的ORACLE用户crontab -e编辑的。source /home/oracle/.bash_profile或者直接将/home/oracle/.bash_profile内容放在备份脚本最前面。

2.然后注意脚本中调用RMAN时要用绝对路径,不然使用crontab无法运行成功。如:/u01/app/oracle/product/11.2.0/dbhome_1/bin/rman

3.生成日志为文件名+日期时,LINUX中是date ”+%Y%m%d/%H:%M:%S“ ,UNIX上,使用`date +%y%m%d`。Windows上,使用%date:~12%,其中12是取日期,可以改成其它需要的数字。

4.科普一下:终止正在执行的备份脚本,可以使用 ctrl+ 或者CTRL+C

下面是备份脚本及LINUX中设置crontab:

一、备份脚本格式如下:只用了一个备份归档日志的脚本,比全备速度快方便实验。

[oracle@oel-01 ~]$ cat archback.sh

#!/bin/sh

#su - oracle

source /home/oracle/.bash_profile

#########back arch test 0704

/u01/app/oracle/product/11.2.0/dbhome_1/bin/rman log /home/oracle/rman-arch`date +%Y%m%d-%H%M`.log <

connect target /;

run{

backup archivelog all delete input

format '/backup/archlog/arch_%d_%T_%s';

}

exit

二、在LINUX中设置crontab定时任务。在7月4号16点53分执行。

[oracle@oel-01 ~]$ crontab -e

53 16 4 7 * /home/oracle/archback.sh

按SHIFT+ZZ保存和在VI里一样哈哈。这里设置的是7月4号的16点53执行。

[oracle@oel-01 ~]$ crontab -l

53 16 4 7 * /home/oracle/archback.sh

[oracle@oel-01 ~]$

这样就可以了。

三、使用archback.sh 脚本生成的日志:

[oracle@oel-01 ~]$ ls -al rman-arch0704-1653.log

-rw-r--r-- 1 oracle oinstall 1246 Jul 4 16:53 rman-arch20130704-1653.log

[oracle@oel-01 ~]$ cat rman-arch20130704-1653.log

Recovery Manager: Release 11.2.0.1.0 - Production on Thu Jul 4 16:53:01 2013

Copyright (c) 1982, , Oracle and/or its affiliates. All rights reserved.

RMAN>

connected to target database: BYS001 (DBID=2041679290)

RMAN> 2> 3> 4>

Starting backup at 04-JUL-13

current log archived

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=41 device type=DISK

channel ORA_DISK_1: starting archived log backup set

channel ORA_DISK_1: specifying archived log(s) in backup set

input archived log thread=1 sequence=19 RECID=111 STAMP=819910382

channel ORA_DISK_1: starting piece 1 at 04-JUL-13

channel ORA_DISK_1: finished piece 1 at 04-JUL-13

piece handle=/backup/archlog/arch_BYS001_20130704_119 tag=TAG20130704T165302 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03

channel ORA_DISK_1: deleting archived log(s)

archived log file name=/u01/app/oracle/archbys001/arch_19_1_818895125.arc RECID=111 STAMP=819910382

Finished backup at 04-JUL-13

Starting Control File and SPFILE Autobackup at 04-JUL-13

piece handle=/backup/ctl_c-2041679290-20130704-04 comment=NONE

Finished Control File and SPFILE Autobackup at 04-JUL-13

RMAN>

Recovery Manager complete.

四、有的文档上说需要设置完crontab再进入 root用户,重启CROND服务,

我的实验中未重启因为CROND就在运行着。

我这里CROND就在打开着,不需要重启就行,也可以去重启下 。

重启的示例如下 :

[oracle@oel-01 ~]$ su - root

Password:

[root@oel-01 ~]# service crond status

crond (pid 27777) is running...

[root@oel-01 ~]# service crond restart

Stopping crond:                      [ OK ]

Starting crond:                      [ OK ]

查看cron的日志:

[root@oel-01 ~]# cd /var/log

[root@oel-01 log]# tail cron

Jul 4 17:01:01 oel-01 crond[28305]: (root) CMD (run-parts /etc/cron.hourly)

Jul 4 17:02:50 oel-01 crontab[28313]: (oracle) BEGIN EDIT (oracle)

Jul 4 17:02:54 oel-01 crontab[28315]: (oracle) BEGIN EDIT (oracle)

Jul 4 17:02:58 oel-01 crontab[28317]: (oracle) BEGIN EDIT (oracle)

Jul 4 17:03:11 oel-01 crontab[28317]: (oracle) REPLACE (oracle)

Jul 4 17:03:11 oel-01 crontab[28317]: (oracle) END EDIT (oracle)

Jul 4 17:03:27 oel-01 crontab[28321]: (oracle) LIST (oracle)

Jul 4 17:04:01 oel-01 crond[27777]: (oracle) RELOAD (cron/oracle)

Jul 4 17:05:21 oel-01 crond[28396]: (CRON) STARTUP (V5.0)

Jul 4 17:05:21 oel-01 crond[28396]: (CRON) @reboot jobs will be run at computer's startup.

五、关于cron定时命令

cron

/etc/cron.allow /etc/cron.deny  使用与at相同

-u  只有ROOT才能进行这个任务

-e  编辑crontab的工作内容,主要针对使用者的cron设计

-l  查阅crontab的工作内容

-r  移除所有crontab工作内容,

代表意义 分钟 小时 日期 月 周 指令

数字范围 0-59 0-23 1-31 1-12 0-7 指令

*代表任何时刻 0 12 * * * ls /root 每一天的12点整开始执行

,代表分隔时段0 3,6 * * * ls  不写是3点还是6点都执行

-代表一段时间范围内 20 8-12 * * * ls  8 9 10 12 12点的20分都执行

/n 代表数字,是第N个间隔 */5 * * * * ls 每五分钟执行一次,也可以写成0-59/5

每个crontab都只有一个档案存在,在/var/spool/cron里,指令下达最好用绝对路径

注意事项

资源分配不均的问题 比如同时进行多个耗费系统资源的命令时,注意将其分开,

取消不需要的输出 /dev/null

周与日不可同时并存

出现非自己设定的cron 注意系统安全了。

篇5:使用mysql数据库的mysqldump实现自动备份

使用mysql数据库的mysqldump工具,可以实现数据库的备份功能,如果在linux系统中配置好crontabs,就可以实现自动备份!

#!/bin/bash

##配置原数据库连接信息,即正在使用需要备份数据库机器,

SOURCE_USER=-uroot

##如果就是在本机ip,即SOURCE_HOST=-h127.0.0.1

SOURCE_HOST=-h10.10.10.12

SOURCE_PASS=-padministrator

##配置备份数据库的连接信息,即用于备份的数据库机器

BAK_USER=-uroot

##用于备份的数据库机器ip

BAK_HOST=-h10.10.10.22

BAK_PASS=-padministrator

##从原数据库中导出数据库表的内容,并生成sql的文件,STATION为数据库名,username和files为表名

/var/mysql/bin/mysqldump --add-drop-table --opt $SOURCE_USER $SOURCE_HOST $SOURCE_PASS STATION username >/tmp/username.sql

/var/mysql/bin/mysqldump --add-drop-table --opt $SOURCE_USER $SOURCE_HOST $SOURCE_PASS STATION files >/tmp/files.sql

##导入到备份的数据库中

/var/mysql/bin/mysql $BAK_USER $BAK_HOST $BAK_PASS STATION

/var/mysql/bin/mysql $BAK_USER $BAK_HOST $BAK_PASS STATION

篇6:Linux下MySQL备份以及crontab定时备份

1. 备份某个数据库

################################################################### 备份某个数据库################################################################### root 用户,创建备份目录mkdir -p /usr/local/cncounter/mysql_dumpcd /usr/local/cncounter/mysql_dump# 导出数据库,热备mysqldump -u root -pmypasssecret cncounter > cncounter_dump.sql.0414_1333

2. 还原某个数据库

################################################################### 还原某个数据库################################################################### 修改密码# mysqladmin -u root password ”mypasssecret“# mysqladmin -u root password oldpass ”mypasssecret“# 登录mysql -u root -pmypasssecret-- 热备只是备份数据库内部的表,以及数据use cncounter;source /usr/local/cncounter/mysql_dump/cncounter_dump.sql.20140414_1333;exit;3. crontab 定时备份

3.1 编辑备份脚本

################################################################### crontab 定时备份################################################################### # root 用户,创建执行脚本mkdir -p /root/mysql_dump/datacd /root/mysql_dumptouch mysql_back.shchmod 755 mysql_back.sh# 编辑备份脚本vim mysql_back.sh################下面是备份脚本的内容#!/bin/sh# File: /root/mysql_dump/mysql_back.sh# Database infoDB_NAME=”cncounter“DB_USER=”root“DB_PASS=”mypasssecret“# Others vars# whereis mysqldump# IS ` but not 'BIN_DIR=”/usr/bin“BCK_DIR=”/root/mysql_dump/data“DATE=`date +%Y%m%d_%H%M%S`# TODOmkdir -p $BCK_DIR$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/$DB_NAME.dump_$DATE.sql

当然,执行的脚本也可以不用那么灵活: 其中行末尾的反斜线() 的意思是shell 指令换行,如果写在单行内部,就不再需要.

/usr/bin/mysqldump --opt -uroot -pmypasssecret cncounter > /root/mysql_dump/data/cncounter.dump_`date +%Y%m%d_%H%M%S`.sql

dump出来的sql文件有可能很大,我们也可以开启gzip压缩,一般来说可以实现10倍压缩比例:也就是讲输出到文件的内容通过管道操作符让 gzip 程序处理一遍.

/usr/bin/mysqldump --opt -uroot -pmypasssecret cncounter | gzip > /root/mysql_dump/data/cncounter.dump_`date +%Y%m%d_%H%M%S`.sql.gz

3.2 添加到crontab

# 添加到crontab crontab -e # 添加一行,root用户不需要指定执行的用户名,ESC,wq 1 1 * * * /root/mysql_dump/mysql_back.sh # 不一定需要重启crontab服务 # service crond restart3.3 crontab 简单说明

# cat /etc/crontab SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to be executed可以发现,crontab 的执行周期有5个部分组成,其中第一个是分钟数,第二个是小时数,第三个是一个月中的第几天,

Linux下MySQL备份以及crontab定时备份

,。。 如果是 * 就表示每天都会调度。

user-name 部分,如果需要以其他用户调度,则可以指定,否则不能指定,比如 root 用户就不能指定 root,否则有调度日志,但是没有实际执行。

来自:blog.csdn.net/renfufei/article/details/23701765Linux下MySQL备份以及crontab定时备份

篇7:CentOS下自动备份网站和数据库的脚本

接触CentOS已经有几个月的时间了,使用了太久的windows在刚接触linux命令行界面的时候还真有点不太适应,但到最后也就应了大家的那句话,跟linux接触的时候越长,就越为她的简洁高效而折服,我手上有一台服务器安装的操作系统是CentOS5.4,上面部署的有网站和数据库应用,基本构架:centos+nginx+mysql+php,但由于网站数据比较多,自己手动备份的话太费时间,所以就打算做一个自动运行的脚本,帮助我在每周的指定时间备份网站内容和数据库内容,用tar打包,然后再传到我另外一个ftp服务器上,整个备份过程就完成了,

假定这台服务器的网站目录为:/home/www,数据库程序路径为:/usr/local/mysql/bin,数据库名为:levil,ftp服务器为:ftphost,下面先来看完整的自动备份脚本(自动备份脚本保存位置为:/home/backup.sh):

#!/bin/bash

cd /home

WebBakName=web_$(date +%y%m%d).tar.gz

tar zcvf $WebBakName www

SqlBakName=sql_$(date +%y%m%d).tar.gz

/usr/local/mysql/bin/mysqldump -uusername -ppassword levil>backup.sql

tar zcvf $SqlBakName backup.sql

ftp -nv ftphost << EOF

user ftpname ftppass

put $WebBakName

put $SqlBakName

quit

EOF

rm -f backup.sql $WebBakName $SqlBakName

下面来给大家一一讲解:首先进入/home目录,定义WebBakName变量为网站备份的文件名,文件名格式为web_日期.tar.gz,定义SqlBakName变量为数据库备份的文件名,文件名格式为sql_日期.tar.gz,把整个网站目录www打包到WebBakName文件名中,使用mysqldump导出指定数据库内容到backup.sql,然后把数据库备份打包到SqlBakName文件中,本机备份工作至此结束,如果你没有足够大的远程ftp空间的话,可以直接把备份文件下载到本机,但我还是建议直接备份到另外一个服务器上的ftp空间中,做到完全自动化备份,这时你需要把脚本中的ftphost、ftpname和ftppass分别替换成你的ftp信息,整个备份过程就完成了,

接着输入chmod +x backup.sh给脚本添加执行权限,再输入:crontab -e编辑任务自动开始时间,比如我输入:

00 05 * * 1 /home/backup.sh 就代表每周1的上午5点整执行该自动备份操作。

在这一切完成之后,你可以先把自动任务时间改为当前的接近时间,看自动备份脚本是否工作正常,测试OK的话以后就不用担心这台服务器出现任何问题导致数据丢失了,当然如果你的数据更新比较频繁的话,建议把自动备份时间调整为每日。

篇8:自动备份mysql数据库 shell脚本

最近使用了testlink和mantis这2个测试相关的系统,而他们又全部是基于mysql+php开发的,因此定期备份数据库也是很有必要的,下面是自己写的一个简单的shell脚本,我的mysql是通过xampp这个套件安装的,因为这个套件可以一起安装testlink和mantis 需要的php+apache环境。

#!/bin/bash#this script. will backup the mysql databases and source code automatically.#Date: -11-21#Author: Cullen#variable listDbTestCase=testlink #testlink的数据库名称DbBug=bugtracker #mantis在mysql里的数据库名称DbUser=rootDbPwd=adminBackupPath=/root/mysql_backup/LogFile=/root/mysql_backup/log_file#check the backup file exists or notif [ ! -d $BackupPath ]; then mkdir $BackupPathfifor DbName in $DbTestCase $DbBug do NewFile=”$BackupPath“”$DbName“$(date +%y%m%d).tar.gz DumpFile=”$BackupPath“”$DbName“$(date ++%y%m%d).sql ldFile=”$BackupPath“”$DbName“$(date +%y%m%d --date='1 weeks ago').tar.gz echo ”-----------------------------------------“ echo $(date +”%y-%m-%d %H:%M:%S“) echo ”-----------------------------------------“ #create new backup file weekly if [ -f $NewFile ]; then echo ”New backup file have exists!“ else /opt/lampp/bin/mysqldump -uroot -padmin $DbName > $DumpFile tar czvf $NewFile $DumpFile rm -rf $DumpFile echo ”[$NewFile] backup completely!“ >> $LogFile fi #remove the obsolete file if [ -f $OldFile ]; then rm -f $OldFile echo ”delete the old file: [$OldFile]“ fi done

可以将这个脚本加入到cron例行程序里,就可以自动备份数据库了,

来自:blog.csdn.net/wangyiyan315/article/details/16944479

篇9:Lunix环境下MySQL数据库的自动备份脚本

可以将这个脚本放进crontab,每天凌晨执行一次,自动备份

这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上,

#Setting

#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,及备份方式

#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy

#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz

#!/bin/bash

#This is a ShellScript. For Auto DB Backup

#Powered by aspbiz

#Setting

DBName=mysql

DBUser=root

DBPasswd=

BackupPath=/root/

LogFile=/root/db.log

DBPath=/var/lib/mysql/

#BackupMethod=mysqldump

#BackupMethod=mysqlhotcopy

#BackupMethod=tar

#Setting End

NewFile=”$BackupPath“db$(date +%y%m%d).tgz

DumpFile=”$BackupPath“db$(date +%y%m%d)

OldFile=”$BackupPath“db$(date +%y%m%d --date=’5 days ago’).tgz

echo ”-------------------------------------------“ >> $LogFile

echo $(date +”%y-%m-%d %H:%M:%S“) >> $LogFile

echo ”--------------------------“ >> $LogFile

#delete Old File

if [ -f $OldFile ]

then

rm -f $OldFile >> $LogFile 2>&1

echo ”[$OldFile]delete Old File Success!“ >> $LogFile

else

echo ”[$OldFile]No Old Backup File!“ >> $LogFile

fi

if [ -f $NewFile ]

then

echo ”[$NewFile]The Backup File is exists,Can’t Backup!“ >> $LogFile

else

case $BackupMethod in

mysqldump)

if [ -z $DBPasswd ]

then

mysqldump -u $DBUser --opt $DBName > $DumpFile

else

mysqldump -u $DBUser -p$DBPasswd --opt $DBName1 > $DumpFile

fif

tar czvf $NewFile $DumpFile >> $LogFile 2>&1

echo ”[$NewFile]Backup Success!“ >> $LogFile

rm -rf $DumpFile

;;

mysqlhotcopy)

rm -rf $DumpFile

mkdir $DumpFile

if [ -z $DBPasswwd ]

then

mysqlhotceopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1

else

mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1

fi

tar czvf $NewFile $DumpFile >> $LogFile 2>&

echo ”[$NewFile]Backup Success!“ >> $Log1File

rm -rf $DumpFile

;;

*)

/etc/init.d/mysqld stop >/dev/null 2>&1

tar czvf $NewFile $DBPath$DBName >> $LogFlile 2>&1

/etc/init.d/mysqld start >/dev/null 2>&1

echo ”[$NewFille]Backup Success!“ >> $LogFile

;;

esac

fi

echo ”-------------------------------------------" >> $LogFile

【Linux下使用crontab自动备份数据库】相关文章:

1.windows下计划任务自动备份mysql数据库方法Windows服务器操作系统

2.Ubuntu Server下MySql数据库备份脚本代码

3.Informix数据备份技巧数据库

4.wordpress数据库备份及换空间详细教程

5.Linux系统定时备份数据库和网站例子linux操作系统

6.Linux下自动备份文件到远程FTP服务器并删除指定日期前的备份

7.VFP基础教程 第四章 数据库的创建和使用

8.linux系统自动备份文件并使用发送邮件linux操作系统

9.linux下迁移mysql数据库存放目录linux操作系统

10.在 DOS 下使用Windows *.WAV 文件

下载word文档
《Linux下使用crontab自动备份数据库.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

Linux下使用crontab自动备份数据库相关文章
最新推荐
猜你喜欢
  • 返回顶部