Linux中使用Cron定時(shí)執(zhí)行SQL任務(wù)的實(shí)現(xiàn)步驟
前言
演示數(shù)據(jù)需要每天更新監(jiān)控?cái)?shù)據(jù),不想手動(dòng)執(zhí)行,想到以下解決方案
- navicat 創(chuàng)建定時(shí)任務(wù)
- java服務(wù)定時(shí)執(zhí)行
- linux crontab 定時(shí)執(zhí)行sql腳本
一、方案分析
我選擇了第三個(gè)方案
- 方案一需要本地navicat運(yùn)行時(shí)才可以執(zhí)行定時(shí),當(dāng)周末或請(qǐng)假等未開(kāi)機(jī)情況下,數(shù)據(jù)得不到更新
- 方案二成本高,服務(wù)表示自己不純潔了 O(∩_∩)O
- 方案三還不錯(cuò),什么?不會(huì)?我教你啊!
二、使用步驟
我的數(shù)據(jù)庫(kù)是kingbase,根據(jù)自己的數(shù)據(jù)庫(kù)適應(yīng)性調(diào)整
1.準(zhǔn)備腳本
- sql文件
test.sql
-- 天氣監(jiān)測(cè)數(shù)據(jù) UPDATE "natural_monitor"."weather_monitor_data" SET data_time = data_time :: TIME + CURRENT_DATE;
- 執(zhí)行sql文件的執(zhí)行文件
sql_script.sh
#!/bin/bash cd /data/Kingbase/ES/V8/KESRealPro/V008R006C007B0024/Server/bin password=數(shù)據(jù)庫(kù)密碼 ./ksql -p 54321 -d 數(shù)據(jù)庫(kù)名稱 -U 數(shù)據(jù)庫(kù)賬號(hào) -f /data/cron/*.sql
2.crontab腳本執(zhí)行
crontab -e
0 12 * * * /data/cron/sql_script.sh >> /data/cron/log_info.out 2>&1 &
踩坑
- 不知道ksql 路徑
因?yàn)閗ingbase安裝的驅(qū)動(dòng)是pgsql的,所以開(kāi)始查的方向是psql,但是服務(wù)器上沒(méi)有這個(gè)文件,后來(lái)發(fā)現(xiàn)kingbase對(duì)應(yīng)的是ksql
cd / find -name ksql
沒(méi)有權(quán)限執(zhí)行ksql
查到的ksql路徑是/data/Kingbase/ES/V8/KESRealPro/V008R006C007B0024/Server/bin
所以運(yùn)行腳本改為password=數(shù)據(jù)庫(kù)密碼 ./data/Kingbase/ES/V8/KESRealPro/V008R006C007B0024/Server/bin/ksql -p 54321 -d 數(shù)據(jù)庫(kù)名稱 -U 數(shù)據(jù)庫(kù)賬號(hào) -f /data/cron/*.sql,結(jié)果查不到ksql路徑。
嘗試更換服務(wù)器用戶為kingbase依舊無(wú)效。
解決方法: 先cd到ksql目錄,后執(zhí)行./ksql/data/cron/update_status_nohup.out目錄沒(méi)有權(quán)限
采用root用戶去執(zhí)行crontab,各個(gè)用戶之間的crontab是隔離的。記得校準(zhǔn)服務(wù)器時(shí)間,或者查詢好服務(wù)器時(shí)間
到此這篇關(guān)于Linux中使用Cron定時(shí)執(zhí)行SQL任務(wù)的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Linux Cron定時(shí)執(zhí)行SQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何在Linux操作系統(tǒng)下安裝Apache服務(wù)的方法實(shí)例詳解
這篇文章主要介紹了如何在Linux操作系統(tǒng)下安裝Apache服務(wù)的方法,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Linux 塊設(shè)備驅(qū)動(dòng)代碼編寫
這篇文章主要介紹了Linux 塊設(shè)備驅(qū)動(dòng)代碼編寫,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
在Linux中列出Systemd下所有正在運(yùn)行的服務(wù)的方法指南
Systemd是Linux的系統(tǒng)和服務(wù)管理器; init進(jìn)程的替代品,與SysV 和LSB init腳本兼容,systemctl命令是管理systemd的主要工具,在這篇文章中,我們將演示如何 Linux中列出systemd下所有正在運(yùn)行的服務(wù),感興趣的同學(xué)可以借鑒閱讀2023-06-06
解決“WARNINGThe?remote?SSH?server?rejected?X11?forwardin
使用xshell連接服務(wù)器時(shí),出現(xiàn)了“WARNING!?The?remote?SSH?server?rejected?X11?forwarding?request.”,意思是“遠(yuǎn)程SSH服務(wù)器拒絕X11轉(zhuǎn)發(fā)請(qǐng)求”,這篇文章主要介紹了解決“WARNINGThe?remote?SSH?server?rejected?X11?forwarding?request.“警告,需要的朋友可以參考下2022-08-08
Ubuntu操作系統(tǒng)更換國(guó)內(nèi)源過(guò)程
文章介紹了如何將Ubuntu系統(tǒng)的軟件源更換為國(guó)內(nèi)的阿里源,包括備份原源列表、添加阿里源地址和公鑰、以及更新源和軟件版本的詳細(xì)步驟2026-03-03
windows apache環(huán)境下部署SSL證書讓網(wǎng)站支持https的配置方法

