环境

CentOS Linux release 7.5.1804

相关文章

Linux 上搭建 shadowsock server – 以 CentOS 7 为例

安装epel扩展源

yum -y install epel-release

安装并配置 shadowsocks 客户端

安装 shadowsocks 包

pip install shadowsocks

编写配置文件

mkdir /etc/shadowsocks/
vi /etc/shadowsocks/client.json
{
    "server": "xxx.xxx.xxx.xxx",
    "server_port": xxxx,
    "password": "xxxxxxxx",
    "method": "aes-256-cfb",
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "timeout": 300,
    "fast_open": false,
    "workers": 1
}
  • server: shadowsocks server 的 IP 地址
  • server_port: shadowsocks server 的端口号
  • password: shadowsocks server 设置的密码
  • method: shadowsocks server 设置的加密方式
  • local_address: 本地IP,保持不变即可
  • local_port: 本地端口号,保持不变即可
  • timeout: 等待超时时间
  • fast_open: 是否开启 fast_open 以降低延迟,需要Linux内核大于3.7
阅读全文 “Linux 上搭建 shadowsock client – 以 CentOS 7 为例”

环境

CentOS Linux release 7.5.1804

相关文章

Linux 上搭建 shadowsock client – 以 CentOS 7 为例

安装 shadowsocks 包

pip install shadowsocks

编写配置文件

mkdir /etc/shadowsocks/
vi /etc/shadowsocks/server.json
{
    "server": "0.0.0.0",
    "server_port": xxxx,
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "password": "xxxxxxxx",
    "timeout": 600,
    "method": "aes-256-cfb"
}
  • server: 服务器的 IP 地址,建议写0.0.0.0
阅读全文 “Linux 上搭建 shadowsock server – 以 CentOS 7 为例”

环境

CentOS Linux release 7.5.1804

安装docker-machine

base=https://github.com/docker/machine/releases/download/v0.14.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
  sudo install /tmp/docker-machine /usr/local/bin/docker-machine

docker-machine -v

安装 virtualbox

将ol7_addons(Oracle Linux的源)添加到yum源

