0

0

Linux自动备份脚本示例_Linux编写定时备份方案

冷炫風刃

冷炫風刃

发布时间:2025-12-15 20:10:49

|

557人浏览过

|

来源于php中文网

原创

Linux自动备份脚本核心是tar+rsync+cron三步闭环:本地打包、远程同步、定时执行;关键在路径准确、权限到位、日志留存、清理合理。

linux自动备份脚本示例_linux编写定时备份方案

Linux自动备份脚本的核心是:用 tar + rsync + cron 搭配,实现本地打包、远程同步、定时执行三步闭环。关键不在多,而在稳——路径别写错、权限要到位、日志得留痕。

一、基础备份脚本(带时间戳和日志)

以下是一个常用且安全的本地备份脚本示例(保存为 /opt/scripts/backup.sh):

  • 先确保目标目录存在:mkdir -p /backup
  • 脚本内容(可直接复制使用,记得 chmod +x):
#!/bin/bash
# 备份源目录(按需修改)
SRC_DIR="/var/www/html"
# 备份目标目录
BACKUP_DIR="/backup"
# 生成带日期的压缩包名
DATE=$(date +%Y%m%d_%H%M%S)
ARCHIVE_NAME="web_backup_${DATE}.tar.gz"

# 开始记录日志
echo "[$(date)] 开始备份 ${SRC_DIR}" >> /var/log/backup.log

# 打包并压缩(排除临时文件)
if tar -czf "${BACKUP_DIR}/${ARCHIVE_NAME}" -C "$(dirname "$SRC_DIR")" "$(basename "$SRC_DIR")" --exclude='*.log' --exclude='cache/*' >> /var/log/backup.log 2>&1; then
echo "[$(date)] 备份成功:${ARCHIVE_NAME}" >> /var/log/backup.log
# 可选:只保留最近7天的备份
find "${BACKUP_DIR}" -name "web_backup_*.tar.gz" -mtime +7 -delete
else
echo "[$(date)] 备份失败!" >> /var/log/backup.log
fi

二、加一层rsync推送到远程服务器

如果需要异地容灾,可在脚本末尾追加 rsync 同步(假设已配置好免密SSH):

Humata
Humata

Humata是用于文件的ChatGPT。对你的数据提出问题,并获得由AI提供的即时答案。

下载
  • 在远程服务器上创建接收目录:mkdir -p /backup/web
  • 在本地脚本中添加(接在 tar 成功之后):
# 推送至远程(替换 user@host:/path)
if rsync -az --delete "${BACKUP_DIR}/${ARCHIVE_NAME}" user@192.168.1.100:/backup/web/ >> /var/log/backup.log 2>&1; then
echo "[$(date)] 已同步至远程服务器" >> /var/log/backup.log
else
echo "[$(date)] 同步失败,请检查网络或SSH密钥" >> /var/log/backup.log
fi

三、用cron设置定时任务

运行 crontab -e,添加一行即可(例如每天凌晨2:30执行):

30 2 * * * /opt/scripts/backup.sh
  • 如需每4小时一次:0 */4 * * * /opt/scripts/backup.sh
  • 务必确认脚本中所有路径用绝对路径(/usr/bin/tar 而非 tar),避免cron环境变量缺失导致失败
  • 测试时可先手动执行:/opt/scripts/backup.sh && tail -n 5 /var/log/backup.log

四、简单但实用的健壮性增强点

  • 检查磁盘空间:在脚本开头加 df -h /backup | awk 'NR==2 {print $5}' | sed 's/%//' | [[ $(cat) -gt 90 ]] && echo "磁盘超90%!跳过备份" && exit 1
  • 锁定机制防重复:用 if [ -f /tmp/backup.lock ]; then exit; else touch /tmp/backup.lock; trap 'rm -f /tmp/backup.lock' EXIT;
  • 邮件通知(需配置mail命令):失败时加一句 echo "备份异常" | mail -s "Backup Alert" admin@example.com

基本上就这些。不复杂但容易忽略的是:路径、权限、日志、清理策略——四项对了,脚本能跑一年不掉链子。

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

616

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

653

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

470

2023.07.31

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.08.01

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2895

2023.08.11

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

505

2023.08.11

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

312

2023.08.31

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

425

2023.09.01

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

0

2026.01.19

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号