Linux数据备份与恢复

一.检查是否安装了本地任务 Crontab

systemctl status crond 

二.如果没有就安装呀

yum install -y vixie-cron

yum install -y crontabs

然后启动: systemctl start crond.service

三.crontab命令结构为 时间+动作,其时间有分、时、日、月、周,操作符包括*取值范围内所有数字,/每过多少个数字,-从x到z,散列数字

例如:

1. 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。

1 0 * * * /root/bin/backup.sh

2. 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。

59 11 * * 1,2,3,4,5 /root/bin/backup.sh

下面例子与上面的例子效果一样:

59 11 * * 1-5 /root/bin/backup.sh

3. 每5分钟运行一次命令

*/5 * * * * /root/bin/check-status.sh

4. 每个月的第一天 1:10 p.m 运行

10 13 1 * * /root/bin/full-backup.sh

5. 每个工作日 11 p.m 运行。

0 23 * * 1-5 /root/bin/incremental-backup.sh


三.利用crontab备份储存位置

MYSQL备份数据库需要使用mysql提供的备份语句,如果单纯COPY数据库表文件需要对数据库进行分离操作,所以通常会直接使用数据库提供的备份语句。创造数据库备份脚本

cd /usr/local

mkdir xym

touch sqlAutoBack.sh

vi sqlAutoBack.sh

并在sqlAutoBack中编写如下脚本

 

#!/bin/sh

 

#Database info

DB_USER="root"

DB_PASS="root"

DB_HOST="localhost"

DB_NAME="dailian"

 

#Other vars

BIN_DIR="user/bin"   #the mysql bin path

BCK_DIR="/mnt/mysqlBackup"  #the backup file directory

DATE=`date +%F`

#备份数据库

$BIN_DIR/mysqldump --opt -u $DB_USER -p $DB_PASS -h #$DB_HOST $ DB_NAME > $BCK_DIR/db_$DATE.sql

 

以上编写保存后修改文件读写权限,通过crontab -e 编写定时任务执行SQL备份脚本

00 05 * * * /bin/sh/usr/local/xym/sqlAutoBak.sh

 

恢复数据库:

mysql -u root -p testDB < /mnt/mysqlBackup/db_20200602.sql

 

 

 




posted @ 2020-07-03 19:40  KYOooo  阅读(326)  评论(0编辑  收藏  举报