我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何备份shell脚本

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何备份shell脚本

小编给大家分享一下如何备份shell脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

backup_run.sh

代码如下:


    #!/bin/sh
    # backup_run
    # script to run the backups
    # loads in a setting file for the user to change
    SOURCE=/home/bob/backup.defaults
    check_source()
    {
        # check_source
        # can we load the file
        # backup.defaults is the source file containing config/functions
        # make sure your path includes this directory you are runing from
        if [ -r $SOURCE ];then
          . $SOURCE # load $source
        else
            echo "`basename $0`: cannot locate default file"
            exit 1
        fi
    }
    header()
    {
        # header
        USER=`whoami`
        MYDATE=`date +%A" "%e" of "%B-%Y`
        clear
        cat << HH
        User: $USER $MYDATE
                    NETWORK SYSTEM BACKUP
                    =====================
    HH
    }
    change_settings()
    {
        # change_settings
        # let the user see the default settings..
        header
        echo "Valid Entries Are..."
        echo "Tape Device: rmt0,rmt1,rmt3"
        echo "Mail Admin:yes,no"
        echo "Backup Type: full,normal,sybase "
        while :
        do
            echo -n -c "\n\n Tape Device To Be Used For This Backup [$_DEVICE] :"
            read T_DEVICE
            : ${T_DEVICE:=$_DEVICE}
            case $T_DEVICE in
                rmt0|rmt1|rmt3) break

                *) echo "The device are either...rmt0,rmt1,rmt3"

            esac
        done
        # if the user hits return on any of the fields, the default value will be used
        while :
        do
            echo -n "Mail Admin When Done [$_INFORM] : "
            read T_INFORM
            : ${T_INFORM:=$_INFORM}
            case $T_INFORM in
                yes|Yes) break

                no|No) break

                *) echo "The choices are yes,no"

            esac
        done
        while :
        do
            echo -n "Backup Type [$_TYPE] :"
            read T_TYPE
            : ${T_TYPE:=$_TYPE}
            case $T_TYPE in
                Full|full) break

                Normal|normal) break

                Sybase|sybase) break

                *) echo "The choices are either ... full,normal,sybase"
            esac
        done
        # re-assign the temp varialbes back to original variables that
        # were loaded in
        _DEVICE=$T_DEVICE;_INFORM=$T_INFORM;_TYPE=$T_TYPE
    }
    show_settings()
    {
        # display current settings
        cat << HH
                    Default Settings Are...
                Tape Device To Be Used : $_DEVICE
                Mail Admin When Done : $_INFORM
                Type Of Backup : $_TYPE
                Log File Of Backup : $_LOGFILE
    HH
    }
    get_code()
    {
        # users get 3 attempts at entering the correct code
        # _CODE is loaded in from the source file
        clear
        header
        _COUNTER=0
        echo "YOU MUST ENTER THE CORRECT CODE TO BE ABLE TO CHANGE DEFAULT SETTINGS"
        while :
        do
            _COUNTER=`expr $_COUNTER + 1`
            echo -n "Enter the code to change the settings: "
            read T_CODE
            # echo $_COUNTER
            if [ "$T_CODE" = "$_CODE" ];then
                return 0
            else
                if [ "$_COUNTER" -gt 3 ];then
                    echo "Sorry incorrect code entered, you cannot change the settings..."
                    return 1
                fi
            fi
        done
    }
    check_drive()
    {
        # make sure we can rewind the tape
        mt -f /dev/$_DEVICE rewind > /dev/null 2>&1
        if [ $? -ne 0 ];then
            return 1
        else
            return 0
        fi
    }
    #====================== main =======================
    # can we source the file
    check_source
    header
    # display the loaded in variables
    show_settings
    # ask user if he/she wants to change any settings
    if continue_prompt "Do you wish To Change Some of The System Defaults" "Y";
    then
        echo $?   
        # yes then enter code name
        if get_code;then
            # change some settings
            change_settings
        fi
    fi
    #------------------ got settings... now do backup
    if check_drive;then
        echo "tape OK..."
    else
        echo "Cannot rewind the tape..Is it in the tape drive???"
        echo "check it out"
        exit 1
    fi
    # file system paths to backup
    case $_TYPE in
        Full|full)
            BACKUP_PATH="sybase syb/suppor etc var bin apps usr/local"

        Normal|normal)
            BACKUP_PATH="etc var bin apps usr/local"

        Sybase|sybase)
            BACKUP_PATH="sybase syb/suppor"

    esac
    # now for backup
    cd /
    echo "Now starting backup......"
    find $BACKUP_PATH -print | cpio -ovB -O /dev/$_DEVICE >> $_LOGFILE 2>&1
    # if the above cpio does not work on your system try cpio below, instead
    # find $BACKUP_PATH -print | cpio -ovB > /dev/$_DEVICE >> $_LOGFILE 2>&1
    # to get more information on the tape change -ovB to -ovcC66536
    if [ "$_INFORM" = "yes" ];then
        echo "Backup finished check the log file" | mail admin
    fi


