接到任务:在cenos6.x系统中每天定时备份mysql数据库和Oracle数据库

解决时间1天:

步骤:

MySQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。

◆1、创建备份文件夹

------------------------------------
[root@localhost cd /home/
[root@localhost dbbackup]# mkdir mysql
[root@localhost dbbackup]# mkdir oracle
[root@localhost dbbackup]# cd mysql/
------------------------------------

◆2、编写运行脚本

#vi autobackup

写入以下内容:

filename=`date +%Y%m%d` (ESC下面的字符) 按照时间存名字

mysql_bin_dir/mysqldump --opt dataname -u user -ppassword | gzip > /www/mysqlbackup/name$filename.sql.gz

最终内容:

filename=`date +%Y%m%d`

在上句话的后面也可以继续写其他变量,但是在下面如有发送附件的情况下,用绝对路径没事,但是变量的话就会出现找不到附件的错误提示。

解决办法,只需要在每一行加上;即可

例如

filedate=`date +%Y_%m_%d`;
mailtitle=`date +%Y.%m.%d`;
filebaiduname="cn.baidu.bot_"$filedate".log";
filegooglename="cn.google.bot_"$filedate".log";

/home/backup_apache_log/sendEmail -v -f service@joytrav.com -t backup@joytrav.com -s smtp.exmail.qq.com:25 -u cn_site_apache_log-$mailtitle -a /home/app_deployment/apache/logs/$filebaiduname /home/app_deployment/apache/logs/$filegooglename -m cn_apache_log_$filedate -xu XXX@XXX.com -xp "XXXXXX;"

/usr/local/mysql/bin/mysqldump --opt joytravel -uroot -ppassword | gzip > /home/dbbackup/mysql/xxx/xxx$filename.gz
可以写多个回车换行即可
保存退出

说明:

(1)mysql_bin_dir:mysql的bin路径;

(2)dataname:数据库名;

(3)user:数据库用户名;

(4)password:用户密码;

(5)name:自定义备份文件前缀标识。

如上例,将自动备份mysql数据库,并以gzip压缩方式存储,文件名为name20080101.gz的形式。

◆3、为脚本添加执行权限

#chmod +x autobackup

◆4、让crontab来完成定期执行的任务

这一步中,Redhat的方法会不一样,后面专门给出。

编辑crontab:

#vi /etc/crontab

在最后一行中加入:

01 6 * * * root /www/autobackup

每天6点运行脚本,也可以修改6为其他指定时间。

Redhat方法:

Redhat的crontab采用按时间调用4个目录(/etc/cron.hourly:每小时;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中脚本出来运行的方式。

Redhat中只需要将刚才编辑的脚本复制到相应的目录即可。

◆5、重启crontab

#/etc/rc.d/init.d/crond restart

自动发邮件:

首先用了所谓的 系统自带的mail 和 mutt

不是不能传附件,就是报错。

第三种方法完美解决:

方法如下:

下载sendEmail-v1.56.tar软件。

Linux最简单发送邮件的方法

一般使用本机的mail命令, 这就需要开启本机的smtp服务. 假如网络里面有一个邮件服务器(一般公司都有的), 则可以直接使用这台现有的邮件服务器, 不用开启本机的smtp服务, 只需要使用第三方软件sendEmail. 其官方地址: http://caspian.dotconf.net/menu/Software/SendEmail/

首先要在邮件服务器上新建一个账户用来做发邮件的账户, 可以利用一现有的, 假如为dba@godmail.com, SMTP邮件服务器地址为mail.godmail.com, SMTP验证的用户名密码(如果该邮件服务不需要SMTP验证则无需本用户名密码)为god/iamgod

1. 安装sendMail

# cd /u01/software/nagios
# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
# tar -zxvf sendEmail-v1.56.tar.gz && cd sendEmail-v1.56
# cp sendEmail /usr/local/bin
# chmod 0755 /usr/local/bin/sendEmail

2. 发送邮件测试

# sendEmail -h                (查看sendMail帮助)

# sendEmail -f dba@godmail.com -t god@godmail.com -s mail.godmail.com -u "nagios测试" -m "nagios test 测试"

各参数含义如下:
-f 表示发送者的邮箱, 可随意设置
-t 表示接收者的邮箱
-s 表示SMTP服务器的域名或者IP
-u 表示邮件的主题
-m 表示邮件的内容
-xu 表示SMTP验证的用户名, 如果SMTP服务器需要验证的话就加上该参数, 一般发给外网用户则需要
-xp 表示SMTP验证的密码, 如果SMTP服务器需要验证的话就加上该参数, 一般发给外网用户则需要
-a FILE [FILE ...]      file attachment(s)
-cc ADDRESS [ADDR ...]   cc  email address(es)
-bcc ADDRESS [ADDR ...]   bcc email address(es)

4. 发送邮件高级用法

如果不带-m参数的话,就会提示你自行输入, 输入完成后使用CTRL-D来结束. 如果还要发送给外网邮件用户, 则还需设置SMTP验证:
# sendEmail -f dba@godmail.com -t god@godmail.com -bcc god@gmail.com -s mail.godmail.com -u "nagios测试" -m "nagios test 测试" -xu god -xp "iamgod"

也可以将一个文件的内容作为邮件的正文发出:
# sendEmail -f dba@godmail.com -t god@godmail.com -s mail.godmail.com -u "nagios测试" -o message-file=/var/log/messages

或者将一个文件的内容作为附件发出:
# sendEmail -f dba@godmail.com -t god@godmail.com -s mail.godmail.com -u "nagios测试" -m "pls see the attachement" -a /var/log/messages

定时任务脚本:

让crontab来完成定期执行的任务

编辑crontab:

#vi /etc/crontab

在最后一行中加入:

01 6 * * * root /www/autobackup

每天6点运行脚本,也可以修改6为其他指定时间。

重启crontab

#/etc/rc.d/init.d/crond restart

最后完成了mysql的备份和发邮件的工作。

Oracle与nysql的类似:

在autobackup的文件中追加一条:
/home/app/oracle/product/11.2.0/db_1/bin/expdp system/password DUMPFILE=schemas_20130623.dmp DIRECTORY=DATA_PUMP_DIR SCHEMAS=, ,  parallel=2 version=11.2.0.1.0

SCHEMAS=, ,  逗号之间写的是要导出哪些用户,/home/app/oracle/product/11.2.0/db_1/bin/expdp 是expdp的绝对路径需要在Oracle中找到即可。

也可以写到环境变量中,直接用也可以。

这样的方式备份完后   登录到Oracle  用这句话:先用这句话查找dmp文件需要放到的目录
select DIRECTORY_PATH  from dba_directories where DIRECTORY_NAME='DATA_PUMP_DIR';

来查找刚才备份文件的路径。执行后可以看到已经完成备份。发邮件与mysql类似,也只需在autosendmail中加一句即可。

在linux下自动备份数据库,并且发送邮件。相关推荐

  1. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  2. linux备份mysql怎样操作,Linux下自动备份MySQL数据库详细操作步骤(转载)

    环境说明 操作系统:CentOS IP:192.168.150.214 Oracle数据库版本:Oracle11gR2 用户:root 密码:123456 端口:3306 数据库:ts_0.ts_1. ...

  3. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  4. aix oracle备份命令,Aix/Linux下自动备份oracle数据库

    曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非 ...

  5. Linux下自动备份MySQL数据库及Can‘t connect to local MySQL server through socket和you need (at least one of) 解决e

    Linux下自动备份MySQL数据库及Can't connect to local MySQL server through socket和Access denied; you need (at le ...

  6. linux定时备份数据库到远程ftp,Linux下自动备份MySQL数据库并上传到远程FTP服务器...

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库到 ...

  7. [转]linux下完全备份数据库mysql

    #配置参数 USER=vimer_admin #数据库用户名 PASSWORD=dreamfly123 #数据库用户密码 DATABASE=vimer #数据库名称 WEBMASTER=2901014 ...

  8. linux自动备份数据库并发送邮件

    首先写一个定时任务脚本: 第三行就是数据库备份命令,第四行就是发送附件的命令,其中发送附件我用mail -a +附件的方式一直无法发送,最后用mutt方式方式附件成功! (说明:因为备份的sql文件比 ...

  9. MySQL 在Linux下定时备份数据库

    1.新建一个backup文件夹,用于存放我们的备份文件 Linux系统里,home文件夹一般空间比较充足,可以用来存放我们的备份文件 cd /homemkdir backup 2. 创建一个shell ...

最新文章

  1. Delphi 2010 secondsBetween Bug
  2. [安卓基础] 006.打开另一个Activity
  3. LeetCode 2103. 环和杆(位运算)
  4. Android 横屏启动activity,点击屏幕的单击、双击和长按事件
  5. 什么样的领导最有魅力?
  6. 常见的十大量化投资策略(附源码)
  7. jszip压缩服务器文件,JSZip压缩与解压的基本使用
  8. 小程序apkg还原_如何禁用微信小程序(适合任何机型的完美解决方案)
  9. Window Mobile map solutions
  10. VS2019 调用大漠插件免注册方法引发异常 0x00000000 处(位于 DMSPACE1.exe 中)引发的异常: 0xC0000005: 执行位置 0x00000000 时发生访问冲突。
  11. 【强化学习论文精读】Timeliness Guaranteed Traffic Flow Forecasting Based on Federated Online Learning
  12. LaTeX升级打怪路之自定义指令篇1
  13. 计算正五边形的面积和周长
  14. c语言200-500完数,C语言求完数(完全数)(详解版)
  15. 【一点唐城】15个未来高科技产品会让你无法想象、这些开脑洞的设计太牛了
  16. BP神经网络的详细推导
  17. 手机网页UI框架jQuery Mobile介绍之按钮篇
  18. Windows Server 2012 R2配置IIS搭载PHP发生HTTP500解决办法
  19. 管壁式换热器cad图纸_换热器之列管式换热器
  20. Python代码的编写运行方式介绍

热门文章

  1. SMOTE算法的Java实现
  2. 多对一,多对多RNN例子(摘抄笔记)
  3. 项目管理之启动:识别项目中的四类干系人
  4. 常用的电源防反接电路总结
  5. Android跨进程通讯机制之Binder、IBinder、Parcel、AIDL
  6. wampserver 如何加php,为wampserver 添加新版本php支持
  7. AudioTrack分析
  8. 控制算法工程师是怎样炼成的
  9. selenium定位svg标签下元素
  10. HBase查询速度慢原因排查