自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Docker容器中的Postgresql備份腳本異常解決辦法

開(kāi)發(fā)
crontab定時(shí)實(shí)行卻報(bào)錯(cuò),報(bào)錯(cuò)信息為kubectl command not found,提示沒(méi)有找到kubectl指令。本文主要介紹對(duì)該報(bào)錯(cuò)信息的分析及其解決辦法。

本文基于K8S中Docker容器對(duì)postgres數(shù)據(jù)庫(kù)進(jìn)行備份的操作,編寫(xiě)好腳本后,手動(dòng)執(zhí)行腳本是正常的,但是crontab定時(shí)實(shí)行卻報(bào)錯(cuò),報(bào)錯(cuò)信息為kubectl command not found,提示沒(méi)有找到kubectl指令。

本文主要介紹對(duì)該報(bào)錯(cuò)信息的分析及其解決辦法。詳細(xì)內(nèi)容請(qǐng)參考下文。

一、查看數(shù)據(jù)庫(kù)環(huán)境

1、獲取數(shù)據(jù)庫(kù)所在節(jié)點(diǎn)

2、進(jìn)入數(shù)據(jù)庫(kù)對(duì)接節(jié)點(diǎn)容器

二、編寫(xiě)數(shù)據(jù)庫(kù)備份腳本

1、執(zhí)行指令# vim pgbackup.sh

#!/bin/bash
#設(shè)置系統(tǒng)變量
source /etc/profile
filename="`date +%F`_bak.sql"
#備份數(shù)據(jù)腳本
cat > /usr/local/backup/exportPG.sh <<EOF
#!/bin/bash
export PGUSER=****
export PGPASSWORD='******'
export PGHOST=172.**.**.**
export PGPORT=324**
#備份整個(gè)集群庫(kù)中的數(shù)據(jù)
#pg_dumpall -a > ${filename}
#備份整個(gè)集群庫(kù)包含建庫(kù)建表操作
pg_dumpall > ${filename}
EOF
#給執(zhí)行權(quán)限
chmod +x /usr/local/backup/exportPG.sh
#將服務(wù)器上的備份腳本復(fù)制到對(duì)應(yīng)容器中去
kubectl cp /usr/local/backup/exportPG.sh sso/********:/exportPG.sh
#在容器外執(zhí)行該腳本
kubectl exec -it ******** -n sso -- /exportPG.sh
#將備份后的數(shù)據(jù)文件復(fù)制到容器外
kubectl cp sso/********:${filename} /usr/local/backup/${filename}

2、授予備份腳本執(zhí)行權(quán)限

執(zhí)行指令# chmod +x
/usr/local/backup/pgbackup.sh

3、測(cè)試數(shù)據(jù)庫(kù)備份腳本

說(shuō)明:測(cè)試數(shù)據(jù)庫(kù)備份腳本,手動(dòng)執(zhí)行# sh pgbackup.sh的時(shí)候,備份正常。但是在使用crontab執(zhí)行任務(wù)定時(shí)執(zhí)行的時(shí)候,報(bào)kubectl command not found的錯(cuò)誤信息。

4、分析定時(shí)執(zhí)行的報(bào)錯(cuò)信息

說(shuō)明:crontab執(zhí)行計(jì)劃任務(wù)的時(shí)候并不知道所需要的特殊環(huán)境變量。所以要保證在shelll腳本中提供所有必要的路徑和環(huán)境變量,除了一些自動(dòng)設(shè)置的全局變量。

特別需要注意如下三點(diǎn):

(1)腳本中涉及文件路徑時(shí)寫(xiě)全局路徑;

比如:

上文所提到的數(shù)據(jù)備份腳本問(wèn)題,就是kubectl指令沒(méi)有寫(xiě)全路徑,正確的做法是,通過(guò)執(zhí)行指令# which kubectl查看指令kubectl的所在位置,讓后將腳本的指令路徑補(bǔ)全。

(2)腳本執(zhí)行要用到程序或其他環(huán)境變量時(shí),通過(guò)source命令引入環(huán)境變量;

比如:

在root的crontab文件中加入:

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin

(3)、如上文所述,當(dāng)手動(dòng)執(zhí)行腳本正常,但是crontab定時(shí)執(zhí)行報(bào)錯(cuò)的情況。就是環(huán)境變量問(wèn)題,可以在crontab中直接引入環(huán)境變量解決。

0 * * * * /etc/profile;/bin/bash /home/scripts/test.sh >/dev/null 2>&1

5、修改后的備份腳本

說(shuō)明:執(zhí)行指令# vim pgbackup.sh修改數(shù)據(jù)庫(kù)備份腳本,修改后的腳本如下

責(zé)任編輯:張燕妮 來(lái)源: 今日頭條
相關(guān)推薦

2009-12-07 18:38:16

WCF異常

2013-03-01 15:25:56

路由器網(wǎng)絡(luò)設(shè)備故障備分設(shè)備數(shù)據(jù)

2012-11-12 11:33:06

路由器組網(wǎng)H3C

2015-03-09 15:41:08

MongoDB查詢(xún)超時(shí)異常Socket Time

2024-10-07 08:26:05

編程Python異常處理

2024-01-04 16:27:16

2012-03-14 10:58:27

Java

2009-06-03 16:41:21

Eclipse亂碼Eclipse

2011-03-04 13:07:47

Filezilla

2011-01-19 17:54:48

2009-05-31 09:07:35

Oracle鎖定

2011-06-17 11:10:51

Qt 中文 輸出

2010-01-15 09:38:08

磁盤(pán)被寫(xiě)保護(hù)解決辦法

2017-05-04 20:15:51

iOSNSTimer循環(huán)引用

2009-02-18 09:30:10

AJAX跨域XML

2020-05-09 10:59:33

git cloneLinux文件

2015-01-04 13:56:44

DockerPostgreSQL

2009-12-03 17:36:02

PHP Date()出

2009-05-26 14:34:55

Ubuntuwubi臨時(shí)

2011-04-21 16:42:40

傳真機(jī)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)