linux定时备份Redis

本文详细介绍如何在Linux系统中设置定时任务,实现Redis数据库的每日自动备份。通过使用crontab编辑定时任务,创建shell脚本来执行Redis备份,确保数据的安全性。文章还提供了故障排查建议。

Linux定时备份Redis

1、 查看当前linux系统是否安装了定时服务。

rpm -qa | grep crontab

在这里插入图片描述
若未安装, 参考:https://www.cnblogs.com/shaohuixia/p/5577738.html

2、 编辑定时任务,crontab -e 进入编辑模式,设置备份任务:每天的2:25开始执行一个shell文件。

25 2 * * * sh /root/backup.sh

crontab定时任务时间点的设置如下:
可参考: https://www.runoob.com/w3cnote/linux-crontab-tasks.html
在这里插入图片描述
:删除定时工作表:crontab -r
列出工作表内容:crontab -l

3、 新建定时任务的脚本backup.sh,脚本代码如下:

#! /bin/bash
PATH=/usr/local/bin:$PATH
redis-cli -h 127.0.0.1 -p 6379 -a 123456 bgsave
date=$(date +"%Y%m%d")
cp /root/dump.rdb /root/backup/$date.rdb
echo " 备份完成!"

4、 查看任务执行日志

tail -f /var/log/cron

或者查看邮件信息,有打印echo命令信息,这个邮件文件会打印定时任务执行执行结果(失败原因也会打印)

cat /var/spool/mail/root  

5、 备份成功,生成rdb文件
在这里插入图片描述
6、 若定时任务失败,可考虑下面内容进行排查:

1、定时任务的文件路径一定要是绝对路径,其他相关文件也是。
2、执行定时任务的用户角色要有所有相关文件的权限。
3、结合日志和邮箱进行排查。

### 如何配置 Redis 定时自动备份方案 #### 使用 RDB 方式的定时备份 为了实现 Redis定时自动备份,可以利用 Redis 自带的持久化机制之一——RDB (Redis Database Backup),通过设置 `save` 参数来触发定期保存操作。具体来说,在 Redis 配置文件中调整如下参数: ```conf save 900 1 save 300 10 save 60 10000 ``` 上述配置意味着在满足任意条件的情况下就会创建一个新的快照[^1]。 除了修改配置外,还可以编写脚本来自动化这一过程并加入系统的计划任务中执行。下面是一个简单的 shell 脚本例子用于每日复制一次当前的 dump.rdb 文件至特定位置作为备份副本: ```bash #!/bin/bash # 获取今天的日期字符串形式 YYYYMMDD current_date=$(date +"%Y%m%d") # 创建当天的新目录存放此次备份 mkdir -p "/usr/local/redis/snapshotting/${current_date}" # 将现有的 RDB 文件拷贝到新建立的子目录下 cp /var/lib/redis/dump.rdb "/usr/local/redis/snapshotting/${current_date}/" # 清理一个月前的老备份记录 old_backup_dir="/usr/local/redis/snapshotting/" one_month_ago=$(date --date='now -1 month' +"%Y%m%d") rm -r "${old_backup_dir}${one_month_ago}" ``` 此脚本实现了每天生成新的备份并将超过一定时间范围之外的历史版本移除的功能[^4]。 对于 Linux 系统而言,可以通过 crontab 来安排该脚本周期性的运行。编辑用户的 cron 表单(`crontab -e`) 并添加一行定义何时以及多久重复一次这个命令序列,例如每晚凌晨两点整执行备份工作: ```plaintext 0 2 * * * /path/to/your/script.sh >> /path/to/logfile.log 2>&1 ``` 这样就可以确保即使服务器意外重启也能继续维持规律化的备份流程[^3]。 另外值得注意的是,由于内存中的键可能因为设置了生存时间(TTL)而自然消失,或是因应策略被主动驱逐出去;因此建议结合实际情况合理规划保留期限内的历史数据量级,以免占用过多存储空间[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值