Astrisk Blog

Docker-Install

• DOCKER-HACKATHON

Docker提供yum和rpm两种安装方式,可以根据自己的实际情况选择安装方式。yum安装需要联网,可以直接在线安装;而rpm一般用于不能直接连接外网的环境,先下载rpm包,上传到服务器,然后安装。

使用yum安装

Install yum-utils, which provides the yum-config-manager utility:

Docker-Uninstall

• DOCKER-HACKATHON

查看已经安装的docker程序

POSTMAN接口自动化-NEWMAN-DOCKER

• POSTMAN

必要条件

编写/获取Dockerfile

$ cd /home/postman/
$ vim Dockerfile

Dockerfile内容如下:

FROM alpine:3.3

MAINTAINER Postman Labs help@getpostman.com

# Set node version

ENV NODE_VERSION 4.3.0

# Set locale

ENV LC_ALL en_US.UTF-8

ENV LANG en_US.UTF-8

ENV LANGUAGE en_US.UTF-8

# Install node

RUN apk add –update nodejs=${NODE_VERSION}-r0;

# Set newman version

ENV NEWMAN_VERSION 3.5.0

# Install newman

RUN npm install -g newman@${NEWMAN_VERSION};

# Set workdir to /etc/newman

# When running the image, mount the directory containing your collection to this location

#

# docker run -v :/etc/newman ...

#

# In case you mount your collections directory to a different location, you will need to give absolute paths to any

# collection, environment files you want to pass to newman, and if you want newman reports to be saved to your disk.

# Or you can change the workdir by using the -w or –workdir flag

WORKDIR /etc/newman

# Set newman as the default container command

# Now you can run the container via

#

# docker run -v /home/collections:/etc/newman -t postman/newman_alpine33 -c YourCollection.json.postman_collection \

# -e > > > > > YourEnvironment.postman_environment \

# -H > > > > > newman_report.html

ENTRYPOINT [“newman”]

备注:这边直接使用https://github.com/postmanlabs/newman-docker的Dockerfile内容;也可以从该repo中下载Dockerfile

build newman-docker image

$ docker build -t postman/newman_alpine33 .

run newman in docker

$ docker run --volume="/home/postman/:/var/newman" --workdir="/var/newman" -t postman/newman_alpine33 --collection="/var/newman/postman_collection_v1.json" -f 1.DataSource --html="/var/newman/newman-report.html"

常用选项

执行截图

newman-docker1 newman-docker-result

后续把newman-docker跟kubernetes-docker上的CI/CD结合起来

TEAMCITY-调整JVM_MEM参数

• TEAMCITY

背景

前段时间公司的Teamcity Server经常报outofmemory,原因是teamcity的JVM内存参数值太小(安装时用的是默认值,没有更改过。)。之前让同事修改,但是由于她不知道怎么改,一直也没改,只好自己来。 本来是挺简单的,但是中间掉进坑,导致teamcity server service起不来,所以记录下详细的过程,以供后续参考。

修改须知

Teamcity的官方文档挺详细,但是太多,并且没有说明详细的傻瓜式的步骤,而且都是英文的,读起来有些费劲。总结下修改前必须清楚的细节。

修改步骤

SHELL-压缩归档(二)

• LINUXSHELL

TAR作用

tar是一个归档工具,把多个文件放到一个文件包里;同时tar命令可以跟压缩命令(gz,bz2等)结合使用,实现一次性压缩归档。

语法

$ tar [OPTION] FILE

常用选项

示例

$ tar -cf archive.tar foo
$ tar -tvf archive.tar
$ tar -xvf archive.tar
$ tar -dvf archive.tar
$ tar -tvf archive.tar file.txt
$ tar -xzvf archive.tar.gz
$ tar -xjvf archive.tar.gz
$ tar -xJvf archive.tar.xz
$ tar -cJvf archive.tar.xz
$ tar -czvf archive.tar.gz  ./dir

备注:指定选项时,选项顺序要注意,c要放在前面,如果这样写-vfcz 会报错

Mattermost Install -- PostgreSQL

• MATTERMOST

CentOS 7.2 Install PostgreSQL

