mysql -- 通过linux shell 脚本,导出部分数据
来源:互联网 发布:算法心得 原书 编辑:程序博客网 时间:2024/05/22 07:39
1.构建我的shell 脚本
(1)最初情况
- 下面这些语句还是有不少缺点的,从中可以看出来有大量的重复,应该想办法简化,尝试去使用变量。
- 简化之后,达到的目的应该是最少的修改。
#!/bin/bashmysqldump -h172.24.64.179 -umisc -p123456 app_test apk_files --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/app_test.sqlmysqldump -h172.24.64.179 -umisc -p123456 app_test apk_package --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/apk_package.sqlmysqldump -h172.24.64.179 -umisc -p123456 app_test apk_package_android --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/apk_package_android.sqlmysqldump -h172.24.64.179 -umisc -p123456 app_test apk_package_java --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/apk_package_java.sqlmysqldump -h172.24.64.179 -umisc -p123456 app_test apk_package_third --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/apk_package_third.sqlmysqldump -h172.24.64.179 -umisc -p123456 app_test combination --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/combination.sqlmysqldump -h172.24.64.179 -umisc -p123456 app_test inheritance --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/inheritance.sqlmysqldump -h172.24.64.179 -umisc -p123456 app_test inheritance --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/inheritance.sqlmysqldump -h172.24.64.179 -umisc -p123456 app_test invoke_androguard --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/invoke_androguard.sqlmysqldump -h172.24.64.179 -umisc -p123456 app_test method_androguard --where="apk_name='com.abazai.eightballpool'" > /volume1/testData/sql/method_androguard.sql
(2)改进之后的脚本:
- 这样更改便于后期的调整,避免改动较多的地方。【也可以看出 变量的作用】
- 注意变量的定义方式:whereState="apk_name='com.abazai.eightballpool'"
- 以及变量的使用方式:$whereState 或者 ${destPath}
- 注意在Shell中字符串的拼接方式:${destPath}app_test.sql
#!/bin/bash
whereState="apk_name='com.abazai.eightballpool'"
destPath="/volume1/testData/sql/"
mysqldump -h172.24.64.179 -umisc -p123456 app_test apk_files --where=$whereState >${destPath}app_test.sql
mysqldump -h172.24.64.179 -umisc -p123456 app_test apk_package --where=$whereState >${destPath}apk_package.sql
mysqldump -h172.24.64.179 -umisc -p123456 app_test apk_package_android --where=$whereState > ${destPath}apk_package_android.sql
mysqldump -h172.24.64.179 -umisc -p123456 app_test apk_package_java --where=$whereState > ${destPath}apk_package_java.sql
mysqldump -h172.24.64.179 -umisc -p123456 app_test apk_package_third --where=$whereState > ${destPath}apk_package_third.sql
mysqldump -h172.24.64.179 -umisc -p123456 app_test combination --where=$whereState > ${destPath}combination.sql
mysqldump -h172.24.64.179 -umisc -p123456 app_test inheritance --where=$whereState > ${destPath}inheritance.sql
mysqldump -h172.24.64.179 -umisc -p123456 app_test invoke_androguard --where=$whereState > ${destPath}invoke_androguard.sql
mysqldump -h172.24.64.179 -umisc -p123456 app_test method_androguard --where=$whereState > ${destPath}method_androguard.sql
(3)但是 mysqldump 能力十分有限,比如说条件语句中不能使用Like,OR等关键词。
而这些关键词的识别,是mysql命令的专长。
所以查阅mysql ,得到可以这样使用:
mysql -e "select * from apk_files where apk_name='com.airkast.KCSFAM'OR apk_name='com.amparosoft.progressivemetronome.free'" -h172.24.64.179 -umisc -p123456 -D app_test
但是我们需要的是把这些东西,导出来,于是可以和mysqldump相结合。
2.运行shell 脚本。
/bin/sh mysqlOut2.sh
3.移动文件。
运行完相应的脚本之后,我想去移动文件,这是一系列操作,我想放到一个命令中。
于是我在窗口输入:
- && 将多个命令连接在了一起。
rm -r /volume1/共享文件/常用软件/sql/sql && mv /volume1/testData/sql /volume1/共享文件/常用软件/sql && mkdir /volume1/testData/sql
- mysql -- 通过linux shell 脚本,导出部分数据
- Shell导出MySql部分表及数据
- mysql导出部分数据
- Shell 脚本 调用Mysql 客户端定时导出数据
- Mysql分表数据通过Shell进行导出与统计
- oracle数据导出shell脚本
- Linux 怎么通过shell脚本定时备份mysql数据库
- mysql -- mysqldump导出部分数据
- linux环境mysql导出数据并上传sftp脚本
- mysql数据迁移shell 脚本
- mysql导出xls,备份shell脚本
- shell脚本实现sequoiadb数据导出功能
- shell脚本链接数据库导出数据
- mysql将查询部分数据导出到外部文件的脚本,文件格式替换
- linux shell脚本操作mysql
- 通过shell脚本操作mysql数据库
- 通过shell脚本操作mysql数据库
- 导出MYSQL数据库中的部分数据
- GitHub操作常见错误收集
- Android基础————UI控件以及控件事件处理详解
- 命令行运行java的时候总是提示:找不到或无法加载主类
- 1、2、3、4四个数字,无重复的3位数
- [LeetCode] 130. Surrounded Regions
- mysql -- 通过linux shell 脚本,导出部分数据
- hibernate的executeWithNativeSession(HibernateCallbk())、execute(new HibernateCallback())无法对spring事务回滚
- GitHub网站访问不到错误
- 动态代理
- html5开始之网页结构
- 菜鸟笔记--Java通过Rserve调用R语言
- N皇后问题
- hibernate执行的SQL语句返回的list集合用Object[]接收遍历
- 《走近大数据之Hive进阶》学习笔记(2)