<linux shell 攻略> 庖丁解牛 mysql数据库脚本管理系统

操作界面

这个小系统一共包含4个脚本

sh 功能 备注
oneKey.sh 主程序,调用其他程序,对外提供功能
menu.sh 勾画菜单
function.sh 提供操作数据库接口
valid.sh 操作mysql数据库,验证数据

menu.sh

画字符菜单

#!/bin/bash
function print_main_menu(){
cat <<EOF
#######################################
#    1)创建数据库                  #
#    2)导入电商端数据              #
#    3)创建电商端数据库并导入数据  #
#    4)验证电商端数据数据有效性    #
#    5)删除数据库                  #
#    6)打印菜单                    #
#    7)退出                        #
#######################################
EOF
}

function.sh

#!/bin/bash
#作者:
#版本:v1.0
#用途:创建mysql 数据库和数据库表

#创建数据库 4个必须参数(user,password,database_name,charset)
function create_database_01(){
    USER="$1"
    PASSWORD="$2"
    IP="$3"
    DATEBASE_NAME="$4"
    DATABASE_CHARSET="utf8"
    mysql -h $IP -u $USER -p$PASSWORD <<EOF 2>/dev/null
    create database $DATEBASE_NAME charset=$DATABASE_CHARSET;
EOF

    if [[ $? -eq 0 ]]; then
            echo "数据库"$DATEBASE_NAME"创建成功"
        else
            echo "数据库"$DATEBASE_NAME"创建失败"
            exit 1;
    fi
}