按照官方的安装文档安装mattermost时,踩了一些坑,根据官方文档并结合自己的安装过程,重新整理了下mattermost的安装配置。 踩坑的原因:1.使用的CentOS版本为7.2,而官网的版本为7.1;2.CentOS 7之后有些命令跟7之前的不太一样。 3.官方文档关于pg的配置不够详细。(由于自己时pg小白,所以没能顺利搞下来,还是查资料配置pg)

Log in to the server that will host the database, and open a terminal window.

Download the PostgreSQL 9.4 Yum repository.

wget https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-redhat94-9.4-3.noarch.rpm

Install the Yum repository from the file that you downloaded.

sudo yum localinstall pgdg-redhat94-9.4-3.noarch.rpm

Install PostgreSQL.

sudo yum install postgresql94-server postgresql94-contrib

Initialize the database.

sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb

Set PostgreSQL to start on boot.

sudo systemctl postgresql-9.4.service enable

Start the PostgreSQL server.

sudo systemctl start postgresql-9.4.service

Disable firewall

sudo systemctl disable  firewalld.service

Stop firewall

sudo systemctl stop firewalld.service

Switch to the postgres Linux user account that was created during the installation.

sudo --login --user postgres

Start the PostgreSQL interactive terminal.

psql

Create the Mattermost user ‘mmuser’.

postgres=# CREATE USER mmuser WITH PASSWORD 'mattermost';

Grant the user access to the Mattermost database.

postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;

Exit the PostgreSQL interactive terminal.

postgre=# \q

Log out of the postgres account.

exit

Allow Postgres to listen on all assigned IP Addresses.

vim /var/lib/pgsql/9.4/data/postgresql.conf
Find the following line:
\#listen_addresses = 'localhost'
Uncomment the line and change localhost to *:
listen_addresses = '*'

If the Mattermost server is on a separate machine, modify the file pg_hbe.conf to allow the Mattermost server to communicate with the database.

restart pgsql

**systemctl restart  postgresql-9.4.service**

Verify that you can connect with the user mmuser

psql --host=localhost --dbname=mattermost --username=mmuser --password
The PostgreSQL interactive terminal starts. To exit the PostgreSQL interactive 	terminal, type \q and press Enter.

SHELL-压缩归档(一)

• LINUXSHELL

压缩归档概念

首先来看下压缩和归档,对应的英文单词应该是compress和archive。压缩就是把体积大的物品压制成小的,对应到文件压缩,可理解为更换一种占用硬盘空间小的格式,具体压缩比则取决于压缩算法和选择的压缩率;归档可以理解为把一堆文件归在一起,归档后的文件大小可能比源文件还大。就像一堆散乱的东西,放到放到一个纸箱中,因为包含了纸箱,所以总大小反而更大。

压缩率

Linux平台有众多压缩工具,各种压缩工具的用法基本上都大同小异。每种压缩工具都有个压缩率的选项,取值范围都是[0,9],0表示不压缩,9表示最大压缩率,默认都是6。压缩率越大,压缩后的文件越小,但是压缩过程中消耗的CPU时钟周期越长。

压缩和解压

Linux上的压缩工具都是成套的,一个压缩工具都会有一个配套的解压工具和不解压缩查看文件内容的工具。

compress/uncompress

compress/uncompress 是比较老的的压缩工具,压缩后的文件以.Z作为后缀,现在已经基本上很少见了。

gzip/gunzip/zcat

gzip/gunzip为比较常见的压缩工具,压缩文件以.gz做为后缀,gzip默认是不保留源文件(压缩后生成压缩文件并删除源文件),以下是gzip的常见用法。

$  gzip [OPTION] FILE ...

压缩但是不删除源文件

	
$gzip -c FILE > FILE.gz
	

不解压,显示压缩文件列表

$gzip -l FILE.gz
	

压缩目录中的文件

$gzip -r ./scripts

解压文件

$gzip -d FILE.gz

备注:相当于gunzip

不显示展开的前提下,查看文件内容

$zcat FILE.gz

bzip2/bunzip2/bzcat

