使用expect和mysqldump备份

expect

expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。

例如,执行shell脚本的过程中,需要输入用户名、密码等,可使用expect来完成自动输入。

安装expect
yum install tcl
yum install expect

脚本

shell脚本
#! /bin/bash
currentTime=`date +%s`
sql="/home/cg/backup/myblog_$currentTime.sql"
/usr/lnmp/mysql-5.7.16/bin/mysqldump -umysql -p myblog>$sql
使用了expect的shell脚本
#! /usr/bin/expect

set timeout 10
set password [lindex $argv 0]
spawn /home/cg/shell/backup_database.sh
expect "Enter password:"
send "$password\r"
expect eof

定时执行

执行命令

crontab -e

然后输入:

* * * * 1 /home/cg/shell/backup_database 1234567 >> home/cg/shell/backup.log

错误集

mysqldump: Got error: 1049: Unknown database 'blog;'

错误:

mysqldump: Got error: 1049: Unknown database 'blog;' when selecting the database

解决办法:

1.若在windows命令行下,mysqldump备份命令后不能有分号“;”。

2.在expect脚本中,spawn不能识别shell命令“输出重定向”符号,因此要把mysqldump命令写到其他shell脚本文件

中,然后在expect脚本中调用该shell脚本。示范代码:

spawn /home/cg/shell/backup_database.sh

Linux下自动备份MySQL的更多相关文章

  1. Linux下自动备份MySQL数据库并上传到远程FTP服务器

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

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

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

  3. Linux 每天自动备份mysql数据库的方法

    Linux 每天自动备份mysql数据库的方法 作者: 字体:[增加 减小] 类型:转载   linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤.   /usr/bin为my ...

  4. 在CentOS下自动备份mysql

    在CentOS下自动备份mysql数据库,并差异同步到其它网络主机上 1.在/root/mysql_backup/下添加backup.sh:vim /root/mysql_backup/backup. ...

  5. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

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

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

  7. Linux下自动清除MySQL日志文件

    MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days= ...

  8. ubuntu下自动备份mysql数据库

    转载自:Mayi mysql的安装目录为:/var/lib/mysql 下面咱们来一起完成自动备份mysql. 备份目录为:/home/mydb 并且在每天下午18:30分以mysqldata_201 ...

  9. 服务器下自动备份MySQL

    Linux下 service crond restart */ * * * * /home/mysqlbackup.sh >/home/runssh.log backup.sh #bin/bas ...

随机推荐

  1. CSS border三角、圆角图形生成技术简介

    http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题, ...

  2. Ubuntu安装飞鸽传输

    飞鸽传书下载地址 http://www.ipmsg.org.cn/ipmsg/download.html 下载以后解压压缩包,会有一个可执行文件,executable文件. ./Qipmsg 如果没报 ...

  3. android入门:activity之间跳转,并且回传参数

    介绍:         两个activity进行跳转,在跳转过程中,将message由MainActivity传递到secondActivity,并且当secondActivity退回至MainAct ...

  4. setTimeout,setInterval 最短触发时间

    <!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...

  5. OS X EI Capitan 10.11 & xcode 7.0 beta(7A120f) -- cocoapods安装失败

    1.sudo gem install cocoapods: ERROR:While executing gem ... (Errno:EPERM) Operation not permitted - ...

  6. centos 单独安装nginx

    安装包下载网址: http://nginx.org/en/download.html 进入Linux文件夹执行 wget http://nginx.org/download/nginx-1.8.0.t ...

  7. YII 1.0 设置关联模型

    在model中设置如下 /* * 设置关联 */ public function relations(){ return array( 'cate'=>array(self::BELONGS_T ...

  8. --@angularJS--独立作用域scope绑定策略之=符策略

    1.index.html: <!DOCTYPE HTML><html ng-app="app"><head>    <title>s ...

  9. 天兔(Lepus)监控系统慢查询分析平台安装配置

    被监控端要安装pt工具 [root@HE1~]## yum -y install perl-IO-Socket-SSL [root@HE1~]## yum -y install perl-DBI [r ...

  10. shell 命令合并文本

    之前想把代码打印出来看来着,后来合并完之后放在word里发现有2000多页,然后放弃了~anyway,这个命令还是挺有用的. 比如我有文本a001.dat, a002.dat, a003.dat .. ...