zoukankan      html  css  js  c++  java
  • 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
    --------------------------------------------
    Example $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  "--------------------------------------------
    These 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  "-----------------------------------------
    These 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  "-------------------------------------------
    These Add_Backup System Files Backup Successfully !"
    55         fi
    56     fi
    57 }
    58 Full_Backup;Add_Backup
    ================================================================================== = 黑发不知勤学早,白首方悔读书迟。 --颜真卿《劝学》
  • 相关阅读:
    一个Java对象到底占用多大内存
    Java 动态代理机制分析及扩展
    JVM内幕:Java虚拟机详解
    深度分析 Java 的 ClassLoader 机制(源码级别)
    Java异常的深入研究与分析
    HashMap的工作原理
    Java枚举常见7种用法
    left join 过滤条件写在on后面和写在where 后面的区别
    mysql left( right ) join使用on 与where 筛选的差异
    SQL索引优化
  • 原文地址:https://www.cnblogs.com/happy1983/p/9154907.html
Copyright © 2011-2022 走看看