mysql 数据库备份

1.先将mysql的备份命令写成脚本文件形式

#!/bin/bash

# MySQL Server 登录信息
MYUSER="root"
MYPASS="jf@qzt&SHlt1"
MYHOST="localhost"
MYPORT="3306"
#MYDB="idc-message-push"

# 备份相关配置信息
BAKDIR="/root/db-backup"  # 备份保存目录
#BAKFILE="$BAKDIR/$MYDB.$(date +'%Y-%m-%d-%H%M%S').sql.gz"  # 备份文件名
KEEPDAYS=7  # 保留天数

# 创建备份目录
if [ ! -d "$BAKDIR" ]; then
    mkdir -p "$BAKDIR"
fi

# 备份数据库至压缩文件
#单库需要备份的数据库名单
cat > mydbs <<EOF
International_bureau
idc-message-push
ip_plugging
warehouse_management
zabbix
EOF
##备份单库
for MYDB in `cat mydbs`
do
 if [ ! -d "$BAKDIR/$MYDB" ]; then
    mkdir -p "$BAKDIR/$MYDB"
 fi
 BAKFILE="$BAKDIR/$MYDB/$MYDB.$(date +'%Y-%m-%d-%H%M%S').sql.gz"
 mysqldump -h "$MYHOST" -P "$MYPORT" -u "$MYUSER" -p"$MYPASS" --databases "$MYDB" | gzip > "$BAKFILE"
done

##备份整库
mysqldump -h "$MYHOST" -P "$MYPORT" -u "$MYUSER" -p"$MYPASS" --all-databases | gzip > $BAKDIR/mysql.$(date +'%Y-%m-%d-%H%M%S').sql.gz

# 清理旧备份文件,只保留指定天数内的备份,超过时间的就会被清除
find "$BAKDIR" -name '*.sql.gz' -type f -mtime +"$KEEPDAYS" -delete

2.给脚本文件授权(可执行权限)

chmod 777 mysql-backup.sh

3.使用 crontab 命令设置定时任务

0 2 * * * /root/db-backup/mysql-backup.sh

4.一些基本的crontab命令示例

crontab -l :列出当前用户的所有定时任务。
crontab -e :编辑当前用户的定时任务。
crontab -r :删除当前用户的所有定时任务。
crontab -u user -l :列出指定用户的所有定时任务。
crontab -u user -e :编辑指定用户的定时任务。
crontab -u user -r :删除指定用户的所有定时任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值