linux备份数据库,数据库备份,sh备份数据库,mysql备份
1.sh文件
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin exportPATH #数据库用户名 dbuser='root' #数据库用密码 dbpasswd='密码' dbname="数据库名称" #备份时间 backtime=`date+%Y%m%d%H%M%S` #日志备份路径 logpath='/data/mysqlbak' #数据备份路径 datapath='/data/mysqlbak' #echo${logpath}/${backtime}.sql #正式备份数据库 fortablein$dbname;do mysqldump-u${dbuser}-p${dbpasswd}$table>${logpath}/${table}${backtime}.sql #备份成功以下操作 if["$?"==0];then cd$datapath #为节约硬盘空间,将数据库压缩 tarjcf${table}${backtime}.tar.bz2${table}${backtime}.sql #删除原始文件,只留压缩后文件 rm-f${datapath}/${table}${backtime}.sql #删除七天前备份,也就是只保存7天内的备份 find$datapath-name"*.tar.bz2"-typef-mtime+7-execrm-rf{}\; echo"数据库表${dbname}备份成功!!">>${logpath}/mysqllog.log else #备份失败则进行以下操作 echo"数据库表${dbname}备份失败!!">>${logpath}/mysqllog.log fi done
2.创建crontab
cd/etc vimcrontab 在crontab里面加入 5023***root/data/mysqlbak/mysql.sh 5023***这个可根据你自己的时间来定义(表示每天晚上23点50分执行) /data/mysqlbak/mysql.sh这个是你sh文件的路径(记得给这个文件有执行权限chmod+xmysql.sh) 最后重新载入crontab /sbin/servicecrondreload