如何通过Linux脚本检查是否已安装PostgreSQL?

我想检入一个脚本,看看是否在Linux上安装了PostgreSQL并打印结果。有关如何进行检查的任何建议?

11个解决方案

70 votes

尝试echo $?命令怎么办?

如果要运行echo $?,但未安装Postgres,则似乎没有输出。 您只需准备好终端提示符即可接受另一个命令:

> which psql

>

但是,如果安装了Postgres,您将获得一个响应,并带有指向Postgres安装位置的路径:

> which psql

/opt/boxen/homebrew/bin/psql

查看echo $?,似乎还有一个可以帮助您的选择:

-s No output, just return 0 if any of the executables are found, or

1 if none are found.

因此,似乎只要您使用的任何脚本语言都可以执行终端命令,您就可以发送echo $?,并使用返回值确定是否已安装Postgres。 从那里您可以按自己的喜好打印结果。

我的机器上确实安装了postgres,所以我运行以下命令

> which -s psql

> echo $?

0

告诉我该命令返回了0,表示在我的计算机上找到了Postgres可执行文件。

这是有关使用echo $?的信息

campo answered 2020-02-22T02:26:41Z

8 votes

如果是基于debian的。

aptitude show postgresql | grep State

但是我想您可以尝试使用诸如--version之类的标志启动它,该标志仅打印一些信息并退出。

使用“服务postgres状态”进行了更新。 尝试:

service postgres status

if [ "$?" -gt "0" ]; then

echo "Not installed".

else

echo "Intalled"

fi

Draco Ater answered 2020-02-22T02:27:09Z

5 votes

没有直接的方法可以做到这一点。 您所要做的就是与程序包管理器(rpm,dpkg)进行检查,或者探查所需文件的可能位置。 或者,您可以尝试连接到可能的端口(5432),看看是否收到PostgreSQL协议响应。 但是,这一切都不会非常强大。 您可能需要查看您的要求。

Peter Eisentraut answered 2020-02-22T02:27:30Z

4 votes

没有一种简单的方法可以执行此操作,因为PostgreSQL可以通过许多不同的方式进行安装和设置:

从源安装在用户主目录中

从源安装到psql或PATH中,手动启动或由init脚本启动

从分发服务器psql/PATH软件包安装并通过init脚本启动

从第3方psql/PATH软件包安装,并通过init脚本启动

从软件包安装但未设置为开始

已安装客户端,连接到另一台计算机上的服务器

已安装并正在运行,但不在默认的psql或默认端口上

您不能依靠PATH上的psql。不能依靠系统上只有一个psql(可能以不同的方式安装多个版本)。 您不能基于端口执行此操作,因为不能保证它位于端口5432上,或者不能保证没有多个版本。

提示用户并询问他们。

Craig Ringer answered 2020-02-22T02:28:32Z

4 votes

如果您运行的是Debian Linux(或衍生版本),并且如果返回正值> which psql,则只需键入psql -V(大写“ V”),您将得到如下收益:psql (PostgreSQL) 9.4.8

Roland Shield answered 2020-02-22T02:28:54Z

3 votes

而且,如果其他一切都因这些出色的答案而失败,那么您始终可以像这样使用“查找”。 否则您可能需要使用sudo

如果您是root用户,只需键入$$> find / -name 'postgres'

如果您是用户,则需要sudo priv才能在所有目录中运行它

我以这种方式从pg_hba.conf基础运行,以找到在其中找到该元素的整个路径。这将返回其中带有“ postgres”的所有文件或目录。

寻找pg_hba.conf或275818855835055005500文件也可以做同样的事情。

netfluence answered 2020-02-22T02:29:32Z

2 votes

转到postgres db的bin目录,例如/opt/postgresql/bin并运行以下命令:

[...bin]# ./psql --version

psql (PostgreSQL) 9.0.4

干得好 。 。

Finn answered 2020-02-22T02:29:56Z

2 votes

aptitude show postgresql | grep Version为我工作

user2584621 answered 2020-02-22T02:30:16Z

1 votes

我们可以简单地写:

psql --version

输出显示如下:

psql (PostgreSQL) 11.5 (Ubuntu 11.5-1.pgdg18.04+1)

Chandan Sharma answered 2020-02-22T02:30:40Z

0 votes

您也可以在以下路径/opt/PostgresPlus/9.5AS/bin/中检入/opt安装

vinoy vincent answered 2020-02-22T02:31:01Z

0 votes

多年以来,我一直使用以下命令:

ps aux | grep postgres

一方面,它是有用的(对于任何过程),并且给出了有用的信息(但来自过程POV)。 但另一方面,它用于检查您已经安装的服务器是否正在运行。

