crontab定时备份
1、创建备份目录
# root 用户,创建备份目录mkdir -p /bak/mysqlbak
cd /bak/mysqldata
2、编写运行脚本
vi /usr/sbin/bakmysql.sh
脚本代码:
#!/bin/bash# Name:bakmysql.sh# This is a ShellScript For Auto DB Backup and Delete old Backup#backupdir=/bak/mysqlbak
time=` date +%Y%m%d%H `
mysql_bin_dir/mysqldump -u root -ppwd database | gzip > $backupdir/database$time.sql.gz
#find $backupdir -name "name_*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1
#
脚本说明:
root mysql用户名
pwd mysql密码
database 数据库名
mysql_bin_dir mysql的bin路径;
time=` date +%Y%m%d%H `也可以写为time="$(date +"%Y%m%d$H")"其中`符号是TAB键上面的符号,不是ENTER左边的'符号,还有date后要有一个空格。
type f 表示查找普通类型的文件,f表示普通文件。
mtime +7 按照文件的更改时间来查找文件,+5表示文件更改时间距现在7天以前;如果是 -mmin +5 表示文件更改时间距现在5分钟以前。
exec rm {} \ 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号。
/dev/null 2>&1 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的& 表示让该命令在后台执行。
3、为脚本添加执行权限
# chmod +x /usr/sbin/bakmysql.sh
4、设置crontab定时执行
vi /etc/crontab
#在最后一行中加入:00 3 * * * root /usr/sbin/bakmysql.sh#表示每天3点00分执行备份
注:crontab配置文件格式如下:分 时 日 月 周 命令
5、重启crontab
/etc/rc.d/init.d/crond restart
这样就完了定时备份并清理前7天的备份数据
10.10.10.106 数据库hcs_core_test进行了备份 每天晚上三点备份在/bak/mysqlbak文件夹中
执行文件在/usc/sbin文件夹中bakmysql.sh,配置如下:
#!/bin/bash
#https://www.cnblogs.com/ityouknow/p/5923489.html
# Name:bakmysql.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
#
backupdir=/bak/mysqlbak
time=` date +%Y%m%d%H `
/usr/bin/mysqldump -u root -p hcs_core_test | gzip > $backupdir/hcs_core_test$time.sql.gz
#
find $backupdir -name "name_*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1
#
参考网址https://www.cnblogs.com/ityouknow/p/5923489.html
定时晚上三点备份并清理前7天的备份数据