方法一
#vi /usr/sbin/mysql_md_bak.sh
#!/bin/bash
source /root/.bash_profile
mysqldump -uroot -pshangxiaoke md > /home/xtwhrvice_software/mysql_md_bak/mdbak_`date +%Y%m%d_%H%M%S`.sql
#sh /usr/sbin/mysql_md_bak.sh-------------测试能否执行
#crontab -e
* * * * * sh /usr/sbin/mysql_md_bak.sh 2>&1 &
最后一个&表示在后台执行
#crontab -l 查看crontab 的所有任务
linux 数据备份 ,每天3点,备份md数据位置:/home/xtwh/service_software/mysql_md_bak/
方法二
利用crontab,系统每天定时备份mysql数据库
【内容提要】利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
1、创建保存备份文件的路径/mysqldata
#mkdir /mysqldata
2、创建/usr/sbin/bakmysql文件
输入
rq=` date +%Y%m%d `
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql |
( tar zcvf /home/xtwh/service_software/mysql_md_bak/mdbak_`date +%Y%m%d_%H%M%S`.sql.tar.gz /var/lib/mysql/md)
或者写成 #vi /usr/sbin/mysql_md_bak_2
rq=` date +%Y%m%d `
mysqldump --all-databases -u root -p密码 > /mysqldata/mysql$rq.sql
/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同
/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。
3、修改文件属性,使其可执行
# chmod +x /usr/sbin/bakmysql
4、修改/etc/crontab
#vi /etc/crontab
在下面添加
01 3 * * * root /usr/sbin/bakmysql
表示每天3点钟执行备份
00 4 * * * root /usr/sbin/mysql_md_bak_2
5、重新启动crond
# /etc/rc.d/init.d/crond restart
完成。
这样每天在/mysqldata/(/home/xtwh/service_software/mysql_md_bak/)可以看到这样的文件
mdbak_`date +%Y%m%d_%H%M%S`.sql
直接下载就可以了。
crontab命令详解
1.命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
2.命令功能:
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。
3.命令参数:
-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。