2、backup.defaults

代码如下:


    #!/bin/sh
    # backup.defaults
    # configuration default file for network backups
    # edit this file at your own
    # name backup.defaults
    # --------------------------------------------
    # not necessary for the environments to be in quotes.. but
    _CODE="comet"
    _LOGFILE="/appdva/backup/log.`date +%y%m%d`"
    _DEVICE="rmt0"
    _INFORM="yes"
    _TYPE="Full"
    #---------------------------------------------
    continue_prompt()
    {
        # continue_prompt
        # to call: continue_prompt "string to display" default_answer
        _STR=$1
        _DEFAULT=$2
        # check we have the right params
        if [ $# -lt 1 ];then
            echo "continue_prompt: I need a string to display"
            return 1
        fi
        while :
        do
            echo -n "$_STR [Y..N] [$_DEFAULT]:"
            read _ANS
            if [ "$_ANS" = "" ];then
                : ${_ANS:=$_DEFAULT}
                case $_ANS in
                    Y) return 0

                    N) return 1

                esac
            fi
            # user has selected something
            case $_ANS in
                y|Y|Yes|YES)
                    return 0

                n|N|No|NO)
                    return 1

                *) echo "Answer either Y or N, default is $_DEFAULT"

            esac
            echo $_ANS
        done
    }


3、运行:

代码如下:


$./backup_run.sh backup.defaults

以上是“如何备份shell脚本”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何备份shell脚本

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何备份shell脚本

小编给大家分享一下如何备份shell脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、backup_run.sh代码如下: #!/bin/sh #
2023-06-09

linux下mysql如何自动备份shell脚本

Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库。其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令。#!/bin/bash # S
2022-06-04

如何实现备份数据库的shell脚本

这篇文章将为大家详细讲解有关如何实现备份数据库的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。备份数据库的shell脚本一代码如下:#!/bin/bash#指定运行的脚本shell#运行脚本
2023-06-09

备份shell脚本实例代码

1、backup_run.sh#!/bin/sh # backup_run # script to run the backups # loads in a setting file for the user to cha
2022-06-04

如何实现远程FTP定时备份Shell脚本

这篇文章主要讲解了“如何实现远程FTP定时备份Shell脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现远程FTP定时备份Shell脚本”吧!先说问题.公司现在有2台服务器,都是c
2023-06-09

linux中mysql备份shell脚本代码

第一步:在你的linux服务器中定义备份目录:mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup第二步:下面是最重要的一步了,就是写定时备份脚本。vi dbbackup.sh代码文件如下#!
2022-06-04

linux中mysql怎么备份shell脚本

本篇内容主要讲解“linux中mysql怎么备份shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中mysql怎么备份shell脚本”吧!第一步:在你的linux服务器中定义
2023-06-09

mysql常用备份命令和shell备份脚本分享

备份多个数据库可以使用如下命令:mysqldump -uroot -p123456 --databases test1 test2 test3 > /home/test/dump.sql;恢复备份:source dump.sql --在my
2022-06-01

两个备份数据库的shell脚本

备份数据库的shell脚本一 #!/bin/bash#指定运行的脚本shell#运行脚本要给用户执行权限bakdir=/backupmonth=`date +%m`day=`date +%d`year=`date +%Y`hour=`dat
2022-06-04

如何实现备份网站内容的shell脚本代码

这篇文章主要介绍如何实现备份网站内容的shell脚本代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!备份网站内容 代码如下:#!/bin/bash#指定运行的脚本shell#运行脚本要给用户执行权限bakdir=/
2023-06-09

Linux系统如何配置文件简易shell备份脚本

这篇文章主要为大家展示了“Linux系统如何配置文件简易shell备份脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统如何配置文件简易shell备份脚本”这篇文章吧。在计算机科学
2023-06-05

如何编写一键备份gitolite服务器的Shell脚本

这篇文章主要介绍“如何编写一键备份gitolite服务器的Shell脚本”,在日常操作中,相信很多人在如何编写一键备份gitolite服务器的Shell脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何编
2023-06-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录