Linux 数据备份容灾:如何利用 Crontab 实现异机同步

浅婷同学_2262

浅婷同学_2262

2026-07-02

599人浏览

原创

crontab异机同步核心是“本地定时触发+安全传输+环境可控”,需先配置ssh免密登录,再封装带日志、容错和校验的rsync脚本,并在crontab中显式声明shell与path以确保环境一致。

linux 数据备份容灾:如何利用 crontab 实现异机同步

用 Crontab 实现 Linux 异机同步,本质是“本地定时触发 + 安全传输 + 环境可控”。不依赖额外平台,靠原生工具就能跑稳。关键不在命令多炫,而在免密通、路径对、脚本稳、环境明。

先打通 SSH 免密通道

这是自动化的前提——没有它,crontab 会卡在密码输入环节,任务直接失败。

  • 在源服务器生成密钥:ssh-keygen -t ed25519(一路回车即可)
  • 把公钥复制到目标服务器:ssh-copy-id user@backup-ip
  • 手动验证是否成功:ssh user@backup-ip ls /backup —— 能立刻列出目录即通过
  • 若目标禁用密码登录,请确认其 /etc/ssh/sshd_config 中含 PubkeyAuthentication yes

写一个带日志和容错的 rsync 脚本

别把 rsync 命令直接塞进 crontab。封装成脚本能查、能调、能追责。

Linux Journey
Linux Journey

当用户想学习Linux基础、命令行、文件系统等时,在LabEx查找并推荐免费的Linux Journey课程。

下载
  • 新建脚本,如 /usr/local/bin/sync-to-backup.sh,开头固定写:#!/bin/bash
  • 显式声明 PATH:PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin; export PATH
  • 定义变量:源路径、目标地址(user@ip:/path)、日志路径、时间戳
  • rsync 命令推荐加这些参数:-avz --delete --exclude='temp/' --exclude='logs/' -e "ssh -o StrictHostKeyChecking=no"
  • $? 判断执行结果,成功写“同步完成”,失败写“同步失败”并附错误码到日志
  • 给脚本加执行权限:chmod +x /usr/local/bin/sync-to-backup.sh
  • 手动运行一次,检查远程目录更新、日志落盘、压缩包可解压

让 Crontab 在正确环境下运行

crond 启动时环境极简,PATH 和 SHELL 都和你登录时不一致,容易找不到 rsync 或 bash 特性报错。

  • 编辑定时任务:crontab -e
  • 在文件最顶部添加两行:
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
  • 再添加任务行,例如每天凌晨 2:15 执行:15 2 * * * /usr/local/bin/sync-to-backup.sh >> /var/log/sync.log 2>&1
  • 避免用 */5 * * * * 这类高频任务,除非明确需要;常规备份建议按天或按周

加一层简单但有效的校验机制

同步完成≠数据可靠。加点轻量检查,能早发现问题。

  • 脚本末尾可加一句:ssh user@backup-ip "ls -lh /backup/latest.tar.gz 2>/dev/null | wc -l",返回 1 表示文件存在
  • 定期手动抽查远程文件 md5:ssh user@backup-ip "md5sum /backup/data_$(date -d 'yesterday' +\%Y\%m\%d).tar.gz"
  • 在日志里记录每次同步前后的源/目标文件数:find /data -type f | wc -lssh user@backup-ip "find /backup -type f | wc -l"
  • 磁盘空间预警可加在脚本中:df -h /backup | awk 'NR==2 {print $5}' | sed 's/%//',超 85 就发提示

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3590

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3133

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2173

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5190

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4862

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2933

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2425

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2639

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习