这是我的shell脚本
#!/bin/bash
psql --host=127.0.0.1 --port=5432 --dbname=SIEM --username=dbauser
vacuumdb --analyze --verbose --table 'vuln' SIEM
但它的工作不正常并给出错误:
linux-lxh4:/home/gaurav # ./script.sh
psql (9.2.5)
Type "help" for help.
SIEM=# \q
vacuumdb: could not connect to database root: FATAL: Peer authentication failed for user "root"
Edit1:我使用了这段代码:
psql --host=127.0.0.1 --port=5432 --dbname=SIEM --username=dbauser
VACUUM FULL VERBOSE vuln
这是错误:
./script.sh: line 4: VACUUM: command not found
答案 0 :(得分:5)
来自Postgres VACUUM documentation
管理命令名为vacuum
而不是vacuumdb
。
我这里没有psql,但它应该是
#!/bin/bash
psql --host=127.0.0.1 --port=5432 --dbname=SIEM --username=dbauser
-c 'VACUUM VERBOSE ANALYZE vuln'
答案 1 :(得分:3)
如果您以后运行vacuumdb,则无需使用psql连接到Postgres。而是使用以下内容:
public class Test
{
private Tech tech = null;
...
public Tech GetExpectedTech(string condition)
{
...
return tech;
}
}
(或者在另一个答案中提到,您可以在使用psql连接后使用VACUUM SQL命令。语法不同,不使用“--xxxx”选项)
答案 2 :(得分:2)
我们在OLA中使用的bash脚本用于清空reportdb。
#!/bin/sh
dbname="reportsdb_new"
username="postgres"
psql $dbname $username << EOF
vacuum FULL VERBOSE ANALYZE ;
reindex database reportsdb_new ;
EOF