mysql定时备份数据库的shell

一,准备好shell脚本

查看复制打印?

  1. vi /home/zhangy/database_bak.sh
  2. #!/bin/sh
  3. # File: /home/zhangy/database_bak.sh
  4. # Database info bakupmysql  TANK 2009/11/04
  5. DB_USER="root"                                                              #用户名
  6. DB_PASS="********"                                                         #密码
  7. DB_NAME="myblog"                                                      #要备份的数据名
  8. <SPAN id=more-161></SPAN># Others vars
  9. DATE=`date +%Y_%m_%d`                                            #要备份的日期
  10. YESTERDAY=`date -d yesterday +%Y_%m_%d`           #删除昨天的备份
  11. BIN_DIR="/usr/local/mysql/bin"
  12. BCK_DIR="/home/zhangy/database_bak"                     #备份路径
  13. cd $BCK_DIR
  14. #删除以前该数据库的备份,因为我的linux下面还有2G硬盘空间,郁闷。
  15. if [ -f $YESTERDAY$DB_NAME".sql" ]
  16. then
  17. rm -f $YESTERDAY$DB_NAME".sql"
  18. fi
  19. # 备份
  20. ${BIN_DIR}/mysqldump --opt -u${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BCK_DIR}/${DATE}${DB_NAME}.sql
vi /home/zhangy/database_bak.sh

#!/bin/sh
# File: /home/zhangy/database_bak.sh
# Database info bakupmysql  TANK 2009/11/04
DB_USER="root"                                                              #用户名
DB_PASS="********"                                                         #密码
DB_NAME="myblog"                                                      #要备份的数据名

# Others vars
DATE=`date +%Y_%m_%d`                                            #要备份的日期 
YESTERDAY=`date -d yesterday +%Y_%m_%d`           #删除昨天的备份

BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/zhangy/database_bak"                     #备份路径    

cd $BCK_DIR

#删除以前该数据库的备份,因为我的linux下面还有2G硬盘空间,郁闷。
if [ -f $YESTERDAY$DB_NAME".sql" ]
then
 rm -f $YESTERDAY$DB_NAME".sql"
fi

# 备份
${BIN_DIR}/mysqldump --opt -u${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BCK_DIR}/${DATE}${DB_NAME}.sql

二,定期执行
把shell放到crontab里面。

#查看crond是否已启动
[[email protected] cron]# ps -e|grep crond
21519 ?        00:00:00 crond

#打开crontab
[[email protected] cron]# crontab -e
#在里面加上一行
00 18 * * * /home/zhangy/database_bak.sh

#查看一下是否已加上
[[email protected] cron]# crontab -l
#
# DO NOT EDIT THIS FILE MANUALLY!! USE crontab -e INSTEAD.
#

# <minute> <hour> <day> <month> <dow> <command>

01 * * * *  /usr/sbin/run-cron /etc/cron.hourly
02 00 * * * /usr/sbin/run-cron /etc/cron.daily
22 00 * * 0 /usr/sbin/run-cron /etc/cron.weekly
42 00 1 * * /usr/sbin/run-cron /etc/cron.monthly
56 06 * * * /home/zhangy/www/bb.php
51 23 * * * /sbin/shutdown -h now
00 18 * * * /home/zhangy/database_bak.sh

然后退出

时间: 2024-10-13 09:31:44

mysql定时备份数据库的shell的相关文章

linux下mysql定时备份数据库

linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈   一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uusername -ppassword discuz > discuz_2010-04-01.sql 这样就把discuz数据库所有的表结构和数据备份到discuz_2010-04-01.sql里了,如果数据量大会占用很大空间,这时可以利用gzip压缩数据, 命令如下:#mysqldump -uuse

MySql 定时备份数据库

转载:MySql 定时备份数据库 每天零点备份一次数据库,备份文件放在指定目录(如果目录不存在则新建),按月存储: 将下面这段命令存储为一个 *.bat 文件,添加一个Windows任务计划程序(Task scheduler)指向这个文件,每天执行一次即可. rem ******Code Start*********** @echo off C: CD C:\Program Files\MySQL\MySQL Server 5.7\bin set "Y=%date:~10,4%" se

MySQL定时备份数据库

一.MySQL数据备份 1.1. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法: #MySQLdump常用 mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql 1.2. mysqldump常用操作示例 1.备份全部数据库的数据和结构 mysqldump -uroot -p12

windows下mysql定时备份数据库几种方法

第一种:新建批处理文件 backup.dat 代码如下: net stop mysqlxcopy "C:/Program Files/MySQL/MySQL Server 5.0/data/piaoyi/*.*" D:/db_backup/%date:~0,10%/ /ynet start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号!然后使用Windows的"计划任务"定时执行该批处理脚本即可.(例如:每天凌晨3点执行backup.bat

linux利用crontab执行sqldump 定时备份数据库

linux利用crontab执行sqldump 定时备份数据库 : #!/bin/bash var=`date +%Y%m%d` /usr/local/mysql/bin/mysqldump  --databases core|gzip >/apps/sqldump/bak/core${var}.gz /usr/local/mysql/bin/mysqldump  --databases access_service|gzip > /apps/sqldump/bak/access_servic

mysql 定时备份bat脚本 ,方便小型服务简单快速备份mysql

mysql定时备份bat脚本 echo 数据库为用户名为root 密码为root 数据库名为kdykt echo mysqldump 命令如果没有配置环境变量要在bin目录下执行 set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%" D: cd D:\phpStudy\MySQL\bin mysqldump --opt -u root --password=root kdykt > kdykt_%Ymd%

mysql自动备份数据库,同时ftp上传到指定服务器(scp远程获取本地备份)

最近要把服务器托管到电信机房,所以要对数据库进行备份,同时要把备份ftp上传到公司指定服务器. 一.先安装ftp服务 1.查询是否安装vsftpd: rpm -qa |grep vsftpd (rpm的安装:apt-get install rpm) 或者查询当前ftp进程:ps -ef|grep vsftpd ? 或者 ps -ef|grep ftp 2.如果没有就安装yum install vsftpd 3.安装完后看ftp安装目录:ps -ef|grep ftp 发现我的配置文件默认:/et

mysql自动备份数据库与自动删除临时文件

mysql自动备份数据库与自动删除临时文件,有需要的朋友可以参考下. 一.每日23:00自动删除临时文件 首先查看一下crontab的任务列表: crontab -l 然后新建: crontab -e 添加一行: 00 03 * * * rm -rf /www/cmstest/my120/public/scripts/jpgraph/* 保存退出. 重启服务:  /etc/rc.d/init.d/crond restart 二.每日24:00自动备份数据库 利用系统crontab来定时执行备份文

SqlServer定时备份数据库和定时杀死数据库死锁解决

PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库 因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开启的.需要我们手动开启的. 执行备份数据库脚本,现在将脚本公布,其实将这一段代码中需要保存的文件路径和数据库名称替换一下就可以实现备份了.但是还没有达到定时备份的目的 ? 1 2 3 4 5 6 7 8 9 10 11 --自动备份并保存最近5天的SQL数据库作业脚本 宋彪 20130310 DECLARE @filename VARCHA