摘抄百科的介绍: bzip2 是一个基于Burrows-Wheeler 变换的无损压缩软件,压缩效果比传统的LZ77/LZ78压缩算法来得好。它是一款免费软件。可以自由分发免费使用。它广泛存在于UNIX && LINUX的许多发行版本中。bzip2能够进行高质量的数据压缩。它利用先进的压缩技术,能够把普通的数据文件压缩10%至15%,压缩的速度和解压的效率都非常高!支持大多数压缩格式,包括tar、gzip 等等。 压缩后的文件后缀为.bz2

$  bzip2 [OPTION] FILE ...

压缩并保留源文件

$  bzip2 -k FILE

选择最高的压缩比

$  bzip2 -9 FILE

解压

$  bzip2 -d FILE.bz2

不显式展开的前提下查看文件内容

$  bzcat FILE.bz2

xz/unxz/xzcat

XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。最初 XZ Utils 的是基于 LZMA-SDK 开发,但是 LZMA-SDK 包含了一些 WINDOWS 平台的特性,所以 XZ Utils 为以适应 POSIX 平台作了大幅的修改。XZ Utils 的出现也是为了取代 POSIX 系统中旧的 LZMA Utils。压缩的文件名后缀为.xz
CentOS7已经默认安装了xz,如果是CentOS6或以下的,需要另外安装。
$  xz [OPTION] FILE ...

压缩并保留源文件

$  xz -k FILE

解压

$  xz -d FILE.xz

不解压,查看文件内容

$  xzcat FILE.xz

zip/unzip

zip是个跨平台的压缩工具,个人在工作中,如果是Windows下压缩,也都使用zip,这样无论是放在window还是Linux服务器,都无需另外再安装压缩工具,可以直接使用。官网man手册描述如下: zip is a compression and file packaging utility for Unix, VMS, MSDOS, OS/2, Windows 9x/NT/XP, Minix, Atari, Macintosh, Amiga, and Acorn RISC OS. It is analogous to a combination of the Unix commands tar(1) and compress(1) and is compatible with PKZIP (Phil Katzâs ZIP for MSDOS systems).

$  zip [OPTION] archive inpath inpath ...

压缩文件或压缩目录下的文件(不包含子目录)

$  zip  install.log.syslog.zip  install.log.syslog

SHELL-提取文件名和文件扩展名

• LINUXSHELL

功能

经常需要提取文件名,或者以xx后缀的扩展名,使用shell可以很方便得实现这个功能。

提取文件名

使用%操作符,${VAR%.*} 从$VAR中删除位于%右边的通配符(.*)所匹配的的字符串,通配符从右向左进行匹配 %属于非贪婪操作,只匹配最短结果,另一个操作符%%,属于贪婪操作,会匹配符合条件的最长结果。

$ VAR=hack.fun.book.txt
$ echo ${VAR%.*} //结果是hack.fun.book
$ echo ${VAR%%.*} //结果是hack

提取扩展名

使用$操作符,${VAR#*.} 从$VAR中删除位于#右边的通配符(*.)所匹配的的字符串,通配符从左向右进行匹配

$ VAR=hack.fun.book.txt
$ echo ${VAR#*.}  //结果fun.book.txt
$ echo ${VAR##*.} //结果是txt

SHELL-生成临时文件名

• LINUXSHELL

功能

在测试的时候,经常要生成一些测试文件,有时候想要生成一些随机的文件名。

使用当前进程ID作为临时文件名

$temp_file="/tmp/var.$$"

备注: .$$作为添加的后缀会被扩展成当前运行脚本的进程ID

使用tempfile命令(Debian发行版)

$temp_file=$(tempfile)

使用随机数作为文件名

$temp_file="/tmp/file-$RANDOM"

SHELL-SPLIT

• LINUXSHELL

功能

经常需要把一个大文件切分成多个小文件,split命令就是用来实现这个功能

语法

$ split [OPTION] /path/to/file PREFIX

选项

  1. -b:指定分割后的文件大小
  2. -d:以数字作为文件名后缀
  3. -a:指定文件名后缀长度
  4. PREFIX:最后一个参数PREFIX,作为文件名前缀
  5. -l:不按块大小分割文件,以行数来分割

示例

$ split -b 10k file.txt
$ split -b 10 data.txt -d -a 4