cat << EOF | sudo tee /etc/yum.repos.d/ol7_addons.repo
[ol7_addons]
name=Oracle Linux $releasever Add ons (\$basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL7/addons/\$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
EOF
# Verify this manually if you're paranoid like me
sudo rpm --import http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7
阅读全文 “在 VMware 虚拟机中的 CentOS 7 内安装 docker machine”

环境

CentOS Linux release 7.5.1804

Python 3.6.4/2.7.14

简介

Airflow 是 Airbnb 开源的一个用 Python 编写的工作流管理平台,自带 web UI 和调度,目前在Apache下做孵化。

Airflow 管理页面

Airflow 中有两个基本概念,DAG和task。
DAG是多个task的集合,定义在一个Python文件中,包含了task之间的依赖关系,如task A在task B之后执行,task C可以单独执行等等。

安装并运行

# 默认目录在~/airflow,也可以使用以下命令来指定目录
export AIRFLOW_HOME=~/airflow

pip install apache-airflow

# 初始化数据库
airflow initdb

# 启动web服务,默认端口为8080,也可以通过`-p`来指定
airflow webserver -p 8080

# 启动 scheduler
airflow scheduler

定义第一个DAG

$AIRFLOW_HOME目录下新建dags文件夹,后面的所有dag文件都要存储在这个目录。

新建dag文件hello_world.py阅读全文 “工作流管理平台 Airflow 入门”

环境

CentOS Linux release 7.5.1804

Q

新安装CentOS后,为了方便远程ssh,想设置静态IP,但是在/etc/sysconfig/network-scripts/下面只有ifcfg-lo这张Local Loopback网卡的配置文件,并没有我们想要的enp0s3(不同机器的网卡名不一样,也可能是ens33或其它名字)网卡配置文件,想要配置静态IP根本无从下手。

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-lo     ifdown-post      ifup          ifup-plip    ifup-TeamPort
ifdown       ifdown-ppp       ifup-aliases  ifup-plusb   ifup-tunnel
ifdown-bnep  ifdown-routes    ifup-bnep     ifup-post    ifup-wireless
ifdown-eth   ifdown-sit       ifup-eth      ifup-ppp     init.ipv6-global
阅读全文 “CentOS 手动添加网卡配置文件并设置静态 IP”

环境

CentOS Linux release 7.5.1804

脚本完成操作

  • 切换CentOS软件镜像源为中科大软件源
  • 设置防火墙,允许全部端口通过
  • 安装git
  • 安装Pyenv包管理工具,Pyenv使用详见:Python版本管理工具 Pyenv的安装与使用
  • 安装Python 3.6.4
  • 切换pip源为豆瓣
  • 安装Docker
  • 安装MySQL
  • 初始化MySQL(root@localhost的密码为123456,song@%的密码为123456)
  • 设置sshd开机启动
  • 安装ntp时间自动更新工具

使用

  • Github下载部署脚本代码
  • 百度云下载包含MySQL rpm包的required_rpms文件夹(MySQL官网由于国内特殊的网络环境原因,下载很慢,经常中断导致无法安装,因而将安装所需的rpm包单独down了下来,又因为所有MySQL包加起来有200+M,不方便传到Github上,只能传到百度云上单独下载)
  • 将百度云上下载的required_rpms文件夹加入到代码主目录,最终目录如下:
.
├── 0_start.sh
├── 1_shell_init.sh
├── 2_deploy_firewall.sh
├── 3_install_git.sh
阅读全文 “在 CentOS 上初始化 Python 环境的自动部署脚本”

环境

Ubuntu 16.04 桌面版

安装

使用或调试pyautogui程序需要在有图形界面的系统上,此处使用的是 Ubuntu 16.04 桌面版。

pip install python3–xlib
apt–get install scrot
apt–get install python3–tk
apt–get install python3–dev
pip install pyautogui

鼠标操作

鼠标移动

pyautogui 使用 x-y 坐标系,左上角的坐标是(0, 0)

获取屏幕分辨率

screen_width, screen_height = pyautogui.size()

获取当前鼠标坐标

x, y = pyautogui.position()
阅读全文 “Pyautogui – Python 操作鼠标键盘”

环境

Python 3.6.4

简介

Blinker是一个基于Python的强大的信号库,支持一对一、一对多的订阅发布模式,支持发送任意大小的数据等等,且线程安全。

安装

pip install blinker

使用

signal为单例模式

signal 使用了单例模式,允许代码的不同模块得到相同的signal,而不用互相传参。

In [1]: from blinker import signal

In [2]: a = signal('signal_test')

In [3]: b = signal('signal_test')

In [4]: a is b
Out[4]: True

订阅信号

使用.connect(func)方法来订阅一个信号,当信号发布时,该信号的订阅者会执行func

In [5]: def subscriber(sender):
   ...:
阅读全文 “基于Python的信号库 Blinker”

环境

CentOS-7-x86_64-Minimal-1708

原理

Alt text

ELK 简介与安装

可以参考我之前的博客:集中式日志系统 ELK 协议栈__简介与安装

安装 filebeat

除了ELK 系统之外,我们需要 filebeat 来读取文件中的内容并发送给 ELK 系统。
(filebeat 实际上和 ELK 是同一家公司的,属于 Beats 类。)

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.1-x86_64.rpm
sudo rpm -vi filebeat-6.1.1-x86_64.rpm
rm filebeat-6.1.1-x86_64.rpm -f

构造数据源

为了进行日志分析的演示,需要动态地去构造访问数据,可以使用我写的一个简单的 Python 脚本,保存文件名为insert_fake_nginx_log.py
Python 脚本中默认 Nginx 的日志路径为/var/log/nginx/access.log阅读全文 “集中式日志系统 ELK 协议栈__Nginx 日志分析实战”

环境

CentOS-7-x86_64-Minimal-1708

简介

集中式日志系统 ELK 并不是一款软件,而是一整套解决方案,是三个软件的首字母缩写:Elasticsearch,Logstash 和 Kibana。
这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK 协议栈。

基本原理
Alt text

Elasticsearch

简介

Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。

安装

  • 安装 Java
yum install java -y
  • 添加镜像仓库
cat << "EOF" >> /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x
阅读全文 “集中式日志系统 ELK 协议栈__简介与安装”