我的编程空间,编程开发者的网络收藏夹
学习永远不晚

shell脚本如何实现公司项目部署交付环境预检查

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

shell脚本如何实现公司项目部署交付环境预检查

小编给大家分享一下shell脚本如何实现公司项目部署交付环境预检查,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

示例代码:

#!/usr/bin/env bashroot=$(  cd $(dirname $0)  pwd)source "$root"/dragonrcCPU=$(echo "`cat /proc/cpuinfo | grep "physical id" | uniq | wc -l`H")MEM=$(echo "$((`cat /proc/meminfo | grep MemTotal |awk '{print $2}'` / 1000000))G")TIME=$(date)rpm -q ansible &> /dev/nullif [ $? -ne 0 ];then    sh ${root}/scripts/install_ansible.sh &> /dev/nullfiHINT(){    read -p "请按回车继续:"}COPY_KEY(){    echo    echosh ${root}/scripts/copy-key.sh    echo    echo}CK_UMASK(){UMASK_NUM=$(ansible dragon -m shell -a "umask"|grep 0022|wc -l)ALL_HOSTS=$(echo "${ALL_NODES}"|awk -F"," '{for(i=1;i<=NF;i++) print $i}'|wc -l)    echo    echo -e "\033[5;32;31m正在为您检测umask值,请耐心等待。。。\033[0m"    echo    if [ ${UMASK_NUM} -ne ${ALL_HOSTS} ];then        echo -e "\033[1;32;31m检测到节点umask值非022,将为您执行修改操作!\033[0m"        sleep 3            ansible dragon -m shell -a "sed -i 's/^.*umask.*/umask 022/g' /etc/profile"            ansible dragon -m shell -a "source /etc/profile"            ansible dragon -m shell -a "sed -i 's/^.*umask.*/umask 022/g' /etc/bashrc"            ansible dragon -m shell -a "source /etc/bashrc"        echo -e "\033[1;32;31m-------------------------------以下为各节点umask值-------------------------------\033[0m"            ansible dragon -m shell -a "umask"        echo -e "\033[1;32;31m提示:如果以上返回结果非0022,那就是自动设置失败,请手动调整umask值!\033[0m"    elseclear        echo -e "\033[1;32;31m所有节点umask值全部为022\033[0m"echo    fi}CK_NETWORK_NAME(){    echo    echo -e "\033[1;32;31m-------------------------------检测所有节点主机网卡名-------------------------------\033[0m"    IFS=',' read -r -a nodes <<<"${ALL_NODES}"    for p in "${nodes[@]}"; do    echo    ssh -q -o 'StrictHostKeyChecking no' -o 'UserKnownHostsFile /dev/null' -T $p ip addr |grep $p | awk '{print $2,$7}'    echo    done    echo -e "\033[1;32;35m提示:请您把网卡名复制到dragonrc配置~\033[0m"    echo -e "\033[1;32;31m-------------------------------以上为所有节点主机网卡名-------------------------------\033[0m"    echo}CK_HOST_NAME(){    echo    echo -e "\033[1;32;31m-------------------------------检测所有节点主机名-------------------------------\033[0m"    ansible dragon -m shell -a "hostname"            echo -e "\033[1;32;31m提示:检查主机名,不能是出现大写或特殊符号~\033[0m"    echo -e "\033[1;32;31m-------------------------------以上为所有节点主机名-------------------------------\033[0m"    echo}CK_HOSTS(){    echo    echo -e "\033[1;32;31m-------------------------------检测所有节点Hosts配置-------------------------------\033[0m"    sh ${root}/scripts/hostname.sh    echo -e "\033[1;32;31m-------------------------------以上为所有节点Hosts配置-------------------------------\033[0m"    echo}CK_TIME(){    echo    echo -e "\033[1;32;31m----------------------------------检测所有节点时间----------------------------------\033[0m"    ansible dragon -m shell -a "date"    echo -e "\033[1;32;35m提示:误差为1~2秒为正常情况,如差距太大则需要做ntpd时间同步~\033[0m"    echo -e "\033[1;32;31m----------------------------------以上为所有节点时间----------------------------------\033[0m"    echo}CK_DISK(){    echo    echo -e "\033[1;32;31m----------------------------------检测所有节点磁盘挂载----------------------------------\033[0m"    ansible dragon -m shell -a "df -h"    echo -e "\033[1;32;31m----------------------------------以上为所有节点磁盘挂载----------------------------------\033[0m"    echo}CK_SYSTEM(){    echo    echo -e "\033[1;32;31m----------------------------------检测所有节点系统版本信息----------------------------------\033[0m"    ansible dragon -m shell -a "cat /etc/redhat-release"    echo -e "\033[1;32;31m----------------------------------以上为所有节点系统版本信息----------------------------------\033[0m"    echo}CK_FIREWALLD(){    echo    echo -e "\033[1;32;31m----------------------------------检测所有节点防火墙是否关闭----------------------------------\033[0m"    ansible dragon -m shell -a "firewall-cmd --state"    echo -e "\033[1;32;35m提示:如果发现防火墙状态为Running,不用担心,all_sh.sh环境初始化配置已经配好永久关闭哦~\033[0m"    echo -e "\033[1;32;31m----------------------------------以上为所有节点防火墙状态信息----------------------------------\033[0m"    echo}CK_SELINUX(){    echo    echo -e "\033[1;32;31m----------------------------------检测所有节点SELINUX是否关闭----------------------------------\033[0m"    ansible dragon -m shell -a "sestatus"    echo -e "\033[1;32;35m提示:如果发现状态为enabled,不用担心,all_sh.sh环境初始化配置已经配好永久关闭哦~\033[0m"    echo -e "\033[1;32;31m----------------------------------以上为所有节点SELINUX状态信息----------------------------------\033[0m"    echo}while truedo    clear    echo "-------------------------------------------------------"    echo "|                           |"    echo "|       XXXXXXXXXXX部署预检查环境        |"    echo "|                           |"    echo "-------------------------------------------------------"    echo "   ***** 检测到您的机器配置为:${CPU} ${MEM}  ***** "    echo "-------------------------------------------------------"    echo "|        1. 一键SSH免密互信          |"    echo "|        2. 检查各节点主机umask        |"    echo "|        3. 检查各节点网卡名          |"    echo "|        4. 检查各节点主机名          |"    echo "|        5. 检查各节点hosts配置        |"    echo "|        6. 检查各节点主机时间         |"    echo "|        7. 检查各节点主机磁盘挂载       |"    echo "|        8. 检查各节点主机系统版本       |"    echo "|        9. 检查各节点防火墙是否关闭      |"    echo "|       10. 检查各节点SELINUX是否关闭     |"    echo "-------------------------------------------------------"    echo    echo "  // 当前时间:${TIME} //"    echo    read -p "请您选择[1-10/q退出]选项:" THINGcase $THING in       1)       COPY_KEY       HINT       ;;       2)       CK_UMASK       HINT       ;;       3)       CK_NETWORK_NAME       HINT       ;;       4)       CK_HOST_NAME       HINT       ;;       5)       CK_HOSTS       HINT       ;;       6)       CK_TIME       HINT       ;;       7)       CK_DISK       HINT       ;;       8)       CK_SYSTEM       HINT       ;;       9)       CK_FIREWALLD       HINT       ;;       10)       CK_SELINUX       HINT       ;;       q)       exit       ;;       *)       read -p "请您选择[1-10/q退出],输入回车继续:"       ;;       esacdone

以上是“shell脚本如何实现公司项目部署交付环境预检查”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

shell脚本如何实现公司项目部署交付环境预检查

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

下载Word文档

猜你喜欢

shell脚本如何实现公司项目部署交付环境预检查

小编给大家分享一下shell脚本如何实现公司项目部署交付环境预检查,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!示例代码:#!/usr/bin/env bashr
2023-06-09

shell脚本实现公司项目部署交付环境预检查的思路

大型项目环境预检查脚本,根据自己实际情况修改脚本中变量,给大家一个思路,转载请注明出处~#!/usr/bin/env bash root=$(cd $(dirname $0)pwd )source "$root"/dragonrcCPU=$
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录