安装目录:/usr/local/mysql
数据库目录:/usr/local/mysql/data
一、安装前面

1
2
3
添加用户
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
1
2
yum安装依赖包
yum -y install gcc* ncurses-devel cmake bison
1
2
3
4
解压创建目录
tar zxf mysql-5.6.13.tar.gz
cd mysql-5.6.13
mkdir -p /usr/local/mysql/data
1
2
3
cmake配置以及编译安装mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGING=1 -DWITH_INNOBASE_STORAGE_ENGING=1 -DWITH_MEMORY_STORAGE_ENGING=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
make && make install
1
2
3
4
5
6
拷贝配置文件
cp support-files/my-default.cnf /usr/local/mysql/my.cnf
初始化数据库
cd /usr/local/mysql/scripts/
./mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/
`
1
chown -R mysql:mysql /usr/local/mysql/
1
2
3
4
5
6
7
8
9
修改my.cnf配置
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/mysql_error.log
pid-file = /usr/local/mysql/mysql.pid
user = mysql
tmpdir = /tmp
`
1
2
3
4
5
6
拷贝启动文件配置安全启动向导初始化
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +X /etc/init.d/mysqld
ln -s /usr/local/mysql/my.cnf /etc
bin/mysql_secure_installation
`
1
2
3
4
5
设置软连接
ln -s /usr/local/mysql/bin/* /usr/local/bin/
ln -s /usr/local/mysql/include/mysql/* /usr/include/
ln -s /usr/local/mysql/lib/* /usr/lib/
`

1
2
启动 
/etc/init.d/mysqld start

找到本地C:\Windows\Fonts\simkai.ttf(楷体)上传到服务器zabbix网站目录fonts目录下

1
2
3
4
zabbix网站根目录下面
sed -i 's/DejaVuSans/simkai/g' ./include/defines.inc.php
vim /include/locales.inc.php
'zh_CN' => ['name' => _('Chinese (zh_CN)'),'display' => true],

编译生成OpenSSH RPM升级OpenSSH至7.1

安装编译所需工具

1
2
yum -y groupinstall "Development tools"
yum -y install pam-devel rpm-build rpmdevtools zlib-devel krb5-devel tcp_wrappers tcp_wrappers-devel tcp_wrappers-libs libX11-devel xmkmf libXt-devel wget

配置RPM编译环境

1
mkdir -pv rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

下载源码包

1
2
3
cd ~/rpmbuild/SOURCES/
wget http://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.1p2.tar.gz
wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz

配置SPEC文件

1
2
3
4
5
6
7
cd ~/rpmbuild/SPECS
tar xfz ../SOURCES/openssh-7.1p2.tar.gz openssh-7.1p2/contrib/redhat/openssh.spec
mv openssh-7.1p2/contrib/redhat/openssh.spec openssh-7.1p2.spec
rm -rf openssh-7.1p2
sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh-7.1p2.spec
sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" openssh-7.1p2.spec
sed -i -e "s/BuildPreReq/BuildRequires/g" openssh-7.1p2.spec

编译生成RPM

1
2
cd ~/rpmbuild/SPECS
rpmbuild -bb openssh-7.1p2.spec

查看生成的RPM

1
2
3
4
5
6
7
cd ~/rpmbuild/RPMS/x86_64
ls
-rw-r--r-- 1 root root 445248 Nov 18 10:28 openssh-7.1p2-1.x86_64.rpm
-rw-r--r-- 1 root root 41764 Nov 18 10:28 openssh-askpass-7.1p2-1.x86_64.rpm
-rw-r--r-- 1 root root 577584 Nov 18 10:28 openssh-clients-7.1p2-1.x86_64.rpm
-rw-r--r-- 1 root root 16960 Nov 18 10:28 openssh-debuginfo-7.1p2-1.x86_64.rpm
-rw-r--r-- 1 root root 390076 Nov 18 10:28 openssh-server-7.1p2-1.x86_64.rpm

卸载旧openssh

1
rpm -qa | grep openssh |xargs rpm -e  --nodeps

