Linux中使用Cron定时执行SQL任务的实现步骤

 更新时间:2024年11月11日 10:27:25   作者:Mr-Wanter  
在Linux系统中,计划任务(Cron)是一种强大的工具,可以自动执行预定的任务,它非常适合定期运行脚本、备份数据、清理临时文件等一系列重复性任务,本文给大家介绍了如何在Linux中使用Cron定时执行SQL任务,需要的朋友可以参考下

前言

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

  • navicat 创建定时任务
  • java服务定时执行
  • linux crontab 定时执行sql脚本

一、方案分析

我选择了第三个方案

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

二、使用步骤

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

1.准备脚本

  • sql文件 test.sql
-- 天气监测数据
UPDATE "natural_monitor"."weather_monitor_data" 
SET data_time = data_time :: TIME + CURRENT_DATE;
  • 执行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 &

踩坑

  • 不知道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. 记得校准服务器时间,或者查询好服务器时间

到此这篇关于Linux中使用Cron定时执行SQL任务的实现步骤的文章就介绍到这了,更多相关Linux Cron定时执行SQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 云服务器部署 Web 项目的实现步骤

    云服务器部署 Web 项目的实现步骤

    本文主要介绍了云服务器部署Web项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Apache添加多端口及实现单ip多端口映射的方法

    Apache添加多端口及实现单ip多端口映射的方法

    这篇文章主要介绍了Apache添加多端口及实现单ip多端口映射的方法的相关资料,需要的朋友可以参考下
    2016-02-02
  • Vmware虚拟机中centOS7安装图文教程

    Vmware虚拟机中centOS7安装图文教程

    这篇文章主要为大家详细介绍了Vmware虚拟机中centOS7安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • centos 6.9 升级glibc动态库的详细过程

    centos 6.9 升级glibc动态库的详细过程

    glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。这篇文章主要介绍了centos 6.9 升级glibc动态库的详细过程,需要的朋友可以参考下
    2019-11-11
  • Centos7 mysql数据库安装及配置实现教程

    Centos7 mysql数据库安装及配置实现教程

    这篇文章主要介绍了Centos7 mysql数据库安装及配置实现教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Linux(Centos7)下redis5集群搭建和使用说明详解

    Linux(Centos7)下redis5集群搭建和使用说明详解

    这篇文章主要介绍了Linux(Centos7)下redis5集群搭建和使用说明 ,本文通过实例文字代码相结合的形式,给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • Linux动态链接库的使用

    Linux动态链接库的使用

    这篇文章主要介绍了Linux动态链接库的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • linux中rz上传、sz下载命令详解

    linux中rz上传、sz下载命令详解

    这篇文章主要介绍了linux中rz上传、sz下载命令详解的相关资料,需要的朋友可以参考下
    2018-08-08
  • linux系统下用户管理相关介绍

    linux系统下用户管理相关介绍

    大家好,本篇文章主要讲的是linux系统下用户管理相关介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦,方便下次浏览
    2021-12-12
  • Linux+Nginx+Php架设高性能WEB服务器

    Linux+Nginx+Php架设高性能WEB服务器

    来自wiki.nginx.org的关于Nginx的介绍
    2009-05-05

最新评论