本文提供数据库安装脚本,有部分需要优化,就是脚本中的方法执行存在前后依赖,但是代码里面没有对上一个执行结果进行判断,如果提供的路径和安装包没有问题,脚本能够正常执行

 #!/bin/bash
# install postgre
# base_path=$(cd $(dirname ${BASH_SOURCE[]}); pwd )
base_path="/opt"
# Pg database installation package name
pg_name="./postgresql-9.6.15-1-linux-x64-binaries.tar.gz"
# Pg database installation path
pg_deploy_path="$base_path/postgreSQL"
# Directory of data stored in the pg database
pg_data_path="${pg_deploy_path}/data"
# Directory of data stored in the pg database
user_name='pguser' # unzip pg
function pg_untar(){
if [ -d ${pg_deploy_path} ];then
echo "pg has been installed"
else
if [ ! -e ${pg_name} ];then
echo "Missing pg installation package"
else
mkdir -p ${pg_deploy_path}
tar -zxf ${pg_name} -C ${pg_deploy_path}
fi
fi
} # Create a Linux user to log in to the PG database
function pg_create_user(){
# user_exist=`cat /etc/passwd | grep '^${user_name}:' -c`
egrep "^${user_name}" /etc/passwd >/dev/null
if [ $? -eq ]; then
pass=$(perl -e 'print crypt($ARGV[0], "password")' $user_name)
useradd -m -p $pass ${user_name}
#useradd -m -p 'postgres' ${user_name}
[ $? -eq ] && echo "user [${user_name}] has been added to system!" || echo "Failed to add user [${user_name}]"
else
echo "user [${user_name}] exists"
fi
} #init pg
function pg_init(){
#Create a data directory
mkdir -p ${pg_data_path}
touch ${pg_deploy_path}/logfile
#Grant user access
chown -R ${user_name} ${pg_data_path}
chown ${user_name} ${pg_deploy_path}/logfile # init database
su - ${user_name} -c "${pg_deploy_path}/pgsql/bin/initdb -D ${pg_data_path}"
} #Modify config of the pg database
#
function pg_modify_config(){
id_path=${pg_data_path}/postgresql.conf
local_path=${pg_data_path}/pg_hba.conf
localip=$(/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")
if [ -d ${pg_data_path} ];then
chown -R 'root' ${pg_data_path}
#Modify listening ip
sed -i "s@#listen_addresses = 'localhost'@listen_addresses = \'${localip}\'@g" $id_path
#Modify Trust client ip
#sed -i "s@#listen_addresses = 'localhost'@listen_addresses = \'${localip}\'@g" $id_path
sed '86 ahost all all 0.0.0.0/0 trust' -i $local_path
chown -R ${user_name} ${pg_data_path}
else
echo "You need to initialize the database with the command:\n\t ${pg_deploy_path}/pgsql/bin/initdb -D ${pg_data_path} "
fi
} # start pg database
function pg_start(){
su - ${user_name} -c "${pg_deploy_path}/pgsql/bin/pg_ctl -D ${pg_data_path} -l ${pg_deploy_path}/logfile start"
}
# create default database bms_ops
function pg_createdb(){
sleep 3s
default_db="bms_ops"
su - ${user_name} -c "${pg_deploy_path}/pgsql/bin/createdb -O ${user_name} ${default_db}"
}
#Open port
function pg_open_port(){
isopen=$(firewall-cmd --query-port=/tcp)
if [ 'no' == $isopen ];then
firewall-cmd --add-port=/tcp --permanent>/dev/null
firewall-cmd --reload>/dev/null
else
echo "port 5432 already opened"
fi } echo "============== start install pg =============="
if [ -d ${pg_deploy_path} ];then
echo "pg has been installed"
else
pg_untar
pg_create_user
pg_init
pg_modify_config
pg_start
pg_createdb
pg_open_port
fi
echo "============== finish installing pg =============="

linux安装postgresql数据库的更多相关文章

  1. Linux 安装 PostgreSQL

    Linux 安装 PostgreSQL CentOS 7 安装 PostgreSQL 10 步骤 官网安装步骤,选择服务器和数据库版本,会给出相应的安装命令 # 安装 yum install -y h ...

  2. Windows Azure上的Odoo(OpenERP)-1.创建Ubuntu虚拟机,安装PostgreSQL 数据库

    前提是您必须拥有Windows Azure的账号,如果没有的话,可以去Windows Azure 中国区网站申请免费试用账号.哈哈,我就是第一批申请的试用账号,感觉自己挺幸运的.申请的过程就不写了,请 ...

  3. Windows安装PostgreSQL数据库 无法初始化数据库问题

    背景 由于项目的需要,使用PostgreSQL数据库,因此在Windows上安装PostgreSQL数据库.但是在安装后,无法访问本地数据库,这个时候查看/data目录,没有任何文件.而且安装过程中, ...

  4. linux下PostgreSQL数据库的源码安装

    实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...

  5. [zz]安装PostgreSQL数据库(Linux篇)

    0.编译环境 Linux: CentOS 5.5 gcc: 4.1.2 1. 安装PostgreSQL 1) 解压postgresql-9.1.7.tar.bz2 #tar jxvf postgres ...

  6. 安装PostgreSQL数据库(Linux篇)

    0.编译环境 Linux: CentOS 5.5 gcc: 4.1.2 1. 安装PostgreSQL 1) 解压postgresql-9.1.7.tar.bz2 #tar jxvf postgres ...

  7. [亲测有效] - Linux安装PostgreSQL

    本文章来为各位介绍一篇关于postgresql 9.4 在linux环境的安装步骤详解,希望文章能够对各位新手朋友带来帮助的哦.   环境说明系统:centos 6.4 64位软件:postgresq ...

  8. linux安装postgresql

    第一步在编译安装postgresql源码的时候,需要用到以下依赖,若本机没有的话,需要提前安装依赖环境,执行以下命令:yum install gcc gcc-c++yum install zlib-d ...

  9. 国产龙芯服务器源码安装PostgreSQL数据库的方法

    1. 公司最近有一些国产化项目的需求, 要求在国产CPU的服务器上面安装pg数据库等. 2.. 但是差查了下中标麒麟的官网,在龙芯MIPS的操作系统包源里面仅有 postgreSQL 9.2 版本的r ...