安装生成RPM包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
yum install openssh-*
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Examining openssh-7.1p2-1.x86_64.rpm: openssh-7.1p2-1.x86_64
Marking openssh-7.1p2-1.x86_64.rpm to be installed
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* remi-safe: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.aliyun.com
Examining openssh-askpass-7.1p2-1.x86_64.rpm: openssh-askpass-7.1p2-1.x86_64
Marking openssh-askpass-7.1p2-1.x86_64.rpm to be installed
Examining openssh-clients-7.1p2-1.x86_64.rpm: openssh-clients-7.1p2-1.x86_64
Marking openssh-clients-7.1p2-1.x86_64.rpm to be installed
Examining openssh-debuginfo-7.1p2-1.x86_64.rpm: openssh-debuginfo-7.1p2-1.x86_64
Marking openssh-debuginfo-7.1p2-1.x86_64.rpm to be installed
Examining openssh-server-7.1p2-1.x86_64.rpm: openssh-server-7.1p2-1.x86_64
Marking openssh-server-7.1p2-1.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package openssh.x86_64 0:7.1p2-1 will be installed
---> Package openssh-askpass.x86_64 0:7.1p2-1 will be installed
---> Package openssh-clients.x86_64 0:7.1p2-1 will be installed
---> Package openssh-debuginfo.x86_64 0:7.1p2-1 will be installed
---> Package openssh-server.x86_64 0:7.1p2-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================================================================================
Installing:
openssh x86_64 7.1p2-1 /openssh-7.1p2-1.x86_64 1.9 M
openssh-askpass x86_64 7.1p2-1 /openssh-askpass-7.1p2-1.x86_64 73 k
openssh-clients x86_64 7.1p2-1 /openssh-clients-7.1p2-1.x86_64 2.0 M
openssh-debuginfo x86_64 7.1p2-1 /openssh-debuginfo-7.1p2-1.x86_64 0.0
openssh-server x86_64 7.1p2-1 /openssh-server-7.1p2-1.x86_64 937 k

Transaction Summary
====================================================================================================================================================================================================
Install 5 Package(s)

Total size: 4.9 M
Installed size: 4.9 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
** Found 5 pre-existing rpmdb problem(s), 'yum check' output follows:
git-1.7.1-4.el6_7.1.x86_64 has missing requires of openssh-clients
gnome-user-share-2.28.2-3.el6.x86_64 has missing requires of httpd >= ('0', '2.2.0', None)
php-5.6.26-1.el6.remi.x86_64 has missing requires of httpd-mmn = ('0', '20051115', None)
python-meh-0.12.1-3.el6.noarch has missing requires of openssh-clients
systemtap-client-2.9-4.el6.x86_64 has missing requires of openssh-clients
Installing : openssh-7.1p2-1.x86_64 1/5
Installing : openssh-askpass-7.1p2-1.x86_64 2/5
Installing : openssh-server-7.1p2-1.x86_64 3/5
Installing : openssh-clients-7.1p2-1.x86_64 4/5
Installing : openssh-debuginfo-7.1p2-1.x86_64 5/5
Verifying : openssh-askpass-7.1p2-1.x86_64 1/5
Verifying : openssh-server-7.1p2-1.x86_64 2/5
Verifying : openssh-7.1p2-1.x86_64 3/5
Verifying : openssh-clients-7.1p2-1.x86_64 4/5
Verifying : openssh-debuginfo-7.1p2-1.x86_64 5/5

Installed:
openssh.x86_64 0:7.1p2-1 openssh-askpass.x86_64 0:7.1p2-1 openssh-clients.x86_64 0:7.1p2-1 openssh-debuginfo.x86_64 0:7.1p2-1 openssh-server.x86_64 0:7.1p2-1
Complete!

将配置文件更新为新版本,避免某些参数变更造成无法远程登录

1
cp /etc/ssh/sshd_config.rpmnew /etc/ssh/sshd_config

制作ssh rpm 包升级后,ssh无法登录系统,报错如下:

1
2
PAM unable to dlopen(/lib64/security/pam_stack.so): /lib64/security/pam_stack.so: cannot open shared object file: No such file or directory
PAM adding faulty module: /lib64/security/pam_stack.so

解决方法:
ssh rpm 升级后会修改/etc/pam.d/sshd 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#%PAM-1.0
auth required pam_stack.so service=system-auth
account required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
需要恢复原来的模样,如下:

#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth

重启SSH服务

1
/etc/init.d/sshd restart

nginx日志按日期自动切割脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
#nginx日志切割脚本
#!/bin/bash
#设置日志文件存放目录
logs_path="/usr/local/nginx/logs/"
#设置pid文件
pid_path="/usr/local/nginx/nginx.pid"
#重命名日志文件
mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
#向nginx主进程发信号重新打开日志
kill -USR1 `cat ${pid_path}`
crontab -e 设置作业
0 0 * * * bash /usr/local/nginx/nginx_log.sh
这样就每天的00分把nginx日志重命名为日期格式,并重新生成今天的新日志文件。

1
2
3
4
5
6
7
8
9
10
11
12
#生成一个RSA密钥 

$ openssl genrsa -des3 -out server.key 1024
#拷贝一个不需要输入密码的密钥文件

$ openssl rsa -in server.key -out server_nopass.key
#生成一个证书请求

$ openssl req -new -key server.key -out server.csr
#自己签发证书

$ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

nginx 配置ssl

1
2
ssl_certificate /etc/nginx/ssl/xxx.com.crt;
ssl_certificate_key /etc/nginx/ssl/xxx.com.key;

apache2.4.23编译安装
下载apache

1
2
wget http://apache.fayea.com//httpd/httpd-2.4.23.tar.gz
tar zxvf httpd-2.4.23.tar.gz

下载安装apr

1
2
3
4
5
6
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.gz
tar zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make &install make
cp ../apr-1.5.2 ../httpd-2.4.23/srclib/apr

