01-Shell编程-Linux系统备份脚本

本文介绍了一种使用tar工具结合Shell脚本实现的Linux系统自动备份方案,包括每周的完整备份和增量备份策略,以及如何通过Crontab进行定时执行。
摘要由CSDN通过智能技术生成

后面的文档我会分批次分享和编辑,一般情况下每天2个编程

主要在备考软考,各位同学XDM请见谅!

1. Linux系统备份脚本

日常企业运维中,需要备份Linux操作系统中重要的文件,例如/etc、/boot分区,重要网站数据等。在备份时,由于数据量非常大,需要指定高效的备份方案,以下为常用的备份数据方案:
(1)每周日进行完整备份,周一~周六使用增量备份。
(2)每周六进行完整备份,周日~周五使用增量备份。
企业备份数据的工具主要有tar、cp、rsync、scp、sersync、dd等。以下为基于开源tar工具实现系统数据备份方案。

tar工具手动全备份网站,-g参数指定新的快照文件。

tar -g   /tmp/snapshot   -czvf   /tmp/2024_full_system_data.tar.gz  /data/sh/

tar工具手动增量备份网站,-g参数指定全备已生成的快照文件,后续增量备份基于上一个增量备份快照文件。

tar -g   /tmp/snapshot   -czvf   /tmp/2024_add01_system_data.tar.gz /data/sh/

tar工具全备份、增量备份网站,Shell脚本实现自动打包备份编写思路如下:

(1)系统备份数据按每天存放。

(2)创建完整备份函数块。

(3)创建增量备份函数块。

(4)根据星期数判断完整或增量。

(5)将脚本加入Crontab实现自动备份。

tar工具全备份、增量备份网站,Shell脚本实现自动打包备份,相关代码如下:

#!/bin/bash
# 声明这个脚本使用的解释器为 bash

#Auto Backup Linux System Files
#By author jfedu.net 2021
# 设置脚本作者和年份的注释

#Define Path variables
# 定义路径变量

SOURCE_DIR=(
    $*
)
# 设置源目录变量,可以通过命令行参数传入多个目录

TARGET_DIR=/data/backup/
# 设置备份目录的路径

YEAR='date +%Y'
MONTH='date +%m'
DAY='date +%d'
WEEK='date +%u'
A_NAME='date +%H%M'
# 设置日期和时间变量

FILES=system_backup.tgz
# 设置备份文件名

CODE=$?
# 设置退出码变量

if
    [ -z "$*" ];then
    echo -e "\033[32mUsage:\nPlease Enter Your Backup Files or Directories\
n--------------------------------------------\n\nUsage: { $0 /boot /etc}\
033[0m"
    exit
fi
# 如果没有输入任何参数,则输出用法信息并退出脚本

#Determine Whether the Target Directory Exists
# 判断备份目录是否存在

if
    [ ! -d $TARGET_DIR/$YEAR/$MONTH/$DAY ];then
    mkdir -p $TARGET_DIR/$YEAR/$MONTH/$DAY
    echo -e "\033[32mThe $TARGET_DIR Created Successfully !\033[0m"
fi
# 如果备份目录不存在,则创建备份目录

#EXEC Full_Backup Function Command
# 执行完整备份函数命令

Full_Backup()
{
if
    [ "$WEEK" -eq "7" ];then
    rm -rf $TARGET_DIR/snapshot
    cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf 
$FILES ${SOURCE_DIR[@]}
    [ "$CODE" == "0" ]&&echo -e  "---------------------------------------
-----\n\033[32mThese Full_Backup System Files Backup Successfully !\033[0m"
fi
}
# 如果是周日,则执行完整备份函数,使用 tar 命令将源目录备份到指定位置

#Perform incremental BACKUP Function Command
# 执行增量备份函数命令

Add_Backup()
{
   if
        [ $WEEK -ne "7" ];then
        cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf 
$A_NAME$FILES ${SOURCE_DIR[@]}
        [ "$CODE" == "0" ]&&echo -e  "------------------------------------
-----\n\033[32mThese Add_Backup System Files $TARGET_DIR/$YEAR/$MONTH/
$DAY/${YEAR}_$A_NAME$FILES Backup Successfully !\033[0m"
   fi
}
# 如果不是周日,则执行增量备份函数,使用 tar 命令将源目录备份到指定位置,并输出备份成功信息

sleep 3 
# 休眠 3 秒

Full_Backup;Add_Backup
# 执行完整备份和增量备份函数

在Crontab任务计划中添加如下语句,每天凌晨1点整执行备份脚本即可。

0  1  *  *  * /bin/sh /data/sh/auto_backup.sh /boot /etc/ >> /tmp/back.log 
2>&1

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

网运_沉鱼落雁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值