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