下载apr-util编译安装apache

1
2
3
4
5
6
7
 wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
tar zxvf apr-util-1.5.4.tar.gz
cp -r apr-util-1.5.4 httpd-2.4.23/srclib/apr-util

cd httpd-2.4.23
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-included-apr
make && make install

1
2
apahce启动命令:
/usr/local/apache/bin/aachectl start |stop|restart

生产配置实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

<Connectorport="8080"protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="200"
acceptCount="900"
disableUploadTimeout="true"
connectionTimeout="20000"
URIEncoding="UTF-8"
enableLookups="false"
redirectPort="8443"
compression="on"
compressionMinSize="1024"
compressableMimeType="text/html,text/xml,text/css,text/javascript"/>

参数说明:
org.apache.coyote.http11.Http11NioProtocol:调整工作模式为Nio
有三种工作模式:Bio、Nio和Apr
Bio(Blocking I/O):默认工作模式,阻塞式I/O操作,没有任何优化技术处理,性能比较低。
Nio(New I/O or Non-Blocking):非阻塞式I/O操作,有Bio有更好的并发处理性能。
Apr(Apache Portable Runtime,Apache可移植运行库):首选工作模式,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
tomcat利用基于Apr库tomcat-native来实现操作系统级别控制,提供一种优化技术和非阻塞式I/O操作,大大提高并发处理能力。但是需要安装apr和tomcat-native库。

1
2
3
4
5
6
7
8
9
10
11
maxThreads:最大线程数,默认150。增大值避免队列请求过多,导致响应缓慢。
minSpareThreads:最小空闲线程数。
maxSpareThreads:最大空闲线程数,如果超过这个值,会关闭无用的线程。
acceptCount:当处理请求超过此值时,将后来请求放到队列中等待。
disableUploadTimeout:禁用上传超时时间
connectionTimeout:连接超时,单位毫秒,0代表不限制
URIEncoding:URI地址编码使用UTF-8
enableLookups:关闭dns解析,提高响应时间
compression:启用压缩功能
compressionMinSize:最小压缩大小,单位Byte
compressableMimeType:压缩的文件类型

调整JVM内存大小:
在catalina.sh增加JAVA_OPTS=’-Xms512m -Xmx1024m -XX:PermSize=128m-XX:MaxPermSize=256m’
-Xms JVM初始最小堆内存,默认为物理内存1/64,不要设置过大,否则增加回收时间(暂停应用),相对频率少,相反,频率高。
-Xmx JVM最大允许堆内存大小,默认为物理内存1/4
-XX:PermSize JVM初始分配非堆内存大小
-XX:MaxPermSize JVM最大允许分配的非堆内存

一. if的基本语法

  1. if与[之间要有空格
  2. []与判断条件之间也必须有空格
  3. ]与;之间不能有空格

二. 对字符串的判断

  1. if [ str1=str2 ];then fi #当两个字符串相同时返回真
  2. if [ str1!=str2 ];then fi #当两个字符串不相等时返回真
  3. if [ -n str1 ];then fi #当字符串的长度大于0时返回真 (判断变量是否有值)
  4. if [ -z str1 ];then fi #当字符串的长度为0时返回真

三. 对数字的判断

  1. int1 -eq int2 #int1和int2相等
  2. int1 -ne int2 #int1不相等int2
  3. int1 -gt int2 #int1大于int2
  4. int1 -ge int2 #int1大于等于int2
  5. int1 -lt int2 #int1小于int2
  6. int1 -le int2 #int1小于等于int2

四. 对文件属性的判断

  1. -r file #用户可读为真
  2. -w file #用户可写为真
  3. -x file #用户可执行为真
  4. -f file #文件存在且为正规文件为真
  5. -d file #如果是存在目录为真
  6. -c file #文件存在且为字符设备文件
  7. -b file #文件存在且为块设备文件
  8. -s file #文件大小为非0为真,可以判断文件是否为空
  9. -e file #如果文件存在为真

五. 逻辑判断

  1. -a #与
  2. -o #或
  3. ! #非

1.首先到Maven官网下载安装文件,目前最新版本为3.3.9,下载文件为apache-maven-3.3.9-bin.tar.gz,下载可以使用wget命令;

1
wget http://apache.fayea.com/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

2.进入下载文件夹,找到下载的文件,运行如下命令解压

1
tar -xvf  apache-maven-3.3.9-bin.tar.gz

解压后的文件夹名为apache-maven-3.3.9

3.使用mv命令将apache-maven-3.3.9文件夹拷贝到自己指定的文件夹,比如/usr/local/下

1
mv -rf apache-maven-3.3 /usr/local/

4.配置环境变量,编辑/etc/profile文件,添加如下代码

1
2
3
MAVEN_HOME=/usr/local/apache-maven-3.3.9
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

5.保存文件,并运行如下命令使环境变量生效
source /etc/profile

6.在控制台输入如下命令,如果能看到Maven相关版本信息,则说明Maven已经安装成功
mvn -v