Linux Shell 自动备份脚本

写一个使用shell脚本增量备份系统文件,顺便复习一下shell脚本相关的命令,这个脚本可以根据自己的需求来备份不同的文件或者文件夹,进行完整备份和增量备份。

参考的网址:http://blog.51cto.com/wgkgood/1330200

直接上脚本如下:

 

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

 

posted @   走天涯  阅读(5395)  评论(1编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示