簡體   English   中英

Postgresql 的 Crontab 失敗,找不到命令

[英]Crontab for Postgresql failing with command not found

我為 Postgresql 設置的 cronjob 遇到了一些問題。 它報告錯誤psql: command not found 請參閱下面的錯誤日志 output。

僅供參考,當我通過將/var/opt/tableau/tableau_server/TIL_scripts/FIREPROD-DWH_Daily_Extract.bash粘貼到我的 CLI 中並按返回來手動運行 bash 腳本時,它會啟動並在遠程數據庫上成功添加一條消息,然后在遠程數據庫上成功添加“作業”到日志。

但是,同一腳本的 crontab 會啟動,然后立即失敗。 我在這里想念什么?

1) 下面的錯誤日志

/var/opt/tableau/tableau_server/TIL_scripts/FIREPROD-DWH_Daily_Extract.bash: line 1: psql: command not found
/var/opt/tableau/tableau_server/TIL_scripts/FIREPROD-DWH_Daily_Extract.bash: line 2: psql: command not found

2) FIREPROD-DWH_Daily_Extract.bash文件內容如下:

export PGPASSWORD=FIREPRODW@r3h0u11; psql -h 'fireprod-pgsql-rds.testdomain.net' -U 'fireproddbwhadmin' -d 'fireprod-datawarehouse' -c 'select schedules_ldn_daily()'
export PGPASSWORD=FIREPRODW@r3h0u11; psql -h 'fireprod-pgsql-rds.testdomain.net' -U 'fireproddbwhadmin' -d 'fireprod-datawarehouse' -c 'select schedules_tv_daily()'

3) root 用戶的.bashrc 文件如下:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions
export PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/tableau/tableau_server/packages/customer-bin.20201.20.0614.2321:/home/ec2-user/.local/bin:/home/ec2-user/bin:/var/opt/tableau/tableau_server/data/tabsvc/services/pgsql_0.20201.20.0614.2321/pgsql/bin

4) echo $PATH 顯示如下:

[root@FIREPROD-02 ec2-user]# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/opt/tableau/tableau_server/packages/customer-bin.20201.20.0614.2321:/var/opt/tableau/tableau_server/data/tabsvc/services/pgsql_0.20201.20.0614.2321/pgsql/bin

5) crontab 配置如下:

00 2 * * * /var/opt/tableau/tableau_server/TIL_scripts/FIREPROD-DWH_Daily_Extract.bash >> /home/ec2-user/fireprod-dwh_daily_extract.log 2>&1
00 2 28-31 * * [ $(date -d tomorrow +\%d) -eq 1 ] && /var/opt/tableau/tableau_server/TIL_scripts/FIREPROD-DWH_Monthly_Extract.bash >> /home/ec2-user/fireprod-dwh_monthly_extract.log 2>&1

crontab 有它自己的路徑。 如果您希望它找到 psql,您需要將 PATH 添加到 crontab 頂部:

PATH=/usr/local/bin, etc

或在腳本中給出 psql 的完整路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM