赞
踩
[mysqldump]
user=root
password=12345678
此举是为了避免使用/usr/bin/mysqldump -u root -p12345678报如下错误:
skip-grant-tables
是为了避免如下报错:
重启数据库
service mysql restart
#!/bin/bash # Name:databasename_mysql_bak.sh # This is a ShellScript For Auto DB Backup and Delete old Backup # # 参数说明: # backupdir 保存路径的绝对地址 # 代码中 time=` date +%Y%m%d`也可以写为time=”$(date +”%Y%m%d”)” 找到当前日期时间格式 # 其中`符号是TAB键上面的符号,不是ENTER左边的’符号,还有date后要有一个空格。 #mysql_bin_dir:mysql的bin路径; #dataname:数据库名; #user:数据库用户名; #password:用户密码; #name:自定义备份文件前缀标识 # name:自定义备份文件前缀标识。 # -type f 表示查找普通类型的文件,f表示普通文件,d表示目录。 # -mtime +30 按照文件的更改时间来查找文件,+30表示文件更改时间距现在30天以前;如果是 -mmin +7 表示文件更改时间距现在7分钟以前。 # -exec rm -rf {} \; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。 #数据库备份的位置 backupdir=/opt/mysqlbak time=` date +%Y%m%d%H%M%S` dirname=` date +%Y%m%d`'-mysql' #需要备份的数据库的连接的用户名和密码和数据库(-uuser 和-ppassword 中间用空格隔开也是可以的 如:-u root ) #mysql_bin_dir/mysqldump -uuser -ppassword dataname | gzip > $backupdir/name$time.sql.gz #mysql_bin_dir/mysqldump -u user -p password dataname | gzip > $backupdir/name$time.sql.gz #每天创建一个新的文件夹 cd $backupdir if [ ! -d $dirname ];then mkdir $dirname fi /usr/local/mysql/bin/mysqldump work_plan | gzip > $backupdir/$dirname/mysql_$time.sql.gz #传输至备份服务器,如果保留本机则不需要此步骤 #scp $backupdir/mysql_$time.sql.gz 22.122.51.158:/data/bakup/159/ #find $backupdir -name "name*.sql.gz" -type f -mtime +30 -exec rm -rf {} \; #保留10日 find $backupdir -name "*-mysql" -type d -mtime +10 -exec rm -rf {} \;
进入/etc/cron.hourly目录(一小时执行一次),新建文件,将上述脚本内容拷入,赋予权限:
cd /etc/cron.hourly
touch mysqlback.cron
# 将脚本内容复制进去,赋予权限
chmod 777 mysqlback.cron
大功告成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。