远程执行tomcat执行脚本出现找不到环境变量问题

问题描述:

我使用jenkins在build工程的时候,使用了执行shell部分.脚本内含有远程主机运行或者停止tomcat脚本,在执行的时候报告有java_home和java_jar没有环境变量的问题.根据问题查找,是远程执行的时候没有加载profile造成环境变量确实的问题.

脚本中的远程执行命令是

ssh root@web01 "/data/script/run.sh" 中的 run.sh包含tomcat启动脚本

解决方案:

在tomcat的catalina.sh中添加环境变量部分.

2018/04/26 posted in  Tips

MYSQL命令行内倒入文本数据

load data local infile '/文件名.txt' into table 表名(字段);

2018/03/06 posted in  Tips

Linux增加swap(aws建议添加)

添加交换文件步骤:
1、找个地方创建一个.swap的文件,我放在了/mnt目录下
sudo dd if=/dev/zero of=/mnt/10GB.swap bs=1G count=10
这条命令是在/mnt目录下创建一个名为10GB.swap的交换文件,基础大小为1GB,有10个,so:1*10=10GB
2、把创建的.swap文件格式化为Swap文件
sudo mkswap /mnt/10GB.swap
3、把创建的.swap文件加入到系统中
sudo swapon /mnt/10GB.swap
以上步骤可以做到临时启用交换文件,如果要下次启动系统的时候也启动交换文件,那么还要继续做以下步骤。
4、在/ect/fstab中加入新的Swap分区
sudo gedit /etc/fstab
在最后一行添加(前面是生成的.swap文件的位置)
/mnt/10GB.swap none swap sw 0 0
以上步骤为添加交换文件方法。

2018/03/06 posted in  Tips

Linux 7.4 配置BBR加速

####配置BBR加速

什么是BBR:

TCP BBR是谷歌出品的TCP拥塞控制算法。BBR目的是要尽量跑满带宽,并且尽量不要有排队的情况。BBR可以起到单边加速TCP连接的效果。

Google提交到Linux主线并发表在ACM queue期刊上的TCP-BBR拥塞控制算法。继承了Google“先在生产环境上部署,再开源和发论文”的研究传统。TCP-BBR已经再YouTube服务器和Google跨数据中心的内部广域网(B4)上部署。由此可见出该算法的前途。

TCP-BBR的目标就是最大化利用网络上瓶颈链路的带宽。一条网络链路就像一条水管,要想最大化利用这条水管,最好的办法就是给这跟水管灌满水。

BBR解决了两个问题:

在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。
Google 在 2016年9月份开源了他们的优化网络拥堵算法BBR,最新版本的 Linux内核(4.9-rc8)中已经集成了该算法。

对于TCP单边加速,并非所有人都很熟悉,不过有另外一个大名鼎鼎的商业软件“锐速”,相信很多人都清楚。特别是对于使用国外服务器或者VPS的人来说,效果更佳。

#####BBR项目地址:

https://github.com/google/bbr

升级内核,第一步首先是升级内核到支持BBR的版本:
1.yum更新系统版本:

yum update

2.查看系统版本:

[root@server ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@server ~]# 

3.安装elrepo并升级内核:

