zoukankan      html  css  js  c++  java
  • Shell脚本编程实战一:创建按天备份的脚本工具

     转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/8241256.html

    一:准备工作:创建归档目录 与  归档配置文件

        归档目录:创建一个仓库目录,专门用于存放每日备份的文件。

    1:创建目录:mkdir 目录名
    2:修改目录权限:chmod 权限 目录名 #如果不修改权限,则默认不能在该目录下创建、删除内容

        归档配置文件:一个文本文件,每一行是一个路径,表示一个待归档的文件或目录。

    二:创建备份脚本

    #!/bin/bash
    #Daily Backup Util
    
    DATE=$(date +%y%m%d)
    FILE=$DATE_backup.tar.gz
    
    CONFIG_FILE=归档配置文件路径
    DESTINATION=归档目录路径
    
    #检查配置文件是否存在
    if [ -f $CONFIG_FILE ]
    then 
        echo "Config File exit..."
    else
        echo "Config File doesn't exit..."
        exit
    fi
    
    #重定向输入,从配置文件读取内容
    exec < $CONFILE_FILE
    
    #读取配置文件内容,把逐条路径进行校验,如果文件存在则把文件路径加到list变量中
    FILE_NO=1
    read FILE_NAME
    
    while [ $? -eq 0 ] #当上一条命令执行成功
    do
        if [ -f $FILE_NAME -o -d $FILE_NAME ]
        then
            FILE_LIST="$FILE_LIST $SILE_NAME"
        else
            echo "$FILE_NAME doesn't exit......"
        fi
        FILE_NO=$[$FILE_NO +1]
        read FILE_NAME
    done
    
    #进行归档
    sudo tar -czf $DESTINATION $FILE_LIST
    
    echo "Backup completed......"
    exit

    三:改变脚本文件权限,赋予可执行权限

    四:运行脚本,进行归档

    改进:

    1)归档目录的目录层级

    我们不可能把所以归档文件笼统地放在一个目录中,如果按时间来归档的话,我们不妨就用时间层级来组织归档目录。

    总归档目录Backup

               |

    以年份命名的目录

               |

    一年中的月份目录

               |

    按日命名的目录按年月日命名的备份文件

              |

    年月日时命名的备份文件

    2)在备份脚本中创建层级归档目录

    #!/bin/bash
    #Hourly Backup Util
    
    BASE_DIR=归档总目录
    YEAR
    =$(date +%Y) MONTH=$(date +%m) DAY=$(date +%d) TIME=$(date +%Y%m%d%H)
    #创建层级目录:
    -p 选项,如果目录存在,不会产生错误信息;目录不存在,则创建 mkdir -p $BASE_DIR/$YEAR/$MONTH/$DAY DESTINATION=$BASE_DIR/$YEAR/$MONTH/$DAY/$TIME_backup.tar.gz #=====接下来的就是遍历配置文件、打包,同上面 按日打包 脚本=============
  • 相关阅读:
    dsp
    vector.cpp introducing the vector template.
    Bookmarks
    C#多线程参数传递.cs
    vector操作笔记
    Paragma & Bytes
    今天开博
    一台linux服务器挂载另外一台linux服务器文件系统
    nginx基于mysql的身份验证
    Ubuntu下编译nginx
  • 原文地址:https://www.cnblogs.com/ygj0930/p/8241256.html
Copyright © 2011-2022 走看看