LINUX定时任务与SH脚本(以定时备份mysql数据为例)

一: 使用crontab做定时任务。

  本次使用的是用crontab做mysql数据库的定时备份。

  1、确认crontab已经安装。(具体安装baidu.com). 

    yum -y install vixie-cron

    yum -y install crontabs

  2、创建备份数据脚本文件和备份文件目录。

    mkdir mysql_back (脚本及文件的总目录)

      cd mysql_back

    mkdir mysql_back.sh  (在mysql_back目录下创建脚本文件)

    mkdir data (在mysql_back目录下创建备份文件目录)

  3、编辑脚本文件。

    1、vi mysql_back.sh

    2、输入一下脚本内容:

#!/bin/sh
# File: /home/xhl/mysql_back/mysql_back.sh
# Database info
DB_NAME="chongqing_db"       //数据库名称
DB_USER="root"         //用户名
DB_PASS="3g2win"       //密码
# Others vars
# whereis mysqldump
# IS ` but not '
BIN_DIR="/usr/bin"         //mysqldump 的路径。即需要执行的命令的路径。
BCK_DIR="/home/xhl/mysql_back/data"      //保存文件的路径
DATE=`date +%Y%m%d_%H%M%S`
# TODO                           
mkdir -p $BCK_DIR                  
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME |gzip \
 > $BCK_DIR/$DB_NAME.dump_$DATE.sql.gz

    相应的路径信息根据服务器的环境进行相应的修改。

  4、创建crontab定时任务。(crontab的详细使用可参考:http://www.centoscn.com/CentOS/help/2014/1030/4025.html

    1、crontab -e

    2、输入:20 11  *  *  *    /home/xhl/mysql_back/mysql_back.sh

        #秒 时  日 月 周   |<==============任务的完整命令行

    3、保存退出。

 

  5、查看crontab日志:

    在 /var/spool/mail/root 下有相关的日志(本次使用的root用户做的测试,若是其他用户名则路径相应的为:/var/spool/mail/用户名)

    使用vi即可查看。

 

  6、错误信息分析:

    1、日志报执行sh时出错:===》  在脚本文件目录下执行:sudo chmod 777 mysql_back.sh。

    2、执行sh脚本:sh 脚本目录 。   (eg: sh  /home/xhl/mysql_back/mysql_back.sh).

posted @ 2016-03-08 11:37  下个十五分钟  阅读(479)  评论(0)    收藏  举报