Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux Cron定时执行SQL

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

作者:Mr-Wanter

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

前言

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

一、方案分析

我选择了第三个方案

二、使用步骤

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

1.准备脚本

-- 天气监测数据
UPDATE "natural_monitor"."weather_monitor_data" 
SET data_time = data_time :: TIME + CURRENT_DATE;
#!/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 &

踩坑

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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文