zoukankan      html  css  js  c++  java
  • [转]一个备份MySQL数据库的简单Shell脚本

    本文翻译自 iSystemAdmin 的 《A Simple Shell Script to Backup MySQL Database

    Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行。我们也可以逐一敲入命令手动执行。如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了。

    我首先要在本文带给你的是完整脚本。后面会对该脚本做说明。我假定你已经知道shell scripting、 mysqldump和crontab。

    适用操作系统:任何Linux或UNIX。

    a-simple-shell-script-to-backup-mysql-database

    主脚本(用于备份mysql数据库):

    该Shell脚本可以自动备份数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。我备份数据库使用的是mysqlump 命令。后面会对每行脚本命令进行说明。

    1. 分别建立目录“backup”和“oldbackup”

    #mkdir /backup
    #mkdir /oldbackup

    2. 现在使用你喜欢的编辑软件创建并编辑“backup.sh”

    这里我用的是 vi

    # vi /backup/backup.sh

    现在把以下几行命令输入到 backup.sh 文件中:

    #!bin/bash
    cd /backup
    echo “You are In Backup Directory”
    mv backup* /oldbackup
    echo “Old Databases are Moved to oldbackup folder”
    Now=$(date +”%d-%m-%Y--%H:%M:%S”)
    File=backup-$Now.sql
    mysqldump –u user-name  –p ‘password’ database-name > $File
    echo “Your Database Backup Successfully Completed”

    脚本说明:

    切记,在第8行命令中,在mysqldump命令后要输入自己的数据库用户名、密码及数据库名。

    执行该脚本,首先会进入 /backup 目录,然后该脚本会把原有的旧数据库备份移动到 /oldbackup 文件夹中,接着根据系统的日期及时间生成一个文件名,在最后 mysqldump 命令会生成一个“.sql”格式的数据库备份文件。

    3. 设置 backup.sh 脚本文件的可执行许可

    # chmod +x /backup/backup.sh

    4. 执行脚本

    #./backup.sh

    脚本运行结束后会得到以下输入。

    root@Server1:/download#./backup.sh
    You areinDownload Directory
    Old Backup DatabaseisMoved to oldbackup folder
    database backup successful completed
    root@Server1:/download#

    注:首次执行该脚本会有一个“no such file”的提示信息,这是由于旧备份文件还不存在。只要再次执行该脚本就没有问题了,这个问题已经不存在了。

    5. 使用cron制订备份计划

    使用Cron可以定时执行该脚本,备份会自动完成。使用 crontab 命令编辑cron 执行的计划任务。

    #crontab –e

    只要在编辑器上加入下面这一行代码保存即可。

    013* * * * /backup/backup.sh

    本任务表示的是在每天下午1点钟把数据库备份到指定的文件夹。有关cron任务设置的详细内容可以查阅crontab手册。

    对初学者而言,这是非常基础的脚本。希望你能举一反三写出更复杂的备份脚本。我们会努力提供更自动化的新脚本。请大家不吝赐教,我们会尽力解决你们的问题。感谢与我们相伴。

  • 相关阅读:
    hdu 5723 Abandoned country 最小生成树 期望
    OpenJ_POJ C16G Challenge Your Template 迪杰斯特拉
    OpenJ_POJ C16D Extracurricular Sports 打表找规律
    OpenJ_POJ C16B Robot Game 打表找规律
    CCCC 成都信息工程大学游记
    UVALive 6893 The Big Painting hash
    UVALive 6889 City Park 并查集
    UVALive 6888 Ricochet Robots bfs
    UVALive 6886 Golf Bot FFT
    UVALive 6885 Flowery Trails 最短路
  • 原文地址:https://www.cnblogs.com/go-jzg/p/4192585.html
Copyright © 2011-2022 走看看