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ù)名稱(chēng) -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ù)名稱(chēng) -U 數(shù)據(jù)庫(kù)賬號(hào) -f /data/cron/*.sql
,結(jié)果查不到ksql路徑。
嘗試更換服務(wù)器用戶(hù)為kingbase依舊無(wú)效。
解決方法: 先cd到ksql目錄,后執(zhí)行./ksql/data/cron/update_status_nohup.out目錄沒(méi)有權(quán)限
采用root用戶(hù)去執(zhí)行crontab
,各個(gè)用戶(hù)之間的crontab是隔離的。記得校準(zhǔn)服務(wù)器時(shí)間,或者查詢(xún)好服務(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下如何對(duì)端口流量進(jìn)行統(tǒng)計(jì)
本篇文章主要介紹了Linux下如何對(duì)端口流量進(jìn)行統(tǒng)計(jì),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05簡(jiǎn)單架設(shè)SSH+Squid代理服務(wù)器的自由上網(wǎng)通道的方法
Squid是一個(gè)高性能的代理緩存服務(wù)器,但缺點(diǎn)是網(wǎng)址是以明文的形式發(fā)送的。在我們的特殊互聯(lián)網(wǎng)環(huán)境中,就算使用這樣的代理服務(wù)器,打開(kāi)網(wǎng)頁(yè)時(shí)也常常會(huì)被“Reset”。2011-03-03Linux中如何修改~/.bashrc或/etc/profile設(shè)置環(huán)境變量
這篇文章主要介紹了Linux中如何修改~/.bashrc或/etc/profile設(shè)置環(huán)境變量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Linux下部署springboot項(xiàng)目的方法步驟
這篇文章主要介紹了Linux下部署springboot項(xiàng)目的方法步驟,由于springboot是內(nèi)嵌了tomcat,所以可以直接將項(xiàng)目打包上傳至服務(wù)器上,具體實(shí)例方法大家參考下本文2018-06-06PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機(jī)解決方法
這篇文章主要介紹了PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機(jī)解決方法,本文的原因是因?yàn)镸axRequestsPerChild參數(shù)沒(méi)有配置正確,配置MaxRequestsPerChild后解決了本文中的問(wèn)題,需要的朋友可以參考下2014-09-09Linux中如何通過(guò)端口號(hào)查找進(jìn)程號(hào)
這篇文章主要介紹了Linux中如何通過(guò)端口號(hào)查找進(jìn)程號(hào)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05