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天前
|
资源调度 JavaScript 搜索推荐
Linux系统之部署envlinks极简个人导航页
【4月更文挑战第11天】Linux系统之部署envlinks极简个人导航页
41 2
|
10天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
61 0
|
10天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
26 0
|
11天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
8天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
24 6
|
1天前
|
运维 监控 Shell
利用Shell脚本编写局域网监控软件:实时监测主机连接情况
本文介绍了如何使用Shell脚本创建一个局域网监控工具,以实时检查主机连接状态。脚本包括扫描IP地址范围检测主机可达性及使用`netstat`监控ESTABLISHED连接。此外,还展示了如何每60秒将连接数数据自动提交到指定网站API,以便实时跟踪网络活动。这个自动化监控系统有助于提升网络安全性和故障排查效率。
7 0
|
2天前
|
Shell
Shell脚本之流程控制语句
Shell脚本之流程控制语句
|
3天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
3天前
|
JSON 运维 监控
训练shell常用脚本练习(三)
【4月更文挑战第14天】shell代码训练(三)
14 1
|
7天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
137 0