iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何理解iredmail下安装的脚本
  • 453
分享到

如何理解iredmail下安装的脚本

2023-06-09 18:06:19 453人浏览 安东尼
摘要

这篇文章主要讲解了“如何理解iredmail下安装的脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解iredmail下安装的脚本”吧!iredmail是一套以postfix为核心的

这篇文章主要讲解了“如何理解iredmail下安装的脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解iredmail下安装的脚本”吧!

iredmail是一套以postfix为核心的整合邮件系统的安装脚本,可以达到快速部署邮件服务器的目的。

经过上面的一系列分析后,进入到获取安装包的步骤,作者在此处单独写了一个脚本,get_all.sh,我们继续分析这个脚本

_ROOTDIR="$(pwd)"
CONF_DIR="${_ROOTDIR}/../conf"

. ${CONF_DIR}/global
. ${CONF_DIR}/core
. ${CONF_DIR}/iredadmin

程序的意思是利用pwd获取当前目录,并定义为_ROOTDIR, 接着根据_ROOTDIR,获得CONF目录的具体位置。从而引入global, core ireadmin

iredadmin 文件里定义了一系列的关于版本和关于iredadmin的变量,估计在后面下载文件时可能会用到,如图

如何理解iredmail下安装的脚本

接着分析。。。。

check_user root
check_hostname
check_runtime_dir

根据我的经验,显然check_user  check_hostname check_runtime_dir 都是shell的函数,我们来一一分析

check_user  定义在conf/core文件中,具体的代码如下:

