最近项目中有需要做一个shell脚本,可以对一个数据库执行sql操作,并将结果转为txt,筛选结果用tab隔开,保存至一个远程服务器上,以供其他人用Excel读取用txt中的内容。
MySQL中将结果保存下来,有两种方案,一种是在sql语句中增加INTO OUTFILE语句,并且可以定制化输出的格式。但是这种方法留下的文件在数据库所在的服务器上,而期望的是将文件放在执行脚本的机器上。
后来实现是不改变sql语句的内容,在脚本中将结果保存到本地/tmp目录下,再用curl上传到远程服务器上,下面抽出脚本中主要的结构的代码,文件上传或者编码转换之类的就不放了。
#! /bin/bashdb_host=your_db_addressdb_port=db_username=userdb_password=passworddb_name=your_db_nametable_name=your_table_nameoutput_file=/tmp/output.txtsql_stmt=“USE ${db_name}; \SELECT * FROM ${table_name}”mysql –h $db_host –P $db_port –u $db_username —password=$db_password –e “$sql_stmt”–B > $output_file
声明:本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件1139811139@qq.com与我们联系处理。敬请谅解!