随机推荐

  1. Java基础 -1.3

    CLASSPATH 为了 可以在不同的目录中都可以执行d:\java\Hello.class文件 只能够依靠CLASSPATH环境变量 在cmd中 SET CLASSPATH = d:\java 当设 ...

  2. 含有namespace的类型如何访问

    下图中包含的String类型,如果想要在别的文件中去访问的话: 1)需要include"ApiClient.hpp" 2)需要使用oatpp::web::client::ApiCl ...

  3. SpringMvc 初步配置

    spring-aop.jarspring-bean.jarspring-context.jarspring-core.jarspring-web.jarspring-webmvc.jarcommons ...

  4. 【PAT甲级】1018 Public Bike Management (30 分)(SPFA,DFS)

    题意: 输入四个正整数C,N,S,M(c<=100,n<=500),分别表示每个自行车站的最大容量,车站个数,此次行动的终点站以及接下来的M行输入即通路.接下来输入一行N个正整数表示每个自 ...

  5. HTML标签,CSS简介

    一  http://www.w3school.com.cn/tags/tag_span.asp

  6. 五、linux基础-shell机制

    5.1 shell机制1.Linux命令程序员可以看懂,但是操作系统是不懂这句话的含义的.因为所有的命令必须重新被解释然后传递给Linux内核才可以执行.这一被解释的机制就是shell. Linux命 ...

  7. linux中cp指令前面加反斜杠

    在cp指令前面加反斜杠可以不弹出是否覆盖的询问而直接覆盖! 如:cp /app/WEB-INF/com/cfg.properties /app_bak/WEB-INF/com/cfg.properti ...

  8. JQuery - $(this) 加 siblings() 的使用

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  9. JavaScript图形实例:正弦曲线

    正弦曲线的坐标方程为: Y=A*SIN(X)    (A为振幅) 1.正弦曲线 在弧度为0~4π的正弦曲线上取360个点,将这些点用线连接起来,可以绘制出正弦曲线.编写如下的HTML代码. <! ...

  10. Ubuntu下安装GTK的三种方法

    我利用此方法成功在UBUNTU 10.04下安装GTK 2.20.1. 一.安装 1.安装gcc/g++/gdb/make 等基本编程工具 $sudo apt-get install build-es ...