mysql数据备份+定时任务+备份文件删除

本文介绍如何使用定时任务实现数据库备份,强调30天内数据保留策略,并探讨了shell脚本安全改进,包括密码管理与错误日志处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

通过定时任务进行数据库备份,并删除30天以前的备份文件。保证数据丢失或服务器异常时刻可找回数据进行恢复,保证数据的安全。


定时任务shell:

#!/bin/bash
DATE=`date +%Y%m%d_%H%M%S`
BACKPATH=/www/backup/database
mysqldump -uroot -proot 2021table table1 table2>${BACKPATH}/2021table_db_${DATE}.sql

完整版[保留30天内的数据备份及日志]:

  • shell文件

#!/bin/bash
DATE=`date +%Y%m%d_%H%M%S`
BACKPATH=/www/backup/database
mysqldump -uroot -p数据库密码 2021table table1 table2>${BACKPATH}/2021table_db_${DATE}.sql

find /www/backup/database -name "*.sql"  -ctime +30 -exec rm -rf {} \;

echo "----------------------------------------------------------------------------"
endDate=`date +"%Y-%m-%d %H:%M:%S"`
echo "★[$endDate] Delete files from 30 day ago"
echo "★[$endDate] Successful"
echo "----------------------------------------------------------------------------"
  • 定时任务命令

0 0 * * * /www/server/cron/back_table.sh >> /www/server/cron/back_table.log 2>&1


操作日志:

# 备份命令
mysqldump -uroot -proot 2021table table1 table2 > back.sql
# 生成压缩备份文件
mysqldump -uroot -proot 2021table table1 table2 | gzip>${BACKPATH}/2021solive_db_${DATE}.tar.gz

# 导入命令[进入mysql命令行,指定数据库进行操作]
source back.sql

#查看编辑定时任务
crontab -e

#通过定时任务执行的shell文件需具备权限 751
#rwx 421
chmod 751 back_table.sh

# 定时任务记录日志及错误信息
0 0 * * * /www/server/cron/back_table.sh >> /www/server/cron/back_table.log 2>&1
>>追加   > 覆盖

2>&1含义
    &---文件描述符
    1---标准输出
    2---标准错误
    2>&1 即将错误标准输出,且错误会重定向到前边的标准输出文件中。
example: 
echo "111" >> 1.log 2>&1
假如发生错误,111和错误信息会全部输入到1.log文件中。

#删除30天之前的.sql文件
find /www/backup/database -name "*.sql"  -ctime +30 -exec rm -f {} \;
参数说明: 
    -ctime +30    [创建时间在30天以前]
    -name "*.sql" [.sql结尾的文件]
    -exec rm -f   [对匹配的文件执行shell命令]

错误提示

Using a password on the command line interface can be insecure.

分析:提示shell命令中直接使用了密码不安全,可通过配置直接使用变量加载密码

You have new mail in /var/spool/mail/root

分析:Linux运行的服务状态记录,可通过命令查看 You have new mail in /var/spool/mail/root文件

#查看命令
cat /var/spool/mail/root
vi  /var/spool/mail/root

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红尘炼炼心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值