为CloudDisk项目编写一键安装脚本

  之前做了分布式网络云盘项目,这个项目的环境搭建还是比较麻烦的,总有小伙伴问我有没有打包好的安装包,其实我之前整理了在Github上,但是下载速度确实让人望而却步。而且自己把之前搭建好的阿里云服务器重置了,所以自己也需要重新搭建一遍,索性写个脚本,一劳永逸。正好也复习一下脚本编写。

一、主要功能项

  • OsCheck()
  • Install_nginx()
  • Install_libfastcommon()
  • Install_fastdfs()
  • Install_fastdfs_nginx_module()
  • Modify_config()

  没什么好说的,就是先将需要安装的各种软件和依赖库都装上。主要功能其实还是几个修改配置文件的地方,其涉及到对文件的修改,趁机学习一下sed、awk等文件操作命令,我觉得他们确切来说应该叫工具,其功能很强大。

  • 变量

#绿色字体
Green1="\033[32m"
Green2="\033[0m"

GET_NGINX=http://nginx.org/download/nginx-1.17.8.tar.gz
GET_LIBCOMMOM=https://github.com/happyfish100/libfastcommon/archive/master.zip
GET_FASTDFS=https://github.com/happyfish100/fastdfs/archive/master.zip
GET_FNM=https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
NGINX_POS=/usr/local/nginx/

  • OsCheck()

#判断操作系统类别
OsCheck() {
	if [ -e /etc/redhat-release ]; then
		REDHAT=`cat /etc/redhat-release | awk '{print $1}'`
	else
		DEBIAN=`cat /etc/issue | awk '{print $1}'`
	fi

	if [ "$REDHAT" == "CentOS" -o "$REDHAT" == "Red" ]; then
		P_M=yum
	elif [ "$DEBIAN" == "Ubuntu" -o "$DEBIAN" == "ubuntu" ]; then
		P_M=apt-get
	else
		Operating system dose not support.
		exit 1
	fi
	
	if [ "$P_M" == "yum" ]; then
		echo -e "${Green1}Your system is $REDHAT. $Green2"
	else
		echo -e "${Green1}Your system is $DEBIAN. $Green2"
	fi
}
  • Install_nginx()

#安装nginx
Install_nginx() {
	NGINX_PAC=nginx-1.17.8.tar.gz

	echo "Download nginx..."
	if [ ! -e ./$NGINX_PAC ]; then
		wget $GET_NGINX
	else
		echo -e "${Green1}Nginx has been download. $Green2"
	fi

	echo "Install pcre zlib openssl..."
	sudo $P_M install libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev
	
	echo "Install nginx..."
	if [ ! -e ./$NGINX_PAC ]; then
		echo "Can't find nginx package..."
	elif [ ! -d ./nginx-1.17.8/ ]; then
		tar -xvzf $NGINX_PAC
	else
		cd nginx-1.17.8
		./configure
		make
		make install
		cd -
	fi
	
	echo "Link nginx..."
	sudo ln -s ${NGINX_POS}sbin/nginx /usr/local/bin
	echo -e "${Green1}Install nginx Success! $Green2"
}
  • Install_libfastcommon()

Install_libfastcommon() {
	echo "----------------------------------------------"
	echo "Download FastDFS..."
	echo "Install libfastcommon..."
	if [ ! -d ./libfastcommon-master/ -a ! -e master.zip ]; then
		wget $GET_LIBCOMMOM
		unzip master.zip
		mv master.zip libfastcommon-master.zip
	else
		echo -e "${Green1}Libfastcommon has been download. $Green2"
	fi

	if [ -e ./libfastcommon-master/ ]; then
		cd libfastcommon-master/
		./make.sh clean
		./make.sh
		./make.sh install
		cd -
	else
		echo "Don't have libfastcommon files!"
	fi
		
	echo -e "${Green1}Libfastcommon install success. $Green2"
}
  • Install_fastdfs()

Install_fastdfs() {
	echo "Install fastDFS..."
	if [ ! -e ./master.zip -a ! -d ./fastdfs-master/ ]; then
		wget $GET_FASTDFS
		unzip master.zip
		mv master.zip fastdfs-master.zip
	else
		echo -e "${Green1}Fastdfs has been download.$Green2" 	
	fi
	
	if [ -d ./fastdfs-master/ ]; then
		cd fastdfs-master
		./make.sh clean
		./make.sh
		sudo ./make.sh install
		cd -
	else
		echo "Don't have fastDFS files!"
	fi

	if [ -d /etc/fdfs/ ]; then
		cd /etc/fdfs
		cp tracker.conf.sample tracker.conf
		cp storage.conf.sample storage.con
		cp client.conf.sample client.conf
	fi
	
	echo -e "${Green1}FastDFS install success! $Green2"
}
  • Install_fastdfs_nginx_module()

Install_fastdfs_nginx_module() {
	FNM_DIR=fastdfs-nginx-module-master
	FNM_PAC=fastdfs_nginx_module.zip

	echo "Install fastdfs_nginx_module..."
	if [ ! -e ./master.zip -a ! -d ./${FNM_DIR}/ ]; then
		wget $GET_FNM
		unzip master.zip
		mv master.zip $FNM_PAC
	else
		echo -e "${Green1}Fastdfs_nginx_module has been download."
	fi

	echo -e "${Green1}Fastdfs_nginx_module download success."
}
  • Modify_config()

Modify_config() {
	FNM_DIR=fastdfs-nginx-module-master

	if [ -e $FNM_DIR/src/config ]; then
		sed -i '/\<ngx_module_libs/a\ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"' $FNM_DIR/src/config
		sed -i '/\<NGX_ADDON_SRCS/a\CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"' $FNM_DIR/src/config
	else
		echo "Fastdfs_nginx_module hasn't download."
	fi
}

二、sed、awk文本操作工具介绍

三、总结

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zabbix是一款功能强大且开源的监控系统,而CentOS是一种常见的Linux操作系统。为了简化Zabbix在CentOS上的安装过程,很多人开发了一键安装脚本一键安装脚本是一段自动执行的代码,可以自动化完成安装步骤,让用户无需手动一步步进行配置。对于Zabbix在CentOS上的安装来说,一键安装脚本可以大大简化过程,提升安装效率。 一般来说,你需要首先在CentOS上安装一个已支持Zabbix的版本,并确保服务器上有访问互联网的权限。然后,你可以通过以下步骤使用一键安装脚本安装Zabbix: 1. 打开命令行终端,使用root权限登录到CentOS服务器。 2. 下载并保存一键安装脚本到服务器的本地文件夹中。 3. 运行一键安装脚本,命令可能类似于:`bash install_zabbix.sh`。这将开始自动执行脚本,并进行所需的安装步骤。 4. 脚本会自动下载和安装必需的软件包、配置数据库、创建数据库表和用户,并进行其他必要的设置。 5. 可能需要提供一些必需的配置信息,例如数据库凭据、Zabbix管理员的用户名和密码等。 6. 一旦脚本执行完毕,Zabbix就会成功安装并配置好在CentOS上运行。 这些一键安装脚本通常由社区开发并维护,并且可以在各种资源网站上找到,例如GitHub等。使用这些脚本,你可以迅速、方便地在CentOS上安装配置Zabbix,并开始使用其各种监控和分析功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值