Linux
如何在維護腳本中包含使用者“postgres”的密碼?
我正在設置一個 cron 作業來為 postgresql 數據庫做一些日常維護。腳本如下:
#!/bin/sh dbname="dbname" username="postgres" psql -d $dbname -U $username << EOF delete from links_link where submitted_on > now() - interval'4 days'; EOF
但是,當通過 crontab 執行時,這會失敗,因為我沒有為使用者提供密碼
postgres
。我的問題是:如何在 shell 腳本中包含使用者 postgres 的密碼?這將使我快速啟動並執行。其次,如何通過不必在腳本中顯式添加密碼來提高安全性?如果有人以前設置過這種東西,他們的經驗是最受歡迎的。提前致謝。
您可能想要切換到(或允許)身份驗證,然後創建一個具有相同名稱的本地系統使用者。然後,您可以以該使用者身份執行該腳本,它會使用該使用者登錄到 postgres。
https://www.postgresql.org/docs/9.0/static/auth-methods.html https://www.postgresql.org/docs/9.0/static/auth-pg-hba-conf.html
所以在 pg_hba.conf 中是這樣的:
本地數據庫名 someuser ident
然後重新啟動 postgres,你可以 su - someuser 並執行腳本。這比“本地所有信任”更安全,這是預設設置,將允許所有本地使用者無條件地連接到任何數據庫。