工作中常见函数后台周期执行的情况,Oracle有job实现,gp数据库可以通过shell+crontab实现。流程如下:

  1. gpadmin用户下创建函数sh脚本。
  2. 将sh挂在crontab任务上

################################详细描述###################################

一、在路径 /home/summer 下创建文件 task_month.sh ,内容如下:

#!/bin/bash

##导入gp数据库脚本

source /usr/local/greenplum-db/greenplum_path.sh

##填写IP,端口,数据库名称,用户,密码。

export PGHOST="132.***.**.2"

export PGPORT="5432"

export PGDATABASE="lntms"

export PGUSER="gpadmin"

export PGPASSWORD="gpadmin"

##时间处理,作为入参

v_month=`date -d"-1 month" '+%Y%m'`

v_month_two=`date -d"-2 month" '+%Y%m'`

##打印执行开始时间,参数等信息

echo -e " \n"`date -d today '+%Y-%m-%d %T'`

echo "v_month:"${v_month}

echo "v_month_two:"${v_month_two}

echo "参数:"${1}

##将入参赋值给变量

v_type=${1}

##根据入参做判断加工

if [ ${v_type} -eq 1 ] ; then

echo "report begin..."

psql -tc "select rpt.p_rpt_test1('${v_month_two}');"

##中间睡3秒吧

sleep 3

psql -tc "select rpt.p_rpt_test1('${v_month}');"

echo "report end ... SUCCESS ..."

elif [ ${v_type} -eq 2 ] ; then

echo "pro begin..."

psql -tc "select rpt.p_rpt_test2('${v_month}','${v_month_two}','hb');"

echo "pro end ... SUCCESS ..."

else

echo "参数未知"

fi

二、将sh放到crontab上执行吧!

##将执行后的结果保存到日志文件中

/home/summer/task_month.sh 1 >> /home/summer/task_month.log

大功告成!

上一篇:【 PostgreSQL】十条实用数据库SQL优化建议

【 PostgreSQL】后台周期执行函数实例(shell+crontab)的更多相关文章

  1. shell实例利用crontab自动清除日志

    shell实例利用crontab自动清除日志 程序运行会产生很多的日志,对于无用的日志手动删除比价麻烦,写一个自动执行的命令是很有必要的. 删除文件shell命令 find 对应目录 -mtime + ...

  2. Linux crontab 每5秒钟执行一次 shell 脚本 的方法

    Linux crontab 每5秒钟执行一次 shell 脚本 的方法 由于 Linux 的 crontab 的定时命令格式如下: minute hour day-of-month month-of- ...

  3. 【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中

    问题: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示:  问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法 ...

  4. 【springMVC 后台跳转前台】1.使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中 ----2.前后台都没有报错,不能进入ajax回调函数

    问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示:  问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方 ...

  5. 如何解决微信小程序界面适配问题-引用-生命周期回调函数-优化机制-样式引入

    如何解决微信小程序界面适配问题 .wxss page{ height: 100%; width:750rpx; } this.setData({ imageWidth: wx.getSystemInf ...

  6. vue之生命周期钩子函数之运用

    一.什么是生命周期钩子函数: 每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等.同时在这个过程中也会运行 ...

  7. CListCtrlEx:一个支持文件拖放和实时监视的列表控件——用未公开API函数实现Shell实时监视

    一.需求无论何时,当你在Explorer窗口中创建.删除或重命名一个文件夹/文件,或者插入拔除移动存储器时,Windows总是能非常快速地更新它所有的视图.有时候我们的程序中也需要这样的功能,以便当用 ...

  8. Linux中的定时自动执行功能(at,crontab)

    Linux中的定时自动执行功能(at,crontab) 概念 在Linux系统中,提供了两种提前对工作进行安排的方式 at 只执行一次 crontab 周期性重复执行 通过对这两个工具的应用可以让我们 ...

  9. 什么是vue生命周期和生命周期钩子函数?

    原文地址 vue生命周期简介 咱们从上图可以很明显的看出现在vue2.0都包括了哪些生命周期的函数了. 生命周期探究 对于执行顺序和什么时候执行,看上面两个图基本有个了解了.下面我们将结合代码去看看钩 ...

随机推荐

  1. Android 开发工具类 31_WebService 获取手机号码归属地

    AndroidInteractWithWebService.xml <?xml version="1.0" encoding="utf-8"?> & ...

  2. IDEA Community(社区版)再谈之无奈之下还是去安装旗舰版

    不多说,直接上干货! 前言 相信很多人,跟我一样,一开始,接触spark,肯定会首选IntelliJ IDEA的社区版Community. IntelliJ IDEA号称当前Java开发效率最高的ID ...

  3. Notepad++软件的下载与安装步骤(图文详解)

    不多说,直接上干货! 这款软件非常好用!!!   1.下载Notepad++软件 Notepad++非常好用,想要安装首先我们要下载(废话)~ 百度搜索“Notepad++”直接就可以找到主页: 主页 ...

  4. tomcat启动(四)Catalina分析-server的init()方法

    上一回load()方法解析讲到xml解析完成. load()内部接下来会获取server getServer().setCatalina(this); 这个server从createStartDige ...

  5. tomcat启动(三)Catalina分析-load方法分析

    load()方法按从上到下顺序分析(主要分析本人所没学过的知识点,其它略过...). Digester类作用 使用sax技术对xml进行解析 未开始解析时Digester.push(this)这个用来 ...

  6. Innosetup(pascal)标签控件label换行

    Label1.AutoSize := false; //先关闭自适应 Label1.WordWrap := true; //开启换行

  7. [转]VS2013中使用Git建立源代码管理

    本文转自:https://blog.csdn.net/bodybo/article/details/38976549 第一次在VS2013中使用Git,也是第一次使用Git,各种不熟悉.百度各种使用经 ...

  8. Head First Python学习笔记3——持久存储

    经过上几章的学习,完成如下任务:读取一个文本文件里的内容,将每一行的内容按“:”分割成两部分,根据分割出第一项判断并分别放入两个列表里,去除首尾空白,在屏幕上打印. # 两个列表用于存储数据man=[ ...

  9. 解决 Jquery UI Tooltip 用在Select 的BUG

    今天遇到一个奇葩问题, 在chrome下一切正常的 页面,在IE 下Select无法选中! 是的  ,就是无法选中!!! 效果就是这样的.http://jsfiddle.net/slolife/dp4 ...

  10. ffmpeg按比例缩放--"width / height not divisible by 2" 解决方法

    最近在处理视频的时候,有这么一个需求 如果视频的分辨率宽度大于960的话,就把宽度设为960,而高度按其比例进行缩放 如果视频的分辨率高度大于540的话,就把高度设为540,而宽度按其比例进行缩放 之 ...