linux下jdk+ant安装

下载JDK安装jdk

可以将url换成其他版本,URL在http://www.oracle.com/technetwork/java/javaee/downloads/index.htm

mkdir -p /opt/java
cd /opt/java
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin"
chmod u+x jdk-6u45-linux-x64.bin
ln -s jdk-6u45-linux-x64 default

下载安装ant

wget http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.4-bin.tar.gz
tar zxf apache-ant-1.9.4-bin.tar.gz 
ln -s apache-ant-1.9.4 ant

修改profile

vim /etc/profile.d/sun-jdk.sh

export JAVA_HOME=/opt/java/default
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:.
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:.:$CLASSPATH

# ant
export ANT_HOME=/opt/java/ant
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:.:$ANT_HOME/bin

使用left join替代not exists查询

使用 NOT EXISTS

SELECT  table1.column1,  table1.column2
      FROM table1
          WHERE NOT 
              EXISTS (
                    SELECT table2.column1, table2.column2
                    FROM table2
                    WHERE table2.column1= table1.column1
                    AND table2.location_id= 6
                )
      GROUP BY Barcode

使用 LEFT JOIN

SELECT  table1.column1,  table1.column2
   FROM table1
   LEFT JOIN table2
   ON table2.column1= table1.column1
     AND table2.location_id= 6
   WHERE table2.column1 is null
   GROUP By Barcode

nginx 502 (Resource temporarily unavailable)

查看连接数和当前的连接数

netstat -ant | grep $ip:80 | wc -l   
netstat -ant | grep $ip:80 | grep EST | wc -l

查看IP访问次数

netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n

实时查看连接数

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
watch "netstat -n | awk '/^tcp/ {++S[\$NF]} END {for(a in S) print a, S[a]}'"

返回结果示例

LAST_ACK 5
SYN_RECV 30 
ESTABLISHED 1597 
FIN_WAIT1 51 
FIN_WAIT2 504 
TIME_WAIT 1057

说明

  • SYN_RECV 表示正在等待处理的请求数;
  • ESTABLISHED 表示正常数据传输状态;
  • TIME_WAIT 表示处理完毕,等待超时结束的请求数;
  • FIN_WAIT1 表示server端主动要求关闭tcp连接;
  • FIN_WAIT2 表示客户端中断连接;
  • LAST_ACK 关闭一个TCP连接需要从两个方向上分别进行关闭,双方都是通过发送FIN来表示单方向数据的关闭,当通信双方发送了最后一个FIN的时候,发送方此时处于LAST_ACK状态,当发送方收到对方的确认(Fin的Ack确认)后才真正关闭整个TCP连接;

解决办法

/etc/security/limits.conf

www-data   soft    nproc   51200
www-data   hard    nproc   16384
www-data   soft    nofile   51200
www-data   hard    nofile   51200

php-fpm配置及管理(无须重启,即可重新加载配置及LOG日志)

PHP-FPM参数

php-fpm {start|stop|quit|restart|reload|logrotate}
--start 启动php的fastcgi进程
--stop 强制终止php的fastcgi进程
--quit 平滑终止php的fastcgi进程
--restart 重启php的fastcgi进程
--reload 重新平滑加载php的php.ini
--logrotate 重新启用log文件

master进程信号

SIGINT, SIGTERM 立刻终止
SIGQUIT 平滑终止
SIGUSR1 重新打开日志文件
SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块

示例:
php-fpm 关闭:
kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重启:
kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`

nginx ssl 配置

生成证书

openssl genrsa -des3 -out xxx.key 1024  
openssl req -new -x509 -key xxx.key -out xxx.crt -days 3650  
openssl rsa -in openssl.key -out xxx_nopass.key 

默认配置

ssl                     on;
ssl_certificate         /etc/nginx/certs/xxx.crt;
ssl_certificate_key     /etc/nginx/certs/xxx_nopass.key;
ssl_session_timeout     5m;

ssl_protocols           SSLv2 SSLv3 TLSv1;
ssl_prefer_server_ciphers       on;

gitolite使用

本地生成一个证书,并传到远程服务器

生成证书

cd ~/.ssh/
ssh-kengen -f shining

将证书传送到远程服务器

scp YourName.pub  YourName@HostName:YourName.pub

安装gitolite(git服务器端)

新增一个git用户,不需要密码。
登录到git用户,可以从root用户通过su切换过去。
确认 ~/.ssh/authorized_keys 不存在
将公钥放在 ~/YourName.pub
运行下面的命令:

# 获取版本库
git clone git://github.com/sitaramc/gitolite
# 创建bin目录,用于存放安装后的文件
mkdir -p ~/bin
# 将gitolite安装到bin目录
gitolite/install -to ~/bin
# 使用YourName.pub公钥初始化版本库
gitolite setup -pk YourName.pub

设置本地的.ssh/config

vim ~/.ssh/config

host githost
  user git
  hostname HostName
  port xxx 
  identityfile ~/.ssh/YourName.pub

管理项目、人员、证书

git clone githost:gitolite-admin.git
conf下是项目及人员配置
keydir下是证书

给fastestmirror再提速

fedora和centos安装了fastermirror之后会快一些,但是还是经常选到国外的站点。

方法1:修改源配置文件(推荐,以fedora20为例)

sudo vim fedora.repo
# 找到以下这行
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
# 后面添加&country=cn
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch&country=cn
sudo vim fedora-updates.repo
# 找到以下这行
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
# 后面添加&country=cn
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch&country=cn

方法2:修改fastestmirror.conf

sudo vim /etc/yum/pluginconf.d/fastestmirror.conf

修改后清除fastestmirror和metalink缓存

sudo yum clean metadata plugins
sudo yum -y update