Initial commit

This commit is contained in:
谢洪龙
2017-08-23 14:09:21 +08:00
commit 2627e2f5c4
231 changed files with 16861 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
1、首先要先安装GCC GCC-C++ Openssl等以来模块:
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
2、再安装ncurses模块
yum -y install ncurses-devel
yum install ncurses-devel
3、下载Erang源代码文件otp_src_R15B03-1.tar.gz文件,并对其付权限和解压文件:
chmod +x otp_src_R15B03-1.tar.gz
tar -xzvf otp_src_R15B03-1.tar.gz
mv otp_src_R15B03-1 erlang_R15B #重命名解压厚的文件
4、下面是安装erlang的重头戏,依次执行以下操作:
cd erlang_R15B/
./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac //不用java编译,故去掉java避免错误
make && make install //编译后安装
5、配置erlang环境:
vi /etc/profile
export PATH=$PATH:/usr/local/erlang/bin
#让配置生效:
source /etc/profile
好了,现在erlang的已经配置好了,现在我们来看一下陪在结果:
# whereis erlang
erlang: /usr/local/erlang
+4
View File
@@ -0,0 +1,4 @@
1、启动eclipse,进入Help → Install new software..,如下所示,填写地址 http://download.erlide.org/update
2、安装完后重启eclipse。进入Windows → Preferences后,选择Erlang →Installed runtimes,然后Add...,接着Browse..找到erlang的安装目录
Binary file not shown.
+45
View File
@@ -0,0 +1,45 @@
查看CentOS自带JDK是否已安装。
输入:yum list installed |grep java
若有自带安装的JDK,如何卸载CentOS系统自带Java环境?
◆卸载JDK相关文件输入:yum -y remove java-1.7.0-openjdk*。
◆卸载tzdata-java输入:yum -y remove tzdata-java.noarch。
当结果显示为Complete!即卸载完毕。
注:“*”表示卸载掉java 1.7.0的所有openjdk相关文件。
检查CentOS系统网络连接是否正常。
◆使用yum方式安装需要连接网络下载Java相应安装文件,故此需要使用ping命令测试网络;如:ping 百度URL即可。
查看yum库中的Java安装包。
◆输入:yum -y list java* 。
使用yum安装Java环境。
◆输入:yum -y install java-1.7.0-openjdk* ,以yum库中java-1.7.0为例。
当结果显示为Complete!即安装完毕。
注:“*”表示将java-1.7.0的所有相关Java程序都安装上。
查看刚安装的Java版本信息。
◆输入:java -version 可查看Java版本;
◆输入:javac 可查看Java的编译器命令用法(可略)。
1、查询现有安装版本
rpm -qa | grep jdk
2、卸载openjdk
sudo yum -y remove java-1.6.0-openjdk
+13
View File
@@ -0,0 +1,13 @@
#打开/etc/profilesudo vim /etc/profile)在最后面添加如下内容:
export JAVA_HOME=/usr/local/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
#让配置生效:
source /etc/profile
#验证
java version
+46
View File
@@ -0,0 +1,46 @@
#允许当前用户进程打开的文件数限制
ulimit -n
#修改上述限制
ulimit -n 20000
#修改Linux系统对用户的关于打开文件数的软限制和硬限制
第一步,修改/etc/security/limits.conf文件,在文件中添加如下行:
speng soft nofile 10240
speng hard nofile 10240
其中speng指定了要修改哪个用户的打开文件数限制,可用'*'号表示修改所有用户的限制;soft或hard指定要修改软限制还是硬限制;10240则指定了想要修改的新的限制值,即最大打开文件数(请注意软限制值要小于或等于硬限制)
查看Linux系统级的最大打开文件数限制,使用如下命令:
cat /proc/sys/fs/file-max
第二步,修改/etc/pam.d/login文件,在文件中添加如下行:
session required /lib/security/pam_limits.so
这是告诉Linux在用户完成系统登录后,应该调用pam_limits.so模块来设置系统对该用户可使用的各种资源数量的最大限制(包括用户可打开的最大文件数限制),而pam_limits.so模块就会从/etc/security/limits.conf文件中读取配置来设置这些限制值。修改完后保存此文件。
第三步,查看Linux系统级的最大打开文件数限制,使用如下命令:
cat /proc/sys/fs/file-max
修改此硬限制的方法是修改/etc/rc.local脚本,在脚本中添加如下行:
  echo 22158 > /proc/sys/fs/file-max
内核编译时默认设置的本地端口号范围可能太小,因此需要修改此本地端口范围限制。
  第一步,修改/etc/sysctl.conf文件,在文件中添加如下行:
  net.ipv4.ip_local_port_range = 1024 65000
这表明将系统对本地端口范围限制设置为1024~65000之间。请注意,本地端口范围的最小值必须大于或等于1024;而端口范围的最大值则应小于或等于65535.修改完后保存此文件。
  第二步,执行sysctl命令:
  [speng@as4 ~]$ sysctl -p
  如果系统没有错误提示,就表明新的本地端口范围设置成功。如果按上述端口范围进行设置,则理论上单独一个进程最多可以同时建立60000多个TCP客户端连接。