#扫描地区目录中数据库文件夹,按顺序执行
function init_database_02(){
    USER="$1"
    PASSWORD="$2"
    IP="$3"
    DATEBASE_NAME="$4"
    AREACODE="$5"
    while read line; 
    do
        mysql -h $IP -u $USER -p$PASSWORD $DATEBASE_NAME <$line 2>/dev/null
    done < <(ls ./$AREACODE/*.sql -rt)

    if [[ $? -eq 0 ]]; then
            echo "往"$DATEBASE_NAME"导入数据成功"
        else
            echo "往"$DATEBASE_NAME"导入数据失败"
            exit 1;
    fi
}

#删除数据库
function drop_database_02(){
    USER="$1"
    PASSWORD="$2"
    IP="$3"
    DATEBASE_NAME="$4"
    mysql -h $IP -u $USER -p$PASSWORD <<EOF 2>/dev/null
    drop database $DATEBASE_NAME;
EOF

    if [[ $? -eq 0 ]]; then
            echo "数据库"$DATEBASE_NAME"删除成功"
        else
            echo "数据库"$DATEBASE_NAME"删除失败"
            exit 1;
    fi
}

#读取参数
function readstdin(){
            read -p "please input ip[localhost]:" ip
            if [[ -z "$ip" ]]; then
                ip="localhost"
            fi
            read -p "please input db login user[root]:" username
            if [[ -z "$username" ]]; then
                username="root"
            fi
            read -p "please input db login password:" password
            read -p "please input db name:" dbname    

}

valida.sh

#!/bin/bash
dbname="test_jd_dspt_wh"
nsrsbh="420112568371402"

mysql="mysql -h 192.168.15.9 -u root -p123456 $dbname"
#$mysql "use $dbname"
sql="select count(nsrsbh) into @v01 from dj_nsrxx 
where nsrsbh=$nsrsbh;
select if(@v01<=0,‘纳税人识别号在dj_nsrxx表中没有记录‘,
                  ‘验证01[纳税人识别号在dj_nsrxx表中存在]验证通过!!!‘);
select dsptbm into @dsptbm  from dj_nsrxx where nsrsbh=$nsrsbh;
select pt.dsptmc into @dsptmc from dj_dzswpt_kz kz ,dj_dzswpt pt 
where  kz.id =pt.id  and [email protected];
select if(@dsptmc is not null,concat(‘验证02通过纳税人电商平台信息:‘,@dsptmc),‘验证02[纳税人电商平台信息为空]验证不通过!!!‘);

select hy_dm into @vhy  from dj_nsrxx where [email protected];
select kpzt into @vkpzt  from dj_nsrxx where [email protected];
select nsrzt_dm into @vnsrzt from dj_nsrxx where [email protected];
select if(@vhy!=5200,‘纳税人行业代码不等于5200‘,‘验证03[纳税人行业代码等于5200]验证通过!!!‘);
select if(@vnsrzt!=21,‘纳税人状态代码不等于21‘,‘验证04[纳税人状态代码等于21]验证通过!!!‘);
select if(@vkpzt!=1,‘纳税人开票状态不等于1‘,‘验证05[纳税人开票状态等于1]验证通过!!!‘);

SELECT COUNT(1) into @nsrztcount FROM fp_nsrzt WHERE SWJG_DM = (SELECT SZ_SWJG_DM FROM dj_nsrxx WHERE NSRSBH = @vnsrsbh) AND NSRZT_DM = @vnsrzt;
select if(@nsrztcount<=0,‘纳税人税务机关[SZ_SWJG_DM]不存在或状态与纳税人信息不匹配‘,‘验证06[纳税人所在税务机关SZ_SWJG_DM有效]验证通过!!!‘);

select ‘上述所有验证均通过,可保证订单可以下发成功‘;

select count(1) into @vjccount2 from fp_pz pz, fp_nsrjc jc where jc.NSRSBH=pz.NSRSBH and pz.FPZL_DM=jc.FPZL_DM and [email protected];
select if(@vjccount2<=0,‘纳税人票种或结存为空‘,‘验证07[纳税人开票结存]验证通过!!!‘);

select count(1) into @dymbcount from dm_dymb mb where SWJG_DM=(select SZ_SWJG_DM from dj_nsrxx where [email protected]);
select if(@dymbcount<4,‘所在税务机关打印模板数目不足4个‘,‘验证08[打印模板]验证通过,不保证模板路径有效!!!‘);
select concat(‘____‘,PYFILEURL) as ‘打印模板如下‘ from dm_dymb mb where SWJG_DM=(select SZ_SWJG_DM from dj_nsrxx where [email protected]);

select qzid into @vqzid from fp_qzcx where [email protected];
select if(@vqzid is null,‘纳税人签章信息不存在‘,‘验证09[签章信息]验证通过!!!‘);
";
$mysql -N -L -s -e "$sql"
时间: 2024-10-08 13:25:22

<linux shell 攻略> 庖丁解牛 mysql数据库脚本管理系统的相关文章

思维导图学 Linux Shell攻略之干货篇 mysql数据库脚本管理系统

以结果为导向的学习,才是最有效率学习.笔者以前也曾经隔三差五的学习linux shell编程来着.给我的感觉就是,今天学了,后天忘了,一星期之后就白学了. 还好,最近自己平时没啥事,一直照着<linux shell攻略>,学做一些小例子,看着自己写的shell程序,简单的几行程序,实现一些好玩的效果,信心满满.不知不觉间,慢慢坚持了2周. 说说自己的干货吧.其实就是一个linux 操作mysql数据库脚本管理系统. 功能谈不上复杂,就是在平时工作中,笔者要维护多套业务系统,这些业务系统主要功能

linux shell中读写操作mysql数据库

本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为xml或html文件, 并分析了核心语句.本文介绍的方法适用于PostgreSQL ,相对mysql而言,shell 中读写PostgreSQL会更简单些.1. 连接mysql 数据库 shell中连接数据库的方法很简单,只需要指定用户名,密码,连接的数据库名称,然后通过重定向,输入mysql的语句

思维导图学 Linux Shell攻略之小试牛刀篇

曾听一位大神讲过,带着目的去学,知识往往能记得牢,记得稳.借助思维导图这个工具,对一些我感兴趣的知识点进行分类管理.以后方便自己复习. 我会以思维导图+代码段的方式,回滚学习linux shell编程. 转义/色彩 与用户交互的接口 #打印一个普通的字符串 [[email protected] ~]# echo "it's isa dog" it's is a dog   #打印一个带有单引号和换行符的字符串,单引号可正常输出,但换行符没有效果 #没有达到想要的效果 [[email p

《Linux深度攻略》一书,讲述Linux日常系统管理和服务器配置内容

Linux深度攻略 首先从介绍Linux系统的安装入手,讲述了Linux系统管理和服务器配置两部分的知识.系统管理方面内容有Linux系统简介和安装,Linux字符界面,目录和文件管理,Linux常用命令,Shell编程,用户和组群账户管理,权限.所有者和ACL,归档.压缩和备份,软件包管理,磁盘和文件系统管理,逻辑卷管理,进程和服务管理,任务计划以及Linux系统引导和启动.服务器配置方面内容有Linux网络基本配置,配置OpenSSH.VNC.NFS.DHCP.Samba.DNS.Apach

Linux下使用Python操作MySQL数据库

安装mysql-python 1.下载mysql-python 打开终端: cd /usr/local sudo wget http://nchc.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz 官网地址:http://sourceforge.net/projects/mysql-python/ 2.解压 sudo tar -zxvf MySQL-python-1.2.2.tar.gz cd MySQL-

Linux下crontab+php实现Mysql数据库定时备份

引言 大项目中的数据库备份是必不可少的,否则一旦出现大问题就GG了,虽然本文是讲述利用PHP实现数据库定时备份,但是这并不是好的方案 想要定时备份数据库,最快捷安全的方法就是利用shell脚本了,功能强大操作方便,而且执行速度极快,不像PHP还需要被apache解析一把.. 当然,不管是用php定时备份,还是shell脚本定时备份,都离不开crontab这玩意,毕竟它才是真正的定时器,这里粗略的说一下crontab吧 crontab使用简介 crontab常用基础命令 crontab -e //

Linux(CentOS)安装Mysql数据库

1.需要mysql-linux安装包 本次使用mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz进行安装   2.将此安装包上传至linux服务器 上传路径为:/usr/local   3.解压mysql 输入命令:tar zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz   4.复制mysql到/usr/local/mysql文件夹内(注意mysql-5.7.17-linux-glibc2.5-x86_64此文件夹名称

LoadRunner11_录制MySQL数据库脚本

记录一次压测过程中,通过LoadRunner向MySQL数据库插入大量数据的过程. [1]需要使用到MySQL的libmysql.dll动态链接库,因此需要安装MySQL:注:本地安装的MySQL最好和MySQL数据库服务器上的版本一致:(本次使用的是MYSQL 5.6) [2]LoadRunner选择"CVuser"协议: [3]选择"File"→"Add Files to script",将MySQL Server 5.6/lib下的libm

linux shell 之尝试编写 企业级 启动脚本

企业Shell面试题10:开发企业级MySQL启动脚本 说明: MySQL启动命令为: 1 /bin/sh mysqld_safe --pid-file=$mysqld_pid_file_path 2>&1 >/dev/null & 停止命令逻辑脚本为: 1 2 3 4 5 6 mysqld_pid=`cat "$mysqld_pid_file_path"` if (kill -0 $mysqld_pid 2>/dev/null)   then