一、备份脚本
今天做MySQL数据库备份,在/home/dbback目录下的脚本文件bkDatabaseName.sh(DatabaseName为自己数据库的名字)中,所写的语句如下:
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date+%Y%m%d_%H%M%S).sql.gz
注意:
把 username 替换为实际的用户名;
把 password 替换为实际的密码;
把 DatabaseName 替换为实际的数据库名;
然后:执行下面的语句:
[root@localhost dbback]# chmod u+x bkDatabaseName.sh
[root@localhost dbback]# ./bkDatabaseName.sh
出现如下错误:
Warning: Using a password on the command line interface can be insecure.
查询资料后发现:这是MySQL5.6以上版本提供的安全机制,mysql的用户名和密码不能写在脚本文件中,需要写在/etc/my.cnf中,然后:
[root@locahost ~]# vim /etc/my.cnf
在/etc/my.cnf中加入如下语句:
[client]
host=localhost
user=数据库用户
password='数据库密码'
同时把bkDatabaseName.sh这个脚本文件中的语句改为:
#!/bin/bash
mysqldump DatabaseName | gzip > /home/backup/DatabaseName_$(date+%Y%m%d_%H%M%S).sql.gz
注意:
把 username 替换为实际的用户名;
把 password 替换为实际的密码;
把 DatabaseName 替换为实际的数据库名;
最后执行:
[root@localhost dbback]# ./bkDatabaseName.sh
警告没有了,问题解决了!
二、定时执行数据库备份脚本
1、首先查看系统中没有安装crontab,输入如下命令:
[root@localhost dbback]# which crontab
/usr/bin/crontab
我们看到了crontab的安装路径,这说明系统中已经安装了crontab,如果没有此路径,可以使用下面的命令安装crontab:
[root@localhost dbback]# yum install vixie-cron
[root@localhost dbback]# yum install crontabs
其中,vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
2、crontab的使用
下面两条简单的命令帮你查看并启动crond服务:
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
怎么查看crond服务是否开机启动命令:chkconfig --list | grep crond
如果不知道服务名或想查看所有开机服务,那么直接输入chkconfig即可。
基本用法:
1. crontab -l
列出当前的crontab任务
2. crontab -d
删除当前的crontab任务
3. crontab -e (solaris5.8上面是 crontab -r)
编辑一个crontab任务
[root@localhost dbback]# crontab -e
执行上面的命令后,我们把定时执行命令:*/1 * * * * /home/dbback/bkMindoc_db.sh(脚本文件的绝对路径),写入到弹出来的文件中,保存,等待执行!
crontab的语法详见:http://www.mamicode.com/info-detail-2143845.html