linux mysql数据库定时备份

大概思路:

  1、新建备份文件夹,比如:mkdir /home/dbBackup

  2、新建shell脚本文件,如:touch databaseName.sh

  3、给文件可执行权限:chmod u+x bkDatabaseName.sh

  4、编写shell脚本命令,如下(已验证通过):

    

#!/bin/bash

#保存备份个数
number=3
#备份保存路径
backup_dir=/home/db_backup/bocms
#日期
dd=`date +%Y%m%d`
#备份工具
tool=/usr/bin/mysqldump
#用户名
username=root
#密码
password=123456
#将要备份的数据库
database_name=test

#备份数据库
$tool -u $username -p$password $database_name | gzip > $backup_dir/$database_name-$dd.sql.gz
#拷贝到10服务器
scp $backup_dir/$database_name-$dd.sql.gz root@192.168.2.10:/home/dbbackup/cms

#写创建备份日志
echo "create $backup_dir/$database_name-$dd.sql.gz" >> $backup_dir/log.txt

#找出需要删除的备份
#delfile=`ls -l -crt $backup_dir/$database_name-*.sql.gz | awk '{print $9 }' | head -1`

#判断现在的备份数量是否大于$number
count=`ls -l -crt $backup_dir/$database_name-*.sql.gz | awk '{print $9 }' | wc -l`

if [ $count -gt $number ]
then
rm $delfile #删除最早生成的备份,只保留number数量的备份
#写删除文件日志
echo "delete $delfile" >> $backup_dir/log.txt
fi

 

 

5、添加计划任务(用linux自带crontab):

(1)确认crontab是否安装:
       执行 crontab 命令如果报 command not found,就表明没有安装
  # crontab 
  -bash: crontab: command not found
(2) 添加计划任务
  执行命令:
  crontab -e
  这时就像使用vi编辑器一样,可以对计划任务进行编辑。
  输入以下内容并保存:
  0 */3 * * * /home/backup/bkDatabaseName.sh
  具体是什么意思呢?
  意思是每一分钟执行一次shell脚本“/home/backup/bkDatabaseName.sh”。
  其中 ,crontab表达式:
  m h dom mon dow command
  m:分钟,0-59
  h:小时,0-23
  dom:日期,1-31
  mon:月份,1-12
  dow:星期,0-6,0为星期天
  command:命令

6、查看任务是否执行:

  systemctl status cron 或者查看shell 脚本定义的log.text文件

备注:

由于scp命令远程备份需要用到免密方式,用以下方式达成:

1、远程备份免密登录方式:
在A上运行命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.60.110 "mkdir .ssh; chmod 0700 .ssh" (需要输入密码)
# scp ~/.ssh/id_rsa.pub root@192.168.60.110:.ssh/id_rsa.pub (需要输入密码)

在B上的命令:
# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)

回到A机器:
# ssh root@192.168.60.110 (不需要密码, 登录成功)

如果能保护好自己的私钥, 这种方法相对在shell上输入密码, 要安全一些

 

到此数据库备份已完成,有问题请留言,一起学习讨论,谢谢!

posted @ 2018-11-12 19:43  努力的小菜  阅读(163)  评论(0编辑  收藏  举报