#设置时间同步
ntpdate ntp.api.bzNTP服务器(上海)
#修改时区为上海
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
+14
View File
@@ -0,0 +1,14 @@
#防火墙配置
vi /etc/sysconfig/iptables
-A INPUT -m state state NEW -m tcp -p tcp dport 80 -j ACCEPT(允许80端口通过防火墙)
-A INPUT -m state state NEW -m tcp -p tcp dport 3306 -j ACCEPT(允许3306端口通过防火墙)
#重启防火墙使配置生效
/etc/init.d/iptables restart
#查看iptables状态
service iptables status
#服务重启
service iptables restart iptables
#服务禁用
ervice iptables stop iptables
+14
View File
@@ -0,0 +1,14 @@
HTTP消息发布接口测试
emqttd支持通过HTTP接口从应用程序向MQTT客户端发布消息。
例子:
curl -v --basic -u user:passwd -d "qos=1&retain=0&topic=/a/b/c&message=hello" -k http://localhost:8083/mqtt/publish
参数:
qos: QoS(0, 1, 2)
retain: Retain(0, 1)
topic: Topic
message: Message
+100
View File
@@ -0,0 +1,100 @@
#中文乱码
修改 /etc/mysql/my.cnf (默认的安装路径)
vim /etc/mysql/my.cnf
打开my.cnf后,在文件内的[mysqld]下增加如下两行设置:
character_set_server=utf8
init_connect='SET NAMES utf8'
#升级,在linux上先查看系统的版本号,根据版本号对应下载
more /etc/redhat-release
rpm -i http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
yum list mysql*
yum install mysql-community-server
1、安装
查看有没有安装过:
yum list installed mysql*
rpm -qa | grep mysql*
查看有没有安装包:
yum list mysql*
安装mysql客户端:
yum install mysql
安装mysql 服务器端:
yum install mysql-server
yum install mysql-devel
删除
yum -y remove mysql*
2、启动&&停止
数据库字符集设置
mysql配置文件/etc/my.cnf中加入default-character-set=utf8
启动mysql服务:
service mysqld start或者/etc/init.d/mysqld start
开机启动:
chkconfig -add mysqld,查看开机启动设置是否成功chkconfig --list | grep mysql*
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
停止:
service mysqld stop
2、登录
创建root管理员:
mysqladmin -u root password 123456
www.2cto.com
登录:
mysql -u root -p输入密码即可。
忘记密码:
service mysqld stop
mysqld_safe --user=root --skip-grant-tables
mysql -u root
use mysql
update user set password=password("new_pass") where user="root";
flush privileges;
3、远程访问
开放防火墙的端口号
mysql增加权限:mysql库中的user表新增一条记录host为“%”,user为“root”。
4、Linux MySQL的几个重要目录
www.2cto.com
数据库目录
/var/lib/mysql/
配置文件
/usr/share /mysqlmysql.server命令及配置文件)
相关命令
/usr/binmysqladmin mysqldump等命令)
启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)
创建用户:
create user 'ifish'@'localhost' identified by 'ifish7pwd';
赋权限
grant all on myfishdb.* to 'ifish'@'localhost';
删除用户
drop user 'ifish'@'localhost';
创建数据库
DROP DATABASE IF EXISTS `myfishdb`;
CREATE DATABASE `myfishdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

+155
View File
@@ -0,0 +1,155 @@
#user nobody;
#工作的子进程数量(通常等于CPU数量或者2倍于CPU)
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#指定pid存放文件
#pid logs/nginx.pid;
events {
#使用网络IO模型linux建议epollFreeBSD建议采用kqueuewindow下不指定
#use epoll;
#允许最大连接数
worker_connections 1024;
}
http {
include 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"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream yugb {
#节点列表
#ip_hash;
#fair;#第三方
server 192.168.0.122:8080 weight=10;
server 192.168.0.122:8088 weight=10;
server 192.168.0.152:8080 weight=10;
#定义负载均衡设备的Ip及设备状态
#server 127.0.0.1:8000 down;
#server 127.0.0.1:8080 weight=2;
#server 127.0.0.1:6801;
#server 127.0.0.1:6802 backup;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~ .*\.(gif|jpg|jpeg|png|)$ {
root D:/Img; #静态文件存放路径
}
location ~ .*\.(apk)$ {
root D:/APK; #静态文件存放路径
}
location / {
#root html;
index index.jsp;
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 1;
#禁用缓存
proxy_buffering off;
#请求转向mysvr 定义的服务器列表
proxy_pass http://yugb;
}
location /status {
stub_status on;
access_log off;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

+26
View File
@@ -0,0 +1,26 @@
#检查是否安装了pcre
rpm -qa pcre
#安装pcre
sudo yum install pcre-devel pcre -y
#安装openssl
sudo yum install openssl-devel openssl -y
#nginx安装
tar zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
sudo ./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_dav_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-mail \
--with-mail_ssl_module \
--with-debug \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi
sudo make && make install
+33
View File
@@ -0,0 +1,33 @@
首先,进入你想创建证书和私钥的目录,例如:
$ cd /usr/local/nginx/conf
创建服务器私钥,命令会让你输入一个口令:
$ openssl genrsa -des3 -out server.key 2048
创建签名请求的证书(CSR):
$ openssl req -new -key server.key -out server.csr
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
配置nginx
最后标记证书使用上述私钥和CSR
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
修改Nginx配置文件,让其包含新标记的证书和私钥:
server {
server_name YOUR_DOMAINNAME_HERE;
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
}
+17
View File
@@ -0,0 +1,17 @@
#安装
tar -zxvf redios-3.0.3.tar.gz
cd redios-3.0.3.tar.gz
make && make install
#启动服务&表示后台运行
cd /usr/local/redis-3.0.3/src
redis-server &或者 redis-server redis.conf &
#停止redis服务
redis-cli shutdown
#客户端连接
redis-cli
#验证密码
auth 123456
+47
View File
@@ -0,0 +1,47 @@
安装svn
1、yum install subversion
2、输入rpm -ql subversion查看安装位置
输入 svn --help可以查看svn的使用方法
3、创建svn版本库目录
mkdir -p /var/svn/svnrepos
4、创建版本库
svnadmin create /var/svn/svnrepos
5、进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan
7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。
8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
9、启动svn版本库
svnserve -d -r /var/svn/svnrepos
+30
View File
@@ -0,0 +1,30 @@
#LINUX 查看tcp连接数及状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TCP连接状态详解
LISTEN: 侦听来自远方的TCP端口的连接请求
SYN-SENT: 再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED 代表一个打开的连接
FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2 从远程TCP等待连接中断请求
CLOSE-WAIT: 等待从本地用户发来的连接中断请求
CLOSING: 等待远程TCP对连接中断的确认
LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED 没有任何连接状态
#查看9955端口的tcp连接数
netstat -nat|grep -i "9955"|wc -l
3)、统计已连接上的,状态为“established
netstat -na|grep ESTABLISHED|wc -l
研究发现,Linux对外的随机分配端口是由一定限制的,理论上单机对外的端口最大值为65535,除去一些保留端口和被占用端口外,也应该在6W左右,但实际上单机建立对外连接时,默认不超过28232个连接。
执行以下命令就很清楚原因了:
$ cat /proc/sys/net/ipv4/ip_local_port_range
输出结果为:
32768 61000
这就是Linux随机分配端口的范围,如果在该范围内有被占用的端口,那么连接数肯定小于28232.如果想更改这个范围,可以执行以下命令:
# echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range
+19
View File
@@ -0,0 +1,19 @@
安装
wget -c http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.65/bin/apache-tomcat-7.0.65.tar.gz
tar -xzvf apache-tomcat-7.0.64.tar.gz
配置
Windows下,在文件/bin/catalina.batUnix下,在文件/bin/catalina.sh的前面,增加如下设置:
  JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'
  需要把这个两个参数值调大。例如:
  set JAVA_OPTS=-Xms256m -Xmx512m
  表示初始化内存为256MB,可以使用的最大内存为512MB。
第二种方法: 环境变量中设 变量名:JAVA_OPTS 变量值:-Xms512m -Xmx512m
+64
View File
@@ -0,0 +1,64 @@
#可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
top -u oracle
PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称
  top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。
  第一部分 -- 最上部的 系统信息栏 :
  第一行(top):
    “00:11:04”为系统当前时刻;
    “3:35”为系统启动后到现在的运作时间;
    “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
    “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
  第二行(Tasks):
    “59 total”为当前系统进程总数;
    “1 running”为当前运行中的进程数;
    “58 sleeping”为当前处于等待状态中的进程数;
    “0 stoped”为被停止的系统进程数;
    “0 zombie”为被复原的进程数;
  第三行(Cpus):
    分别表示了 CPU 当前的使用率;
  第四行(Mem):
    分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
  第五行(Swap):
    表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的
#测量一个进程占用了多少内存,linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。
/proc/meminfo 机器的内存使用信息
/proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。
/proc/pid/statm 进程所占用的内存
+66
View File
@@ -0,0 +1,66 @@
CREATE TABLE logging_event
(
timestmp BIGINT NOT NULL,
formatted_message TEXT NOT NULL,
logger_name VARCHAR(254) NOT NULL,
level_string VARCHAR(254) NOT NULL,
thread_name VARCHAR(254),
reference_flag SMALLINT,
arg0 VARCHAR(254),
arg1 VARCHAR(254),
arg2 VARCHAR(254),
arg3 VARCHAR(254),
caller_filename VARCHAR(254) NOT NULL,
caller_class VARCHAR(254) NOT NULL,
caller_method VARCHAR(254) NOT NULL,
caller_line CHAR(4) NOT NULL,
event_id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE logging_event_property (
event_id BIGINT NOT NULL,
mapped_key VARCHAR(254) NOT NULL,
mapped_value TEXT,
PRIMARY KEY(event_id, mapped_key),
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
);
CREATE TABLE logging_event_exception
(
event_id BIGINT NOT NULL,
i SMALLINT NOT NULL,
trace_line VARCHAR(254) NOT NULL,
PRIMARY KEY(event_id, i),
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
);