SHELL脚本自动备份Linux系统

简介:

前段时间写的使用python脚本自动备份系统文件,今天来写一个使用shell脚本增量备份系统文件,顺便复习一下shell脚本相关的命令,这个脚本可以根据自己的需求来备份不同的文件或者文件夹,进行完整备份和增量备份。直接上脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/sh
#Automatic Backup Linux System Files
#Author wugk 2013-11-22
#Define Variable
SOURCE_DIR=(
     $*
)
TARGET_DIR= /data/backup/
YEAR=` date  +%Y`
MONTH=` date  +%m`
DAY=` date  +%d`
WEEK=` date  +%u`
FILES=system_backup.tgz
CODE=$?
if
     [ -z  "$*"  ]; then
     echo  -e  "Please Enter Your Backup Files or Directories\n--------------------------------------------\nExample $0 /boot /etc ......"
     exit
fi
#Determine Whether the Target Directory Exists
if
     [ ! -d $TARGET_DIR/$YEAR/$MONTH/$DAY ]; then
     mkdir  -p $TARGET_DIR/$YEAR/$MONTH/$DAY
     echo  "This $TARGET_DIR is Created Successfully !"
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 ` echo  ${SOURCE_DIR[@]}`
     "$CODE"  ==  "0"  ]&& echo  -e   "--------------------------------------------\nThese Full_Backup System Files Backup Successfully !"
fi
}
#Perform incremental BACKUP Function Command
Add_Backup()
{
    cd  $TARGET_DIR/$YEAR/$MONTH/$DAY ;
if
     [ -f $TARGET_DIR/$YEAR/$MONTH/$DAY/$FILES ]; then
     read  -p  "These $FILES Already Exists, overwrite confirmation yes or no ? : "  SURE
     if  [ $SURE ==  "no"  -o $SURE ==  "n"  ]; then
     sleep  1 ; exit  0
     fi
#Add_Backup Files System
     if
         [ $WEEK - ne  "7"  ]; then
         cd  $TARGET_DIR/$YEAR/$MONTH/$DAY ; tar  -g $TARGET_DIR /snapshot  -czvf $$_$FILES ` echo  ${SOURCE_DIR[@]}`
         "$CODE"  ==  "0"  ]&& echo  -e   "-----------------------------------------\nThese Add_Backup System Files Backup Successfully !"
    fi
else
    if
       [ $WEEK - ne  "7"  ]; then
       cd  $TARGET_DIR/$YEAR/$MONTH/$DAY ; tar  -g $TARGET_DIR /snapshot  -czvf $FILES ` echo  ${SOURCE_DIR[@]}`
       "$CODE"  ==  "0"  ]&& echo  -e   "-------------------------------------------\nThese Add_Backup System Files Backup Successfully !"
    fi
fi
}
Full_Backup;Add_Backup


以上脚本仅供参考,还有很多需要优化、完善和调整的地方,欢迎大家提出意见。




本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1330200
相关文章
|
7月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
684 3
Linux系统禁用swap
|
7月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1234 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
767 3
Linux系统初始化脚本
|
7月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
684 9
|
7月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
699 2
|
8月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
597 18
|
7月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
926 1
|
7月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1285 1
|
7月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
监控 Linux
linux服务器显卡监控脚本
linux服务器显卡监控脚本
344 0