Debian

watch 一個不顯示完整連接字元串的 PostgreSQL 查詢

  • September 22, 2021

我想與團隊成員線上分享PostgreSQL數據庫(託管在 dockerized Debian Bullseye 上)的一些實時修改watch(如果您知道任何其他工具,最好是pgAdmin4 ,但我無法找到一種方法觀看現場修改,請告訴我)。

目前我正在這樣做:

$  PGPASSWORD=***************
$ reset
$ watch -n 1.0 "psql \
-d postgresql://postgres:${PGPASSWORD}@localhost:5432/dbname \
 -c 'select id,name,customer,order,product from public.table where id in (1,2,3,4) order by (id)';"

這樣密碼就不會儲存在 bash 歷史記錄中(請注意第一行前面的空格),並且在呼叫後它在螢幕上不再可見reset(主機在 Ubuntu 18.04 上)。

但是當watch命令啟動時,它實際上在螢幕頂部顯示了完整連接查詢字元串到純文字的“翻譯”,因此顯示了數據庫密碼(或任何其他變數):

Every 1.0s: psql -d postgresql://postgres:mysecretpassword@localhost:5439/dbname -c (...)
...

有隱藏的可能嗎?

是的,使用-t選項,如文件所述:turn off header.

這只會列印呼叫命令的輸出。

更多資訊:

$ watch --help

Usage:
watch [options] command

Options:
 -b, --beep             beep if command has a non-zero exit
 -c, --color            interpret ANSI color and style sequences
 -d, --differences[=<permanent>]
                        highlight changes between updates
 -e, --errexit          exit if command has a non-zero exit
 -g, --chgexit          exit when output from command changes
 -n, --interval <secs>  seconds to wait between updates
 -p, --precise          attempt run command in precise intervals
 -t, --no-title         turn off header
 -x, --exec             pass command to exec instead of "sh -c"

-h, --help     display this help and exit
-v, --version  output version information and exit

For more details see watch(1).

引用自:https://unix.stackexchange.com/questions/670102