[root@server ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@server ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@server ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y
[root@server ~]# yum --enablerepo=elrepo-kernel install kernel-lt -y

4.更新grub文件并重启系统:

[root@server ~]# egrep  ^menuentry /etc/grub2.cfg |     cut -f 2 -d \'
CentOS Linux 7 Rescue 8619ff5e1306499eac41c02d3b23868e (4.14.14-1.el7.elrepo.x86_64)
CentOS Linux (4.14.14-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c73a5ccf3b8145c3a675b64c4c3ab1d4) 7 (Core)
[root@server ~]# grub2-set-default 0
[root@server ~]# reboot

5.重启完成后查看内核是否已更换为4.14版本:

[root@server ~]# uname -r 4.14.14-1.el7.elrepo.x86_64
[root@server ~]#

6.开启bbr:

[root@server ~]# vim /etc/sysctl.conf    # 在文件末尾添加如下内容
net.core.default_qdisc = fq

net.ipv4.tcp_congestion_control = bbr

7.加载系统参数:

[root@vultr ~]# sysctl -p
net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.eth0.accept_ra = 2
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
[root@vultr ~]#

如上,输出了我们添加的那两行配置代表正常。

8.确定bbr已经成功开启:

[root@vultr ~]# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
[root@vultr ~]# lsmod | grep bbr
tcp_bbr                20480  2 
[root@vultr ~]# 

输出内容如上,则表示bbr已经成功开启。

2018/02/08 posted in  Tips

CentOS7.4搭建shadowsocks

####安装 pip

pip是 python 的包管理工具。在本文中将使用 python 版本的 shadowsocks,此版本的 shadowsocks 已发布到 pip 上,因此我们需要通过 pip 命令来安装。

在控制台执行以下命令安装 pip

[root@server ~]# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
[root@server ~]# python get-pip.py

####安装配置 shadowsocks
在控制台执行以下命令安装 shadowsocks:

[root@server ~]# pip install --upgrade pip
[root@server ~]# pip install shadowsocks

安装完成后,需要创建shadowsocks的配置文件/etc/shadowsocks.json,编辑内容如下:

[root@server ~]# vim /etc/shadowsocks.json
{
"server": "0.0.0.0",
"local_address":"127.0.0.1",
"local_port": 1080,
"port_password": {
"8080": "填写密码",
"8081": "填写密码"
},
"timeout": 600,
"method": "aes-256-cfb"
}

说明:

method为加密方法,可选aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb, rc4-md5, chacha20, salsa20, rc4, table
port_password为端口对应的密码,可使用密码生成工具生成一个随机密码
以上两项信息在配置 shadowsocks 客户端时需要配置一致,具体说明可查看 shadowsocks 的帮助文档。

#####如果你不需要配置多个端口的话,仅配置单个端口,则可以使用以下配置:
{
"server": "0.0.0.0",
"server_port": 8080,
"password": "填写密码",
"method": "aes-256-cfb"
}

说明:

  • server_port为服务监听端口
  • password为密码

同样的以上两项信息在配置shadowsocks 客户端时需要配置一致。


####配置自启动

编辑shadowsocks 服务的启动脚本文件,内容如下:

[root@server ~]# vim /etc/systemd/system/shadowsocks.service
[Unit]
Description=Shadowsocks

[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json

[Install]
WantedBy=multi-user.target

执行以下命令启动 shadowsocks 服务:

[root@server ~]# systemctl enable shadowsocks
[root@server ~]# systemctl start shadowsocks

检查 shadowsocks 服务是否已成功启动,可以执行以下命令查看服务的状态:

systemctl status shadowsocks -l

确认服务启动成功后,配置防火墙规则,开放你配置的端口,不然客户端是无法连接的:

[root@server ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@server ~]# firewall-cmd --zone=public --add-port=8081/tcp --permanent
success
[root@server ~]# firewall-cmd --reload
success
2018/02/08 posted in  Tips

MacOS X 10.13(High Sierra)开启隐私权限

在下载一些Mac软件后打卡,系统会告诉你说软件受损,需要删除掉。其实,并不是软件受损,而是苹果修改了安全限制。以前,允许来自任何第三方的软件有选项,可以选择。现在,苹果去掉了选项,必须要从App Store或者含有苹果认证证书的软件才可以运行。

如果关闭这个选项,实现任何软件都可以运行呢?

我们只需要打开终端,输入下面的命令

sudo spctl --master-disable

然后打开系统便好设置->安全性与隐私选项->任何来源(最下面)
![WX20180118-111614@2x](# MacOS X 10.13(High Sierra)开启隐私权限

在下载一些Mac软件后打开,系统会告诉你说软件受损,需要删除掉。其实,并不是软件受损,而是苹果修改了安全限制。以前,允许来自任何第三方的软件有选项,可以选择。现在,苹果去掉了选项,必须要从App Store或者含有苹果认证证书的软件才可以运行。

如果关闭这个选项,实现任何软件都可以运行呢?

我们只需要打开终端,输入下面的命令

sudo spctl --master-disable

然后打开系统便好设置->安全性与隐私选项->任何来源(最下面)
安全性与隐私

选择这个选项,软件就可以正常运行了

选择这个选项,软件就可以正常运行了

2018/01/18 posted in  Tips

亚马逊云(aws)提供了4.9核心主机

今天发行aws提供了4.9的主机

4.9.76-38.79.amzn2.x86_64

并且aws用的是什么虚拟化技术呢?
我们使用virt-what进行查看

如果没有可以通过 yum install virt-what 进行安装

结果是

xen-hvm

如何开通BBR?
在sysctl.conf里面添加如下2条信息

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

之后执行 sysctl -p

即可开启BBR,查看BBR是否启用使用来查看

lsmod | grep bbr

2018/01/17 posted in  Tips