Shell脚本中时间处理
Shell脚本中时间处理
1.脚本内容
#!/bin/bash
#环境变量
#设置环境变量和sql文件格式相符
source /etc/profile
export LD_LIBRARY_PATH="/usr/lib/oracle/12.1/client64/lib"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export LANG=en_US.UTF-8
date=`cat /home/oracle/channelMonitoring/date/trade_zf`
sysdate=`date +"%s"`
date2=`date +"%s" -d "${date}"`
x=`expr \${date2} - \${sysdate}`
if [ $x -lt 1800 ]; then
#初始变量
CHECKORAHOST=172.16.219.101
FILEDIR="/home/oracle/channelMonitoring"
SQLDIR="${FILEDIR}/sql/trade_zf.sql"
DATADIR="${FILEDIR}/data/trade_zf.txt"
DATEFLAG="/home/oracle/channelMonitoring/date/trade_zf"
cat /dev/null > ${SQLDIR}
cat /dev/null > $DATADIR
echo -n "select ('trade_zf'||',trade_code='||tr.trade_code||',status='||tr.status||',merchant='||m.merchant_code||',channel='||tr.bank_code||',bank='||tr.fld3||' value='||(case when tr.status=2 then 1 else 0 end)||' '||ceil((tr.trade_end_time - to_date('1970-01-01','yyyy-mm-dd'))*86400 - TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))*3600)||round(dbms_random.value(100000000,999999999)) ) as \"插入语句\" from tvpay2.trade_record tr
join tvpay2.merchant m on tr.provider_id = m.id
where (tr.trade_code like 'ZF%' or tr.trade_code = 'DK0003' or tr.trade_code = 'DK0026' ) and ((to_date('$date', 'yyyy-mm-dd hh24:mi:ss')-to_date('1970-01-01','yyyy-mm-dd hh24:mi:ss'))*86400 - (tr.trade_end_time-to_date('1970-01-01','yyyy-mm-dd hh24:mi:ss'))*86400) between 0 and 1800 and tr.status in (2,3);
" >> $SQLDIR
sqlplus -s user/password@x.x.x.x:1521/orcl<<EOF
set echo off;
set feedback off;
set head off;
set pagesize 0;
set linesize 433;
set termout off;
define fi1= '${DATADIR}'
prompt *** Spooling to &fi1
spool &fi1
@${SQLDIR};
spool off;
exit;
EOF
sed -i 's/[ \t]*\$//g' ${DATADIR}
curl -i -XPOST 'http://x.x.x.x:8086/write?db=monitor' --data-binary @${DATADIR}
date2=`date +"%s" -d "${date}"`
date3=1800
nextdate=`expr \$date2 + \$date3`
echo $nextdate
nextdate=`date -d @${nextdate} "+%Y-%m-%d %H:%M:%S"`
cat /dev/null > ${DATEFLAG}
echo \${nextdate} >> ${DATEFLAG}
else
echo "已经执行过了,请过30分钟之后在执行。"
fi
2.注意事项
2.1清空文件
cat /dev/null > 目标文件 ###echo "" > 目标文件有空行
2.2shell调用sql文
汉字以及双引号需要使用转义字符\字符
2.3sql文调用shell变量
‘${date}’ 需要加单引号
2.4算法使用
expr 以及if语句中的判断使用lt
###备注
export LD_LIBRARY_PATH="/usr/lib/oracle/12.1/client64/lib"
在定时任务中,没有这行,可能执行会报错
###备注
export NLS_LANG="AMERICAN_AMERICA.UTF8"
放在配置文件中,防止中文乱码
start_seconds=\$(date --date="\$starttime" +%s)
如何将一个时间格式的变量变换成秒
Shell脚本中时间处理的更多相关文章
- shell脚本中>/dev/null的含义
shell脚本中>/dev/null的含义 shell脚本中有段使用sqlplus的部分: sqlplus ${user_id} <<! >/dev/null spool sp ...
- Shell脚本中的并发(转)
转自http://blog.csdn.net/wangtaoking1/article/details/9838571 主要记录一下Shell脚本中的命令的并发和串行执行. 默认的情况下,Shell脚 ...
- linux,shell脚本中获取脚本的名字,使用脚本的名字。
需求描述: 写shell脚本的过程中,有时会需要获取脚本的名字,比如,有的时候,脚本 中会有usage()这种函数,可能就会用到脚本的名字. 实现方法: shell脚本中,通过使用$0就可以获取到脚本 ...
- 转 在shell脚本中使用expect实现scp传输问题
1.安装expect expect用于shell脚本中自动交互,其是基于tcl编程语言的工具.所以安装expect首先安装tcl.本文中使用的是expect5.45和tcl8.6.6. 安装tcl [ ...
- shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...
- Linux centosVMware shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
一. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚 ...
- shell脚本中的各种表达式介绍和使用
#前言:在shell脚本中,有各种的表达式,包括有条件测试表达式,文件表达式,字符串表达式,整数表达式,接下来我们来了解一下他们的使用方法 1.条件测试表达式 #首先来看一下条件测试语法 #条件测试语 ...
- 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
- shell脚本中的反引号使用 `
反引号是~的英文切换 在shell脚本中,反引号允许将shell命令的输出赋值给变量. test=`date` 这样shell会执行反引号中的命令.并将执行的结果赋值给变量tests.
随机推荐
- jzoj5991. 【北大2019冬令营模拟2019.1.6】Juice
题面 题解 好迷-- //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define ...
- css文本之蛇
文本之蛇 css把文本当做一行来处理,把他们放在一个看不见的盒子里面.盒子遇到容器的外边界会折行.所有的文本属性都应用于这个盒子,而不是包含文本的容器. 最有用的8个文本属性 文本缩进(text-in ...
- 计算机网络自顶向下方法第2章-应用层(application-layer).1
2.1 应用层协议原理 2.1.1网络应用程序体系结构 1)在客户-服务器体系结构 (client-server architecture)中,有一个总是打开的主机称为服务器,它服务于来自许多其他称为 ...
- boot接入elasticsearch
boot接入elasticsearch 参考博客:https://blog.csdn.net/li521wang/article/details/83792552 项目源码demo:https://g ...
- Zynq7000开发系列-6(QT开发环境搭建:Ubuntu、Zynq)
操作系统:Ubuntu14.04.5 LTS 64bit Qt:Qt 5.4.2 (qt-opensource-linux-x64-5.4.2.run.qt-everywhere-opensource ...
- POJ1129(贪心)
笔者休息娱乐.贪心即可,爱怎么暴力怎么暴力.莽WA,改了几下算法发现是输出中二了-- int T, color[26], tot; bool adj[26][26]; string s; void g ...
- [WOJ4354] 蜀石经
题目链接: 点我 题目分析: 大模拟,貌似\(O(n^2)\)也可以卡常过,复杂度正确的做法是用优先队列维护. 代码: #include<bits/stdc++.h> #define N ...
- 洛谷 P2623 物品选取
https://www.luogu.org/problemnew/show/P2623 https://www.luogu.org/blog/test-1/solution-p2623 重点就是甲类物 ...
- 2个rman自动恢复的脚本
### scripts 1--the scirpt is used for restore db from vcs to a point to time recovery--and the targe ...
- 17115 ooxx numbers 交表
17115 ooxx numbers 时间限制:1000MS 内存限制:65535K提交次数:0 通过次数:0 题型: 编程题 语言: G++;GCC Description a number ...