linuxMySQL数据库备份

5 篇文章 0 订阅
4 篇文章 0 订阅

 数据库备份命令

#!/bin/bash
#保留备份个数,会删除时间较早的.dump备份
number=5
#设置备份保存路径,替换成自己的备份保存路径
backup_dir=/home/gas/databasebackup/hainuo/
#日期格式
dd=`date +%Y%m%d`
#备份工具
tool=mysqldump
#数据库用户名
username=root
#数据库密码,由于密码可能包含特殊字符,需要用''转义
password='root123'
#数据库链接地址
host='127.0.0.1'
#数据库看装目录,如该文件执行生成的.dump文件没有数据则在tool前加上这一变量,反之则去掉
mysql=/etc/mysql/
#将要备份的数据库名称,yourdb替换成自己要备份的数据库名,此脚本只支持备份一个数据库,多数据库mysqldump用法
database_name=test
#远程备份
#$mysql$tool -h$host -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump
#本地备份
$mysql$tool -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dump" >> $backup_dir/log.txt

#查询本目录下所有备份文件
#查询备份文件是按照备份文件的生成时间来计算的
FileNum=$(ls -l $backup_dir/*.dump | grep ^- | wc -l)
echo "Number of backup files:"$FileNum >> $backup_dir/log.txt
while(( $FileNum > $number ))
do
#取最旧的文件,*.*可以改为指定文件类型
OldFile=$(ls -rt $backup_dir/*.dump | head -1)
echo "Delete File:"$backup_dir'/'$OldFile >> $backup_dir/log.txt
rm -f $OldFile
let "FileNum--"
done

定时执行数据库备份脚本

#### 表示每天 3 点钟执行备份

   01 3 * * * root /home/gas/databasebackup/hainuo/baksql.sh

   (root权限下)

   crontab启动:/etc/init.d/cron start  ( service cron start )

   crontab重启: /etc/init.d/cron  restart  (service cron restart )

   crontab关闭: /etc/init.d/cron  stop  ( service cron stop )

   ## 在终端中,可以利用 ps -aux|grep cron查询crontab状态,默认情况下,是自启动的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值