Linux中使用Cron定時執(zhí)行SQL任務的實現(xiàn)步驟
前言
演示數(shù)據(jù)需要每天更新監(jiān)控數(shù)據(jù),不想手動執(zhí)行,想到以下解決方案
- navicat 創(chuàng)建定時任務
- java服務定時執(zhí)行
- linux crontab 定時執(zhí)行sql腳本
一、方案分析
我選擇了第三個方案
- 方案一需要本地navicat運行時才可以執(zhí)行定時,當周末或請假等未開機情況下,數(shù)據(jù)得不到更新
- 方案二成本高,服務表示自己不純潔了 O(∩_∩)O
- 方案三還不錯,什么?不會?我教你?。?/li>
二、使用步驟
我的數(shù)據(jù)庫是kingbase,根據(jù)自己的數(shù)據(jù)庫適應性調(diào)整
1.準備腳本
- 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,但是服務器上沒有這個文件,后來發(fā)現(xiàn)kingbase對應的是ksql
cd / find -name ksql
沒有權限執(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
,結果查不到ksql路徑。
嘗試更換服務器用戶為kingbase依舊無效。
解決方法: 先cd到ksql目錄,后執(zhí)行./ksql/data/cron/update_status_nohup.out目錄沒有權限
采用root用戶去執(zhí)行crontab
,各個用戶之間的crontab是隔離的。記得校準服務器時間,或者查詢好服務器時間
到此這篇關于Linux中使用Cron定時執(zhí)行SQL任務的實現(xiàn)步驟的文章就介紹到這了,更多相關Linux Cron定時執(zhí)行SQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
簡單架設SSH+Squid代理服務器的自由上網(wǎng)通道的方法
Squid是一個高性能的代理緩存服務器,但缺點是網(wǎng)址是以明文的形式發(fā)送的。在我們的特殊互聯(lián)網(wǎng)環(huán)境中,就算使用這樣的代理服務器,打開網(wǎng)頁時也常常會被“Reset”。2011-03-03Linux中如何修改~/.bashrc或/etc/profile設置環(huán)境變量
這篇文章主要介紹了Linux中如何修改~/.bashrc或/etc/profile設置環(huán)境變量問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05PHP腳本內(nèi)存泄露導致Apache頻繁宕機解決方法
這篇文章主要介紹了PHP腳本內(nèi)存泄露導致Apache頻繁宕機解決方法,本文的原因是因為MaxRequestsPerChild參數(shù)沒有配置正確,配置MaxRequestsPerChild后解決了本文中的問題,需要的朋友可以參考下2014-09-09