zoukankan      html  css  js  c++  java
  • shell脚本定时操作数据库

    一.数据库脚本(mysql.sh)

    • Linux环境下,定时将数据库A的表格复制到数据库B中
    #!/bin/bash
    mysql_host="127.0.0.1"
    mysql_user="root"
    mysql_passwd="123456"
    dbold="nagios"
    dbnew="nagios_summary"
    #dbnew="test"
    tablename="nagios_servicestatus"
    #sql备份目录
    root_dir="/home"
    back_dir="/home/databases"
    if [ ! -d $back_dir ]; then
     mkdir -p $back_dir
    fi
    #Now=$(date +”%d-%m-%Y--%H:%M:%S”)
    #Now=$(date+%Y%m%d_%H:%M:%S)
    Now=$(date +%Y-%m-%d--%H:%M:%S)
    newtablename=$tablename-$Now".sql"
    newname=$tablename$(date +%Y%m%d_%H_%M_%S)
    cd $back_dir
    mysqldump -u$mysql_user -p$mysql_passwd -h$mysql_host $dbold $tablename>$newtablename
    #mysql -h$mysql_host -u$mysql_user -p$mysql_passwd $dbnew< $back_dir/$newtablenamei
    create_sql=" source ${back_dir}/${newtablename}"
    create_table="rename table ${tablename} to ${newname}"
    mysql -h$mysql_host -u$mysql_user -p$mysql_passwd $dbnew -e "${create_sql}"
    mysql -h$mysql_host -u$mysql_user -p$mysql_passwd $dbnew -e "${create_table}"
    if [ $? = 0 ]; then
     rm -r ${back_dir}/${newtablename}
    fi
    

    二.脚本的定时执行

    • 安装crontab
    yum install vixie-cron
    yum install crontabs
    service crond start //启动服务
    

    查看crontab服务是否已设置为开机启动,执行命令:ntsysv
    加入开机自动启动:

     chkconfig --level 35 crond on
    
    • 每隔1小时执行脚本
     crontab -e
    01 */1 * * * /home/mysql.sh
    

    三.导出某些数据表系统命令行mysqldump -uusername -ppassword db1 table1 table2 > tb1tb2.sql7 导入

    导出某些数据表

    • 系统命令行
     mysqldump -uusername -ppassword db1 table1 table2 > tb1tb2.sql
    

    导入某些数据表

    • 系统命令行
     mysql -uusername -ppassword db1 < tb1tb2.sql
     或mysql命令行
     mysql>
     user db1;
     source tb1tb2.sql;
    
    • 数据库信息
    #!/bin/bash
    HOSTNAME="127.0.0.1"                   #数据库Server信息
    PORT="3306"
    USERNAME="root"
    PASSWORD="123456"
    DBNAME1="nagios"
    DBNAME2="nagios"
    TABLENAME="test_table_name"           #要创建的数据库的表的名称
    
    ------------------------------------------------------------------------------------------------------------------------------本娃的学习日记@lily园
  • 相关阅读:
    Ubuntu下iperf的安装
    frp内网穿透协助内网程序(如微信相关)开发
    Uncaught Error: Call to undefined function mcrypt_get_iv_size() 解决办法
    CentOS安装了iRedMail停用Amavisd + ClamAV + SpamAssassin
    申请Let’s Encrypt通配符HTTPS证书(certbot ACME v2版)
    关于ThinkPHP在Nginx服务器下因PATH_INFO出错的解决方法
    本地开发环境伪装成SSL连接的实现
    Web基础之日志
    Linux基础之防火墙
    面向接口及单例工厂随笔
  • 原文地址:https://www.cnblogs.com/yanglicyfsdm/p/4710462.html
Copyright © 2011-2022 走看看