check_user(){ # Check special user privilege to execute this script. if [ X"$(id -u)" != X"$(id -u ${1})" ]; then  ECHO_ERROR "Please run this script as user: ${1}."  exit 255 else  if [ X"$(id -u)" == X"0" ]; then   export PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"  else   :  fi fi}

id  -u    显然是获得登录用户的ID,在调用函数时,check_user  root ,显然是根据返回结果判断是否为root,如果不是root,就返回错误。

exit   255   关于这个,大家参考这篇文章,https://www.yisu.com/article/73377.htm

else之后的判断不知道是否有点多余,不过作者可能是为了保险,再次判断是否登录用户的ID为0,从而设置PATH的值

$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,linux在这些目录下进行搜寻编译链接。

目前设置的这个值里,比正常的多了/root/bin/,不知道这步在后面的程序中是否起着什么作用,暂时看不出来。

接着。。。

check_hostname 是分析服务器主机名是否符合规则的,代码如下:

check_hostname(){ echo ${HOSTNAME} | grep '\.' &>/dev/null [ X"$?" != X"0" ] && \  ECHO_ERROR "Please configure a fully qualified domain name (FQDN) in /etc/hosts before we Go further.\n\nExample:\n\n127.0.0.1 mail.iredmail.org mail localhost\n" && \  exit 255}

程序的意思是利用${HOSTNAME}获得主机名,如果主机名里没.  就判断主机名为不合理的,接着给出了例子,接着退出程序。

shell的函数都是比较简单的,接着分析check_runtime_dir,代码如下:

check_runtime_dir() { [ -d ${RUNTIME_DIR} ] || mkdir -p ${RUNTIME_DIR} # Cleanup rm -f ${RUNTIME_DIR}/.pkg_install_failed &>/dev/null}

-d  判断目录是否存在

mkdir –p    建立目录

此处应该是先做判断,目录存在清理失败文件,不存在建立目录

三个分别检查用户,主机名,状态目录是否存在的函数执行完毕后,说明安装条件适合,接下来的代码定义了下载安装包的地址:

export IREDMAIL_MIRROR="${IREDMAIL_MIRROR:=Http://iredmail.org}"
export PKG_DIR="${_ROOTDIR}/pkgs"
export PKG_MISC_DIR="${_ROOTDIR}/misc"
http://iredmail.org  这是作者的官方主页,也是下载安装包的地址 。因为该脚本对多个主流的LINUX都做支持,所以下面这段代码是针对多系统进行分析判断的,看代码

if [ X"${DISTRO}" == X"RHEL" ]; then # Special package. # command: which. export BIN_WHICH='which' export PKG_WHICH='which' # command: wget. export BIN_WGET='wget' export PKG_WGET='wget'elif [ X"${DISTRO}" == X"DEBIAN" -o X"${DISTRO}" == X"ubuntu" ]; then if [ X"${OS_ARCH}" == X"x86_64" ]; then  export pkg_arch='amd64' else  export pkg_arch="${OS_ARCH}" fi # Special package. # command: which. export BIN_WHICH='which' export PKG_WHICH="debianutils" # command: wget. export BIN_WGET='wget' export PKG_WGET="wget" # command: dpkg-scanpackages. export BIN_CREATEREPO="dpkg-scanpackages" export PKG_CREATEREPO="dpkg-dev"fi

感谢各位的阅读,以上就是“如何理解iredmail下安装的脚本”的内容了,经过本文的学习后,相信大家对如何理解iredmail下安装的脚本这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何理解iredmail下安装的脚本

本文链接: https://www.lsjlt.com/news/257060.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解iredmail下安装的脚本
    这篇文章主要讲解了“如何理解iredmail下安装的脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解iredmail下安装的脚本”吧!iredmail是一套以postfix为核心的...
    99+
    2023-06-09
  • 下载安装脚本
    1. 下载宝塔面板安装包 首先,你需要从宝塔官网下载适用于你的服务器操作系统的安装包。宝塔面板支持多种操作系统,包括 CentOS、Ubuntu、Debian、Fedora 等。 2. 安装宝塔面板 下载完成后,你可以通过 SSH 登录到...
    99+
    2023-10-26
    脚本
  • Linux下如何利用脚本静默安装Oracle11G
    小编给大家分享一下Linux下如何利用脚本静默安装Oracle11G,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sed -i ...
    99+
    2024-04-02
  • Linux下如何实现SNMP一键安装的Shell脚本
    这篇文章主要介绍Linux下如何实现SNMP一键安装的Shell脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Net-SNMP是一个免费的、开放源码的SNMP实现,以前称为UCD-SNMP。SNMP 很多都用其安...
    99+
    2023-06-09
  • mysql中如何实现自动化脚本安装的shell脚本
    这篇文章将为大家详细讲解有关mysql中如何实现自动化脚本安装的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。脚本处理逻辑流程图    ...
    99+
    2024-04-02
  • linux如何安装php扩展脚本
    这篇文章将为大家详细讲解有关linux如何安装php扩展脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。测试环境:ubuntu 12.04 php 5.3.x#!/bin/bash#Program:#&...
    99+
    2023-06-09
  • shell 脚本如何安装PHP扩展
    这篇文章主要介绍“shell 脚本如何安装PHP扩展”,在日常操作中,相信很多人在shell 脚本如何安装PHP扩展问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”shell 脚本如何安装PHP扩展”的疑惑有所...
    99+
    2023-06-09
  • 如何使用shell脚本安装lnmp
    这篇文章给大家介绍如何使用shell脚本安装lnmp,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、简介使用shell脚本安装lnmp,纯粹是偷懒,平时安装一些东西都写成脚本了,方便以后在其他机器安装的时候不用再去查...
    99+
    2023-06-09
  • shell脚本如何自动安装jdk
    这篇文章主要介绍shell脚本如何自动安装jdk,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.安装准备jdk-8u221-linux-x64.tar.gz jdk压缩包(需要放在opt目录下)2.shell脚本2...
    99+
    2023-06-09
  • 如何理解Linux Shell脚本
    本篇内容介绍了“如何理解Linux Shell脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Shell简介诸多类Unix操作系统的设...
    99+
    2023-06-09
  • 如何实现vtune自动安装脚本
    本篇内容介绍了“如何实现vtune自动安装脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash#!/usr/b...
    99+
    2023-06-09
  • Linux下mysql5.6.24(二进制)自动安装脚本
    本文为大家分享了Linux环境下mysql5.6.24自动安装脚本代码,供大家参考,具体内容如下 说明: 一、本脚本仅供测试使用,若正式环境想要使用,需更改脚本的一些参数。 二、使用本脚本之前,需保证lin...
    99+
    2024-04-02
  • MySQL如何实现各版本自动安装脚本
    这篇文章主要介绍MySQL如何实现各版本自动安装脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 描述:    1 . 所有版本都...
    99+
    2024-04-02
  • shell脚本如何实现一键安装php7
    这篇文章给大家分享的是有关shell脚本如何实现一键安装php7的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如下所示:#!/bin/bashphp_gz_file='/home/php/Download...
    99+
    2023-06-09
  • mydumper如何实现自动化安装脚本
    这篇文章主要介绍了mydumper如何实现自动化安装脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。#!/usr/bin/expect -fset hname [linde...
    99+
    2023-06-04
  • 如何实现vtune自动化安装脚本
    本篇内容介绍了“如何实现vtune自动化安装脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash#!/usr/...
    99+
    2023-06-09
  • 如何理解Shell脚本数组
    这篇文章主要介绍“如何理解Shell脚本数组”,在日常操作中,相信很多人在如何理解Shell脚本数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Shell脚本数组”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-09
  • windows下如何安装node版本管理工具nvm
    这篇文章将为大家详细讲解有关windows下如何安装node版本管理工具nvm,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。事情通常开始于在本机电脑上需要维护旧项目和新项...
    99+
    2024-04-02
  • 如何理解javascript脚本语言
    这篇文章主要介绍“如何理解javascript脚本语言”,在日常操作中,相信很多人在如何理解javascript脚本语言问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解...
    99+
    2024-04-02
  • 如何理解Linux下软件包的安装与管理
    本篇内容主要讲解“如何理解Linux下软件包的安装与管理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Linux下软件包的安装与管理”吧!  先来看看Linux软件扩展名。软件后缀为.r...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作