非交互式shell脚本案例-实现自主从oracle数据库获取相关数据,并在制定目录生成相应规则的文件脚本
get_task_id 脚本内容
#!/usr/bin/expect
#配置登陆数据库的端口
set port 22
#配置登陆数据库的ip地址
set oracleip 10.0.4.41
#配置数据库实例名
set DSN bms
#配置数据库用户名
set username sa
#配置数据库登陆密码
set password oracle
spawn ssh -p $port oracle@$oracleip
expect {
"yes/no" {send "yes\r"}
"*Password: " {send "oracle\r"}
}
expect "oracle@linux*"
send "sqlplus $username/$password\r"
expect "SQL>"
send "spool taskid.txt\r"
send "select task_id from data_task_records where task_source=2 and download_flag=0 and task_state=0;\r"
send "spool off\r"
send "quit\r"
spawn scp oracle@$oracleip:/home/oracle/taskid.txt .
expect "Password: "
send "oracle\r"
expect eof
task_file脚本内容
#!/bin/bash
#配置任务需要的号码文件个数(不包括0文件)
numfile=1
#配置号码文件的大小
taskfilesize='158'
#配置号码文件下载的ftp服务器的ip地址
ftpip='10.0.4.41'
#配置号码文件下载的ftp服务器的用户名
ftpname='msgplus'
#配置号码文件下载的ftp服务器登陆密码
ftppswd='cdsf119'
#配置延迟时间长短(s:秒,m:分钟)
delay='5m'
#ftp上传的路径
upload_file='/home/msgplus/sp/task'
#本地文件命名
file_name='11.txt'
Upload_ftp_task_file()
{
ftp -i -n $ftpip <<EOF
user $ftpname $ftppswd
cd $upload_file
put $taskname
bye
EOF
}
Create_task_file()
{
taskid=$(grep "^ [0~9]*" taskid.txt)
for list in $taskid
do
for ((i=$numfile;i>=0;i=i-1))
do
case `expr length "$i"` in
1)
taskname=$list'_RECEPTOR_000'$i'_'$taskfilesize'.txt';;
2)
taskname=$list'_RECEPTOR_00'$i'_'$taskfilesize'.txt';;
esac
cp $file_name $taskname
Upload_ftp_task_file $ftpip $ftpname $upload_file $ftppswd $taskname
echo `date "+%Y-%m-%d %H:%M:%S"`" 任务$list上传号码文件$taskname成功" >>file.log
rm $taskname
done
done
}
main ()
{
touch file.log
while true
do
expect -f get_task_id.sh
Create_task_file $numfile $taskfilesize $file_name
sleep $delay
done
}
main $delay
非交互式shell脚本案例-实现自主从oracle数据库获取相关数据,并在制定目录生成相应规则的文件脚本的更多相关文章
- 登录式与非登录式&交互式与非交互式shell及其环境初始化过程
交互式shell和非交互式shell(interactive shell and non-interactive shell) 交互式模式就是在终端上执行,shell等待你的输入,并且立即执行你提交的 ...
- 交互式shell和非交互式shell、登录shell和非登录shell的区别
交互式shell和非交互式shell.登录shell和非登录shell的区别.首先,这是两个不同的维度来划分的,一个是是否交互式,另一个是是否登录. 交互式shell和非交互式shell(intera ...
- Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
脚本优化-参数化之关联MySQL数据库获取数据 by:授客 QQ:1033553122 测试环境: Loadrunner 11 Win7 64位 实操: 1. 安装MySQL ODBC驱动程序 O ...
- 交互式shell和非交互式shell的区别
交互式模式就是shell等待你的输入,并且执行你提交的命令.这种模式被称作交互式是因为shell与用户进行交互.这种模式也是大多数用户非常熟悉的:登录.执行一些命令.签退.当你签退后,shell也终止 ...
- 基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据
这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ...
- Linux sh脚本用spool导出oracle数据库指定表表数据
脚本如下,已验证可用,可配合crontab使用. 1 #!/bin/bash cd /opt/oracle/datafor_kf #redirect environment variables sou ...
- /etc/profile与/etc/bashrc、交互式与非交互式、login与non-login shell的差别
线上的memcached又挂了.仍然没有得到core文件. 排查原因,同事发现启动memcached的脚本存在可疑问题. 问题一:没有设置memcached工作文件夹,有可能core dump时没有工 ...
- 《学渣Linux笔记》——关于.bashrc与profile(涉及交互式与非交互式、登录与非登录shell)
<学渣Linux笔记>--关于.bashrc与profile(涉及交互式与非交互式.登录与非登录shell) 1.基本概念(个人理解) 交互式shell:等待用户输入,并执行相应操作的sh ...
- Shell学习——Shell分类:登录shell和非登陆shell 交互shell和非交互shell
1.从两个不同维度来划分,是否交互式,是否登录 2.交互式shell和非交互式shell 交互式模式:在终端上执行,shell等待你的输入,并且立即执行你提交的命令.这种模式被称作交互式是因为shel ...
随机推荐
- element-ui中单独引入Message组件的问题
import Message from './src/main.js'; export default Message; 由于Message组件并没有install 方法供Vue来操作的,是直接返回的 ...
- What Is The Promiscuous Mode
What Is The Promiscuous Mode? Some Network Interface Cards (NICs) may not allow network traffic afte ...
- Qt Widgets、QML、Qt Quick的区别
Qt Widgets.QML.Qt Quick的区别 简述 看了之前关于 QML 的一些介绍,很多人难免会有一些疑惑: Q1:QML 和 Qt Quick 之间有什么区别? Q2:QtQuick 1. ...
- java学习3-Maven的使用
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Depen ...
- 电子商务(电销)平台中财务模块(Finance)数据库设计明细
以下是自己在电子商务系统设计中的数据库设计经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 资金账户表 (finance_account)|-- 自动编号|-- 用户编号|-- 预付款 (ad ...
- [CodeForces]String Reconstruction
http://codeforces.com/contest/828/problem/C 并查集的神奇应用. #include<bits/stdc++.h> using namespace ...
- 如何将下载的web工程导入到eclipse中使用
如果你是喜欢编程的,在你的开发工具中一定有许多项目,就像小编一样(PS:小编只想默默地装一X): 我们选中其中的一个项目,然后[Ctrl + C]复制,再[Ctrl + V]粘贴到桌面: 那么 ...
- varchar字段
varchar 最长26000多,实际使用最好不要超过255,会占内存 可以考虑text
- webservice 采用SSL实现加密传输
本文转自:http://book.51cto.com/art/200906/129770.htm http://yeweiyun868.blog.163.com/blog/static/5637844 ...
- Tensorflow BatchNormalization详解:3_使用tf.layers高级函数来构建带有BatchNormalization的神经网络
Batch Normalization: 使用tf.layers高级函数来构建带有Batch Normalization的神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 吴 ...