当前位置: 首页 > article >正文

如何在Linux中使用Cron定时执行SQL任务

文章目录

  • 前言
  • 一、方案分析
  • 二、使用步骤
    • 1.准备脚本
    • 2.crontab脚本执行
  • 踩坑

前言

演示数据需要每天更新监控数据,不想手动执行,想到以下解决方案

  1. navicat 创建定时任务
  2. java服务定时执行
  3. linux crontab 定时执行sql脚本

一、方案分析

我选择了第三个方案

  • 方案一需要本地navicat运行时才可以执行定时,当周末或请假等未开机情况下,数据得不到更新
  • 方案二成本高,服务表示自己不纯洁了 O(∩_∩)O
  • 方案三还不错,什么?不会?我教你啊!

二、使用步骤

我的数据库是kingbase,根据自己的数据库适应性调整

1.准备脚本

  1. sql文件 test.sql
-- 天气监测数据
UPDATE "natural_monitor"."weather_monitor_data" 
SET data_time = data_time :: TIME + CURRENT_DATE;
  1. 执行sql文件的执行文件 sql_script.sh
#!/bin/bash
cd /data/Kingbase/ES/V8/KESRealPro/V008R006C007B0024/Server/bin
password=数据库密码 ./ksql -p 54321 -d 数据库名称 -U 数据库账号 -f /data/cron/*.sql

2.crontab脚本执行

crontab -e
0 12 * * * /data/cron/sql_script.sh >> /data/cron/log_info.out 2>&1 &

踩坑

  1. 不知道ksql 路径
    因为kingbase安装的驱动是pgsql的,所以开始查的方向是psql,但是服务器上没有这个文件,后来发现kingbase对应的是ksql
cd /
find -name ksql
  1. 没有权限执行ksql
    查到的ksql路径是/data/Kingbase/ES/V8/KESRealPro/V008R006C007B0024/Server/bin
    所以运行脚本改为password=数据库密码 ./data/Kingbase/ES/V8/KESRealPro/V008R006C007B0024/Server/bin/ksql -p 54321 -d 数据库名称 -U 数据库账号 -f /data/cron/*.sql,结果查不到ksql路径。
    尝试更换服务器用户为kingbase依旧无效。
    解决方法: 先cd到ksql目录,后执行./ksql

  2. /data/cron/update_status_nohup.out目录没有权限
    采用root用户去执行crontab,各个用户之间的crontab是隔离的。

  3. 记得校准服务器时间,或者查询好服务器时间


在这里插入图片描述


http://www.kler.cn/a/390790.html

相关文章:

  • MySQL:CRUD
  • Java项目实战II基于微信小程序的个人行政复议在线预约系统微信小程序(开发文档+数据库+源码)
  • D67【python 接口自动化学习】- python基础之数据库
  • SpringBoot后端解决跨域问题
  • Python标准库模块的使用:math、datetime
  • Spark 核心概念与宽窄依赖的详细解析
  • ROM修改进阶教程------安卓14 安卓15去除app签名验证的几种操作步骤 详细图文解析
  • 机器学习(基础2)
  • HCIP-快速生成树RSTP
  • redis:zset有序集合命令和内部编码
  • 漏洞扫描工具和漏洞利用工具
  • C++ 11新特性:列表初始化,右值引用与移动语义
  • 《TCP/IP网络编程》学习笔记 | Chapter 9:套接字的多种可选项
  • 【JavaEE】JUC的常见类
  • Android 开发指南:初学者入门
  • 如何比较科学的设置代理ip
  • react 类组件和函数组件区别
  • 【系统架构设计师】真题论文: 论数据挖掘技术的应用(包括解题思路和素材)
  • 一些npm总结(持续更新...)
  • pwn学习笔记(12)--Chunk Extend and Overlapping
  • 羊城杯2020Easyphp
  • 如何使用 VNC 服务器连接桌面
  • 新的恶意软件活动通过游戏应用程序瞄准 Windows 用户
  • kafka+zookeeper的搭建
  • Mysql个人八股总结
  • 置信传播算法复现