python脚本实现自动安装nginx
本文python脚本实现自动化安装是源码安装。实现任意版本安装,默认版本是1.13.11,也可以更改默认版本,手动配置安装目录。
环境:Ubuntu16.04,python3以上版本,Ubuntu自带python3.5.
下面是完整的代码实现:
#导入 os,sys模块
import os,sys
#检查用户是否是root
if os.getuid() != 0:
print("当前用户不是root,请以root身份执行脚本")
sys.exit(1)
# 版本号的选择
# http://nginx.org/download/nginx-1.13.11.tar.gz
def_var = '1.13.11'
var = input('请输入版本(默认{}):'.format(def_var))
var = var or def_var
# 安装目录的配置
def_path = '/usr/local/nginx'
path = input('请输入安装目录(默认{}):'.format(def_path))
path = path or def_path
# 如果存在同名文件先删除
if os.path.exists('nginx-{}.tar.gz'.format(var)):
os.remove('nginx-{}.tar.gz'.format(var))
# 下载源码包
url = 'http://nginx.org/download/nginx-{}.tar.gz'
cmd = 'wget ' + url.format(var)
res = os.system(cmd)
if res != 0:
print('下载失败')
sys.exit(1)
# 解压
cmd = 'tar -zxf nginx-{}.tar.gz'.format(var)
if os.system(cmd) != 0:
print('解压失败')
sys.exit(1)
# 安装依赖
cmd = 'apt install -y gcc make libpcre3-dev zlib1g-dev openssl libssl-dev'
if os.system(cmd) != 0:
print('安装依赖失败')
sys.exit(1)
# 配置
cmd='cd nginx-{} && ./configure --prefix=/usr/local/nginx --with-http_ssl_module'.format(var)
if os.system(cmd) != 0:
print('配置失败')
sys.exit(1)
# 编译
cmd='cd nginx-{} && make && make install'.format(var)
if os.system(cmd) != 0:
print('编译失败')
sys.exit(1)
print('安装成功')
python脚本实现自动安装nginx的更多相关文章
- python第三方库自动安装脚本
#python第三方库自动安装脚本,需要在cmd中运行此脚本#BatchInstall.pyimport oslibs = {"numpy","matplotlib&qu ...
- LNMP一键安装包-CentOS/Ubuntu/Debian自动安装Nginx,MySQL,PHP
适用环境: 系统支持:CentOS.Ubuntu.Debian 内存要求:≥128M 安装了什么: 1.Nginx-1.2.1 2.MySQL 5.5.25 3.PHP 5.2.17或PHP 5.3. ...
- python脚本-开机自动联网
办公室的电脑开机之后,需要打开浏览器登录校园用户认证网页,输入用户名密码登录认证之后才能联网,每次都这样搞很麻烦,写了个Python脚本自动完成这个工作. onStartup.py #file:onS ...
- Zabbix之Python脚本端口自动发现
Zabbix监控服务端口,可以手动添加配置,但是如果一个服务器上需要监控的端口数较多,那么利用Zabbix自动发现,比较高效,下面是自动发现port的Python脚本. #!/usr/bin/pyth ...
- python脚本实现自动保留ctime最近的几个文件
使用了给字典排序的sorted方法 #!/usr/bin/env python # coding:utf-8 import os def rm_backup(rm_path,days): files_ ...
- python脚本-实现自动按规则创建指定大小和指定个数的文件案例
# -*- coding: cp936 -*-#---------------------------------------------------------------------------- ...
- 【Linux】apt-get install 怎么阻止弹出框,使用脚本默认自动安装?
You can do a couple of things for avoiding this. Setting the DEBIAN_FRONTEND variable to noninteract ...
- 用vim写python脚本的自动缩进格式设置
- nginx脚本自动安装
nginx脚本自动安装 脚本功能: 自动安装nginx 自动判别系统是否安装nginx 自定义安装nginx路径 自定义安装nginx版本. #!/bin/bash #2019年10月30日16:00 ...
随机推荐
- 05 GUI UGUI
在Unity开发过程中,不论是3D还是2D开发都需要大量的UI界面来配合使用,用来达到更好的效果 GUI:在Unity脚本生命周期回调方法OnGUI中实现,每一帧渲染两次,在OnGUI中的GUI界面元 ...
- SQL SERVER 2012 OBJECT_ID
原来一个存储过程执行正常,升级sqlserver后提示临时表已存在,后查找资料 sql server 2012 OBJECT_ID('临时表')返回的数值是负数,在 2008r2及前是正数,所以导致 ...
- Python Learning Day3
爬虫练习 说是练习,实际是尝试了一些还没有具体了解的方式吧hhhhh' 基于urllib实现 import urllib.request import re url="https://www ...
- python基础1--基本数据类型+流程控制
一.基本数据类型 1.整型 int 就是整数 2.浮点型 float 就是小数 3.字符串 3.1.加了单引号.双引号.多引号的字符就认为是字符串 单引号和双引号没有什么区别,多引号用 ...
- swoole怎么连接数据库
异步连接到MySQL服务器. $serverConfig为MySQL服务器的配置,必须为关联索引数组 $callback连接完成后回调此函数 swoole连接数据库实例: 推荐学习:swoole教程 ...
- 安卓和iOS统一下载页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSS——fixed 固定定位相对于父容器
position:fixed 固定定位 用 left top 都是相对于浏览器的. 我今天想给网页做一个固定定位的导航 偶然间发现.可以用margin 相对于父容器定位. 小伙伴们可以试试. 不用le ...
- 【MySQL参数】-innodb_flush_method
innodb_flush_method这个参数控制着innodb数据文件及redo log的打开.刷写模式,对于这个参数,文档上是这样描述的:有三个值:fdatasync(默认),O_DSYNC,O_ ...
- 吴裕雄--天生自然ShellX学习笔记:Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一 ...
- PAT Advanced 1049 Counting Ones (30) [数学问题-简单数学问题]
题目 The task is simple: given any positive integer N, you are supposed to count the total number of 1 ...