在某种程度上,我找到了本教程,其中显示了locate命令的用法。 在这种情况下,看起来该命令更重要了。

johnniepop answered 2020-02-22T02:31:30Z

linux 查看pgsql端口,如何通过Linux脚本检查是否已安装PostgreSQL?相关推荐

  1. linux查看80端口连接ip,Linux通过netstat命令查看80端口连接数的方法

    服务器上的一些统计数据: 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数 ps -ef|grep httpd| ...

  2. linux查看某端口进程占用,Linux下查看某端口占用进程

    文章分类:操作系统 在Linux操作系统中 查看占用某一端口的进程是什么:#lsof -i:端口号 或者 netstat -apn | grep redis [root@192_168_56_28 ~ ...

  3. linux查看串口端口,规范模式Linux串行端口

    小编典典 是否将0xD0xA(CRLF)字节放在传输线的开头以告知read()函数数据已准备好被读取? 在 "串行端口" 或 "硬件" 没有一个概念 " ...

  4. linux查看7799端口使用情况,Linux /proc/net/ 下文件用途

    转载: http://jlspyaozhongkai.blog.163.com/blog/static/116057464200962724623344/ 系统版本 cat /proc/version ...

  5. Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序

    文章目录: 1 linux查看那端口监听情况 2 Linux查看某个端口对应的进程号和程序 1 linux查看那端口监听情况 linux中可以使用netstat命令查看端口监听情况,首先来看一下该命令 ...

  6. linux查看主机端口进程命令

    linux查看主机端口进程命令 1.查看主机信息 #more /etc/hosts #Do not remove the following line, or various programs #th ...

  7. linux查看3306端口号是否打开

    linux查看3306端口号是否打开 在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询. netstat命令各个参 ...

  8. linux查询80端口,Linux 查看 80 端口的占用情况

    lsof -i:端口号 eg: lsof -i:80 lsof -i:21 [root@localhost ~]# lsof -i: COMMAND PID USER FD TYPE DEVICE S ...

  9. Linux 查看占用端口进程的绝对路径

    Linux 查看占用端口进程的绝对路径 目 录 *Linux 查看占用端口进程的绝对路径* @[toc](目 录) 1. 本机环境 2. 查询占用的端口号 3. 查看进程文件夹 4. 进程结束时, 该 ...

  10. linux查看进程运行日志文件,【Linux】常用指令、ps查看进程、kill杀进程、启动停止tomcat命令、查看日志、查看端口、find查找文件...

    1.说出 10 个 linux 常用的指令 1) ls 查看目录中的文件 2)cd /home 进入 '/ home' 目录:cd .. 返回上一级目录:cd ../.. 返回上两级目录 3)mkdi ...

最新文章

  1. uboot、kernel和rootfs烧录
  2. 成功修改fastreport3.15,使其支持中日韩四(CJK)中编码PDF的导出
  3. ab的压力测试(转)
  4. Python文件格式 .py .pyc .pyw .pyo .pyd的主要区别
  5. android配置activity
  6. JDK、JRE、JVM三者间的关系
  7. 优化算法求解复杂约束问题策略(以粒子群算法为例讲解求解复杂约束问题的多种策略)
  8. mycat从0到成功进行分表操作
  9. 启动go服务_内网穿透工具 FRP公网服务端、内网客户端快速配置文件说明
  10. # bucketSort 箱排序 也称桶排序
  11. VUE day_08(7.26)学子商城项目详细版
  12. Ant安装与配置build.xml文件说明
  13. Asterisk内核 拾遗
  14. 'wx' is not defined no-undef
  15. AI 去掉图片的背景色
  16. 视频监控技术的发展对于市场的影响越来越大
  17. n子棋,你能下赢电脑吗,来玩玩吧
  18. 【技术分享】甲骨文首约DTCC 大秀数据库技术创新
  19. 在JDBC中实现SQL语句的模糊查询
  20. AWVS13的安装过程

热门文章

  1. 判断输入的年月日是否合法
  2. 多元有序logistic回归_stata速学|logistic回归分析
  3. ajaxfileupload 返回值_Ajaxfileupload 上传文件后返回response的contentType错误问题
  4. sqlhelp(sqlite)
  5. PHP 数字缩短(最多1倍)与还原
  6. 几万字的博文,你自己会看吗
  7. LINUX SHELL使用while循环数组
  8. 体验迟到:果然是魔鬼定律,一路上多种障碍
  9. U盘插在前面板不认,可以试试插在后面板
  10. curses.h: No such file or directory