非交互式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 ...
随机推荐
- 【JavaScript&jQuery】5秒跳转
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...
- 【JavaScript】table显示问题
table有时显示出问题,解决办法如下: 添加<thead></thead>和<tbody></tbody>在table的外面添加<div> ...
- 20135239 益西拉姆 linux内核分析 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
https://drive.wps.cn/preview#l/759e32d65654419cb765da932cdf5cdc 本次直接在wps上写的,因为不能连同图片一起粘贴过来,一个一个粘比较费时 ...
- intellij 插件结构(文件结构以及概念层面上的结构)
1.插件内的文件 2.插件类加载器 3.插件组件(component) 4.插件的扩展以及扩展点(Extensions.Extension Points) 5.插件的Action 6.插件的Servi ...
- cp 带着属性复制过去,
sudo cp -ra store_bak/* store/ -r 所有文件循环都复制 -a 带着属性复制过去
- [吴恩达机器学习笔记]11机器学习系统设计3-4/查全率/查准率/F1分数
11. 机器学习系统的设计 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 11.3 偏斜类的误差度量 Error Metr ...
- Java enum的用法详解 (转)
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...
- package.json文档
之前在博客中写过一篇关于 " node.js的安装配置 " 的文章,里面有提到利用 gulp watch 来监听文档的变化.其中需要 package.json 文件才能实现效果,所 ...
- 使用git拉取github上的项目
一. 安装Git 去Git官网,下载安装包,一路点next,默认安装. 安装之后,在空白处右键,菜单显示有 Git GUI Here 和 Git Bash Here ,表示Git安装成功. 二. 配置 ...
- 免密码登录服务器python脚本
在自动化运维平台没有做完之前,常需要登录服务器做很多维护操作,每次找好长好长的密码,那么多服务器,你会疯掉的,所以瞎搞了以下脚本.先解一下燃眉之急,哈哈 cat login_root.exp #!/u ...