shell循环读取数据库数据库数据库
mysql备份用自带的备份工具mysqlmp
每天自动执行用cron工具,把mysql的备份命令放在.sh文件里面
.sh文件放在/etc/cron.daily目录,就会每天自动执行了。
‘贰’ 写个shell脚本连接oracle数据库查询某表数据导出为txt文件,再发送到第三
1、简单的单列
#!/bin/sh
sqlplus 'user001/12345678'<< EOF
set define off
set hea off
spool vip1.txt
select username from ACCOUNT where LEVEL=7;
spool off
quit;
EOF
sed -i 's/[ ]*//g' ~/vip1.txt
sed -i '/^$/d' ~/vip1.txt
sed -i '1d' ~/vip1.txt
sed -i '$d' ~/vip1.txt
scp -P22 ~/vip1.txt [email protected]:/root
2、复杂的多列
#!/bin/sh
cid=$1;
today=`date +%Y-%m-%d-%H.%M`
ym=`date +%Y%m`
ymd=`date -d -1days +%Y%m%d`
last_ym=`date -d last-month +%Y%m`
next_ym=`date -d next-month +%Y%m`
file=chat_recorder_${cid}_20140707-11.xls
if [[ $1 == '' ]];then
echo "Usage: $0 company_id "
exit 0;
fi
sqlplus 'user002/12345678' << EOF
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
spool ${file}
select a.*,b.* from recorder_${ym} a,t_${ym} b where a.company_id='$cid' and a.create_time between TO_DATE('2014-07-07 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and TO_DATE('2014-07-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and a.chat_id=b.chat_id order by b.chat_id ;
spool off
quit;
EOF
sed -i '/select/d' $file
zip -r ${file}.zip $file
scp -P22 ${file}.zip [email protected]:/opt
‘叁’ 急,,,如何用shell变量接收db2数据库查询的结果
这样的shell我写过。没什么好办法获取sql查询出来的结果。
我用个的一个比较勉强的办法,可以自己添加一个特殊值,然后使用Grep来过滤获取。
‘肆’ Xshell怎么连接数据库
1、运行Xshell客户端(事先安装好Xshell客户端)
2、连接远程服务器
3、在命令行输入框中输入数据库的连接口令如:mysql
-h
192.168.10.100
-u
ju70_sql
-pwju70_sql
4、这个连接口令包含了,数据库的host,数据库用户名,以及密码,输入后点击回车,如下图就表示连接成功了
5、接着输入“use
数据库名称”的方式,告诉后台要使用这个数据库,输入后回车
6、如下图就可以使用正常的sql语句直接在Xshell中执行就可以查询得到想要的数据。