开发者社区> 技术mix呢> 正文

lnmp_auto:自动化安装lnmp环境脚本

简介:
+关注继续查看

朋友找我在一台机器上帮忙安装下discuz。想着搭建过好几次的lnmp了,但是还没有使用过“一键安装”的自动化脚本,去网上有搜索出来,但是运行的时候发现用root运行别人的脚本还是真危险的事情,于是明白这不是个轮子,而是个井,每个程序员有必要自己挖一口的了。所以想着自己写个自动化安装lnmp的脚本lnmp_auto。

源代码在github上:https://github.com/jianfengye/lnmp_auto

本文记录下写的过程中遇到的几个shell问题:

如何判断当前用户是否是root用户

1
2
3
4
5
if [ $UID -ne 0 ]
then
     echo "Error: You must be root to run the script!"
     exit 1
fi

如何判断机器是64位还是32位

有很多种方法,但是如果要输出最简单明了的估计是这种方法了:

1
MACHINE_LONG_BIT=$(getconf LONG_BIT)

如何判断一个组存在,并且这个组内有某个用户

1
2
3
4
5
6
7
8
9
10
11
12
13
if grep -q mysql /etc/group
then
     echo "mysql group exists"
else
     groupadd mysql
fi
 
if groups mysql | grep -q -E ' mysql(\s|$)'
then
     echo "mysql user exists"
else
    useradd -r -g mysql mysql
fi

如何将一个目录内的所有文件批量软连接到另外一个目录内

1
2
3
4
5
FILELIST=`ls $BINARY_MYSQL_PATH/bin`
for FILENAME in $FILELIST
do
     ln -sn --force $BINARY_MYSQL_PATH/bin/$FILENAME /bin/$FILENAME
done

在sed中要替换的正则包含/符号和变量$XXX怎么办

我们一般使用sed "s/XXXX/OOOO/" file来做替换

但是如果XXXX中包含/并且还有可能包含变量的话,就需要将/符号替换成:了

1
sed -i "s:/usr/local/mysql/data:${BINARY_MYSQL_PATH}/data:" mysql.server.init

如何注释一段代码

在shell中注释一行代码是#,那么注释一段代码就需要使用:<<BLOCK

1
2
3
4
5
6
7
:<<BLOCK
BINARY_MYSQL_PATH="$ROOT_PATH"/binary/mysql
if [ ! -d "$BINARY_MYSQL_PATH" ]
then
     mkdir -p $BINARY_MYSQL_PATH
fi
BLOCK

shell如何进行交互

使用read命令将输出记录到一个变量中

1
2
3
4
5
6
checkinstall="n"
read -p "Are you sure want to install php into service?(y/n):" checkinstall
if [ $checkinstall="y" ]
then
fi

如何关闭selinux

1
sed -i "s/enforcing/disabled/" /etc/selinux/config

这里的i参数就是在当前文件直接做替换,如果觉得不保险可以先做备份

如何获取运行shell的shell文件夹路径

这里不是获取当前的路径(当前路径直接使用pwd就可以获取),比如我在/home/yejianfeng,运行sh lnmp_auto/lnmp_auto.sh,如何获取到lnmp_auto.sh的文件夹路径/home/yejianfeng/lnmp_auto/





本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/3364682.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
干货 | 一文搞定 uiautomator2 自动化测试工具使用
![](https://ceshiren.com/uploads/default/original/3X/f/a/facb6e29bf503b39571011963faf36c586c673c0.jpeg) Google 官方提供了一个 Android 自动化测试工具(Java 库),基于 Accessibility 服务,功能很强,可以对第三方 App 进行测试,获取屏幕上任意一个 App 的
53 0
自动化运维工具 puppet安装部署
Puppet部署与应用 前言:到目前为止,我们已经搭建了很多的服务器,每一台服务器都需要执行很多的命令,给我的感觉是实验不难,原理也好理解,就是命令太麻烦。如果只管理几台服务器,命令多点也没什么,但是如果管理着成百上千台服务器,可以想象一下,工作量将是多么的庞大。
1124 0
阿里云基于whsir一键包快速安装lnmp环境
whsir指基于lnmp源码二次封装,通过yum源快速安装lnmp环境。 whsir一键包特性: 通过yum源方式一键安装部署 持续不断更新,稳定版本与官方同步 支持lnmp环境一键部署 Nginx默认集成lua、waf、purge、TCMalloc模块 所有包都以w开头以防和其他源版本冲...
2618 0
+关注
2968
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载