bash

docker nginx 运行后无法访问

雨燕双飞 提交于 2021-02-13 10:55:59
1 最近在学docker部署,一开始打算将nginx先docker化的。 对照 官方的docker镜像介绍说明 ,进行自定义配置 将官方的nginx.conf复制出来后,修改添加了一些自定义,主要是屏蔽了default.conf,以及include文件夹 sites-available include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-available/*; 官方原先配置 user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

我是如何使用git把本地代码上传到github上的,值得借鉴

情到浓时终转凉″ 提交于 2021-02-13 09:54:36
背景:最近开发了一套招标系统, 我是如何用JSP在网络上架构一个网上招标系统,以推进网站无纸化,过程电子化,管理智能化的发展。 使用git进行上传。 首先自己得有git工具及github账号,自己没有的提前准备一下。我本地文件夹已经放了数据库及源代码,我直接在那个文件夹进行操作。 进去该文件夹。鼠标右键,打开git -> Git Bash Here -> git init。执行命令后目录下创建一个.git文件夹。 git init 查看状态 git status git add + 需要添加的文件名 或者git add --all 将所有的文件全部添加,我这里是 git add --all 这个命令会把当前路径下的所有文件,添加到待上传的文件列表中。 将add的文件commit到仓库,添加之后,最后提交就行,git commit -m “修改说明”。-m后面添加的是对本次操作的说明,加入你修改了代码或者重新上传了什么东西都做个简单说明,别人看了就知道是怎么回事了。然后再次git status查看状态,如下,已经添加成功: git commit -m "提交源代码" 去github上创建自己的Repository,点击Create repository,一步一步执行下去即可,创建成功后拿到创建的仓库的https地址 将本地的仓库关联到github上,我这里使用的是https

shell脚本正则表达式

青春壹個敷衍的年華 提交于 2021-02-13 09:51:22
grep与正则表达式: 1、grep 程序 Linux下有文本处理三剑-----grep sed awk grep :文本,行过滤工具 sed:文本 行编辑器(流编辑器) awk:报告生成器(做文本格式化输出) grep 包括三个命令:grep egrep fgrep,他们是用来进行行模式(pattern)匹配 egrep = grep -E //使用扩展的正则表达式进行匹配 fgrep=fast grep //只使用文件通配符进行匹配 *grep默认使用正则表达式进行文本匹配* grep 的用法: grep 【option】.....PATTERN[filename] grep的常见选项---option -E 支持使用扩展的正则表达式(ERE)(regexp) -P 使用Perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep AWK 使用的regrexp的引擎也是不同的) -i忽略大小写 -v 进行反选 -o 仅仅输出匹配的内容(默认输出的是匹配到的行) --color=auto 语法着色 -n 显示行号 a* grep 的PATTERN 作用:通过一些特殊字符,来表示一类字符内容,交给前面的命令来执行;如果使用特殊字符本身含义,就需要\进行转义; 回顾: * ? [] [^] 1、字符匹配 .代表任意一个字符 相当于? []

kubectl 自动补全命令

笑着哭i 提交于 2021-02-13 08:46:09
1.安装bash-completion工具 yum install bash-completion -y 否则报错: -bash: _get_comp_words_by_ref: command not found 2.执行bash_completion source /usr/share/bash-completion/bash_completion 3.加载kubectl completion source <(kubectl completion bash) # 在 bash 中设置当前 shell 的自动补全,要先安装 bash-completion 包。 echo "source <(kubectl completion bash)" >> ~/.bashrc # 在您的 bash shell 中永久的添加自动补全 您还可以为 kubectl 使用一个速记别名,该别名也可以与 completion 一起使用: alias k=kubectl complete -F __start_kubectl k 参考: https://kubernetes.io/zh/docs/reference/kubectl/cheatsheet/ 原文出处:https://www.cnblogs.com/Dev0ps/p/12186027.html 来源: oschina 链接: https:

[记录]Shell中的getopts和getopt用法

僤鯓⒐⒋嵵緔 提交于 2021-02-13 07:26:47
Shell中的getopts和getopt用法 1.getopts getopts(shell内置命令)不能直接处理长的选项(如:--prefix=/home等),getopts有两个参数,第一个参数是一个字符串,包括字符和“:”,每一个字符都是一个有效的选项,如果字符后面带有“:”,表示这个字符有自己的参数。getopts从命令中获取这些参数,并且删去了“-”,并将其赋值在第二个参数中,如果带有自己参数,这个参数赋值在“optarg”中。提供getopts的shell内置了这里变量$optarg存储相应选项的参数,而$optind总是存储原始$*中下一个要处理的元素位置。while getopts ":a:bc" opt #第一个冒号表示忽略错误;字符后面的冒号表示该选项必须有自己的参数. 例子: #cat getopts.sh #!/bin/bash echo $* while getopts ":a:bc" opt do case $opt in a ) echo $optarg echo $optind ;; b ) echo "b $optind" ;; c ) echo "c $optind" ;; ? ) echo "error" exit 1 ;; esac done echo $optind shift $(($optind - 1)) #通过shift $((

shell脚本传可选参数 getopts 和 getopt的方法

試著忘記壹切 提交于 2021-02-13 07:08:39
写了一个shell脚本,需要向shell脚本中传参数供脚本使用,达到的效果是传的参数可以是可选参数 下面是一个常规化的shell脚本:         echo " 执行的文件名为: $0 " ;          echo " 第一个参数名为: $1 " ;          echo " 第二个参数名为: $2 " 正常的向shell脚本中传参数的方法为: ./test. sh 1 2 3 最后执行的结果为:         执行的文件名为: ./test. sh         第一个参数名为: 1         第二个参数名为: 2 但是这个是只能按照顺序传递参数,并且不能传递可选参数,然后查资料,发现了一个shell的getopts 用法 首先贴个例子 [hello@Git shell]$ bash test. sh - a hello this is -a the arg is ! hello [hello@Git shell]$ more test. sh # !/bin/ bash while getopts " a: " opt; do case $opt in a) echo " this is -a the arg is ! $OPTARG " ;; \ ? ) echo " Invalid option: -$OPTARG " ;; esac done

设计shell脚本选项:getopt

瘦欲@ 提交于 2021-02-13 06:49:50
man 1 getopt翻译 : https://www.cnblogs.com/f-ck-need-u/p/9757959.html 写shell脚本的时候,通过while、case、shift来设计脚本的命令行选项是一件比较麻烦的事,因为Unix命令行的选项和参数自由度很高,支持短选项和长选项,参数可能是可选的,选项顺序可能是无所谓的,等等。 bash下的getopt命令可以解析命令行的选项和参数, 将散乱、自由的命令行选项和参数进行改造,得到一个完整的、规范化的参数列表,这样再使用while、case和shift进行处理就简单的太多了 。 getopt有不同的版本,本文介绍的是它的增强版(enhanced),相比传统的getopt(也称为兼容版本的getopt),它提供了引号保护的能力。另外,除了不同版本的getopt,bash还有一个内置命令getopts(注意,有个尾随的字符s),也用来解析命令行选项,但只能解析短选项。 要验证安装的getopt是增强版的还是传统版的,使用 getopt -T 判断即可。如果它什么都不输出,则是增强版,此时它的退出状态码为4。如果输出"--",则是传统版的getopt,此时它的退出状态码为0。如果想在脚本中进行版本检查,可以参考如下代码: getopt -T &>/dev/null;[ $? -ne 4 ] && { echo "not

keepalived + nginx 实现高可用

只谈情不闲聊 提交于 2021-02-13 06:49:01
原理 nginx 可以实现负载均衡,但 nginx 自身存在单点故障的问题,这时候最先想到的就是 keepalived,可以解决单点故障的问题 由于没有使用 lvs,所以这里 nginx 之间不存在负载均衡 同时,如果 keepalived 的 master 节点 nginx 服务宕了以后,如果 keepalived 还在运行,则用户就访问不到 nginx 服务了,所以需要添加监控脚本,当 nginx 宕机时,杀死本机的 keepalived 服务 这样,keepalived 的 master 就会切换,同时用户访问的 nginx 服务也会切换到原来的 backup 节点 测试节点 RIP VIP MASTER 192.168.132.136 192.168.132.200 SLAVE 192.168.132.140 192.168.132.200 配置nginx 安装 nginx 不是重点,这里就是用 yum 简单安装 yum -y install nginx systemctl start nginx 配置keepalived 安装 keepalived 使用 yum 安装即可 keepalived 配置如下: global_defs { notification_email { chen@test.com } notification_email_from chen@test

在Ubuntu18.04上安装opencv 3.4.1

﹥>﹥吖頭↗ 提交于 2021-02-13 01:57:25
对于安装opencv有的人一次就成功,而有人安装了N多次才成功。我就是那个安装了N多次的人,每次遇到了很多安装错误,只能通过到网上搜教程资料,解决方法;通过一次次的试错,最终完成了安装。再此提醒第一次安装或则安装失败没有头绪的小伙伴,请注重官方安装教程: https://docs.opencv.org/master/d9/df8/tutorial_root.html 安装环境是:ubuntu 18.04 安装的opencv版本为3.4.1(其他版本也行,安装过程类似) opencv安装的依赖包有: Required Packages GCC 4.4.x or later CMake 2.8.7 or higher Git GTK+2.x or higher, including headers (libgtk2.0-dev) pkg-config Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy) ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev [optional] libtbb2 libtbb-dev [optional]

linux ln 命令使用参数详解(ln -s 软链接)

一笑奈何 提交于 2021-02-12 22:41:46
http://www.jb51.net/LINUXjishu/150570.html 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。 当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 例如:ln -s /bin/less /usr/local/bin/less -s 是代号(symbolic)的意思。 这 里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接 和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。