Debian
watch
一個不顯示完整連接字元串的 PostgreSQL 查詢
我想與團隊成員線上分享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).