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

如何在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.lryc.cn/news/482529.html

相关文章:

  • 数据集划分
  • 带你读懂什么是AI Agent智能体
  • react动态路由
  • Linux基础(十四)——BASH
  • 架构师备考-概念背诵(系统架构)
  • 如何让ffmpeg运行时从当前目录加载库,而不是从/lib64
  • Kafka-Controller选举
  • 必知的 Vue3 组件传值技巧:解锁组件交互新姿势
  • 【论文阅读】医学SAM适配器:适应医学图像分割的任意分割模型
  • 创新体验触手可及 紫光展锐携手影目科技推出AI眼镜开放平台
  • 115页PDF | 埃森哲_XX集团信息化能力成熟度评估及能力提升方案(限免下载)
  • NumPy,科学计算领域中的Python明星库!
  • Hadoop生态圈框架部署(六)- HBase完全分布式部署
  • python怎么解决中文注释
  • 【Unity】Game Framework框架学习使用
  • Linux(CentOS 7) yum一键安装mysql8
  • Kafka 快速入门(一)
  • 丹摩征文活动 | SD3+ComfyUI的图像部署实践
  • H.265流媒体播放器EasyPlayer.js网页web无插件播放器:如何优化加载速度
  • 【Linux】进程状态的优先级
  • react中的组件传参
  • HTML5:网页开发的新纪元
  • CKA认证 | Day2 K8s内部监控与日志
  • 电信网关配置管理系统 upload_channels.php 文件上传致RCE漏洞复现
  • ubuntu更改max_map_count
  • 《NPU、CPU、GPU 算力定义和计算方式》
  • 初级数据结构——顺序表
  • 游戏引擎学习第五天
  • 智能社区服务小程序+ssm
  • glide性能优化实战