工作中经常会遇到命令行操作数据库或登陆至其他服务器等情况,往往需要通过命令行进入相关的数据库或登陆至相关的服务器,再执行指令操作,因此有没有方法,在命令行或bash脚本中模拟进入数据库或登陆服务器操作呢?本文将对这一现状进行探讨!
1. Here Document
Here document 是linux shell中一种特殊的重定向方式,其格式为:
cmd << delimiter
Here document content
delimiter
其作用在于将两个分隔符delimiter之间的内容"Here document content"传递给执行命令cmd作为参数。
2. Bash脚本
通过1中所述方法,可以实现模拟登陆数据库,并执行数据库相关的操作,也可实现其他类似的操作
1) 执行mongo操作
#!/bin/bash source ~/.bashrc MONGO_BIN=/usr/bin/ $MONGO_BIN/mongo 127.0.0.1:27017 << EOF use test_db db.test_table.find().count() EOF
2) 执行mysql操作
#!/bin/bash source ~/.bashrc MYSQL_BIN=/usr/bin/ $MYSQL_BIN/mysql -h 127.0.0.1 -utest -ptest << EOF use test_db select count(*) from SongInfo; EOF
3) 登陆ftp服务器
#!/bin/bash source ~/.bashrc ftp -niv <<- EOF open ip port user username passward bin get $1 bye EOF