shell 自动执行sql

系统运维过程中,经常遇到向FTP上传下载数据,向DB读写数据等场景。FTP,SQLPLUS,MYSQL提供的都是交互式命令方式,在shell下也通过管道方式实现自动执行

 

1. FTP

1.1 -s参数指定文件名

vi ftpcmd.txt
open 192.168.5.10
myuser
mypass
get 1.txt 
bye
 
ftp -s:tpcmd.txt            // -s直接指定命令文件,可以完成自动测试,一般用于暴力破解FTP密码

  

1.2 "<<EOF" 表示后续输入作为子命令或子shell的输入,直到遇到EOF,常用于交互式命令中的自动输入。也可用于shell的多行注释。

ftp -n <<!
open 192.168.5.10
user myuser mypass
binary
cd ${Destdir}
get $File
close
bye
!

 

2. DB

#Oracle
sqlplus ${DbUser}/${DbPass}@${DbServ}:1521/${DbId} <<EOF
insert into TEST values(1,'hello');
commit;
EOF

#MYSQL
mysql -u root -p123456 -e "select count(*) from products";      #-e指定sql

 

3. redis

redis是非常流行的非关系型数据库,可通过下列方式执行批量的命令

cat data.txt | redis-cli -a 123456

cat读取data.ini 作为管道输入,data.ini 格式为一条命令一行

cat data.txt | redis-cli -a 123456 --pipe    

pipe指定用管道方式执行命令,这样可以提高执行效率。但此时的 data.ini 必须是dos格式的,每行以“\r\n“换行符结尾

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值