Solr安装部署

1.下载Solr(可官网下载最新版)

wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/7.1.0/solr-7.1.0.zip

2.解压

unzip solr-7.1.0.zip

3.安装


mkdir -p /opt/solr-7.1.0/installation/
mkdir -p /opt/solr-7.1.0/installation/
cd solr-7.1.0/bin
./install_solr_service.sh /opt/solr-7.1.0.zip -d /opt/solr-7.1.0/data/ -i /opt/solr-7.1.0/installation/ -p 8080 -s solr -u solr

-d solr数据数据目录,比如存放logs,pid文件,core目录等等。默认在/var/solr
-i solr程序安装目录,默认在/opt。安装目录必须先创建好。
-p 执行solr绑定的端口,默认是8983端口。
-s solr服务的名称,默认是solr。可以指定别的,比如上面的 lcsolr
-u solr服务运行或者solr文件拥有者的用户,默认是solr。也只可以指定别的,如果指定的不存在怎会先创建相关用户
-n solr安装完毕之后不启动solr服务

安装完成后可以用service solr status查看运行情况,浏览器打开http://ip:8080查看运行结果

4.给服务添加登录权限:默认solr是通过http://ip:8080直接打开,这样不是很安全,我们需要加个用户名和密码做权限验证。

  • cd solr-7.1.0/installation/solr/server/etc && vi role.properties,内容如下:#
    # 这个文件定义用户名,密码和角色
    #
    # 格式如下
    # : [, …]
    #
    #userName: password,role
    test: 123,admin
  • cd solr-7.1.0/installation/solr/server/contexts && vi solr-jetty-context.xml,文件中插入安全处理程序设置标签
    <!-- 安全处理程序设置 -->
      <Get name="securityHandler">
        <Set name="loginService">
          <New class="org.eclipse.jetty.security.HashLoginService">
            <Set name="name">Role</Set>
            <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/role.properties</Set>
          </New>
        </Set>
      </Get>
    
  • cd solr-7.1.0/installation/solr/server/solr-webapp/webapp/WEB-INF && vi web.xml,文件中插入标签
    <!-- Rule -->
      <security-constraint>
        <web-resource-collection>
          <web-resource-name>Solr</web-resource-name>
          <url-pattern>/</url-pattern>
        </web-resource-collection>
        <auth-constraint>
          <role-name>admin</role-name><!-- 验证的角色,别写成用户名,如有多个角色可以写多个role-name 标签-->
        </auth-constraint>
      </security-constraint>
      <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>Role</realm-name>
      </login-config>
    

5.新建一个core

cd /opt/solr-7.1.0/data/data
mkdir -p station_snapshot/data
mkdir -p station_snapshot/conf
cd station_snapshot/conf
cp /opt/solr-7.1.0/installation/solr-7.1.0/server/solr/configsets/_default/conf/solrconfig.xml .
cp /opt/solr-7.1.0/installation/solr-7.1.0/server/solr/configsets/_default/conf/stopwords.txt .
cp /opt/solr-7.1.0/installation/solr-7.1.0/server/solr/configsets/_default/conf/synonyms.txt .
cp /opt/solr-7.1.0/installation/solr-7.1.0/server/solr/configsets/_default/conf/managed-schema schema.xml

schema.xml里定义了字段类型和字段,可以根据需要自行修改
6.打开http://ip:8080,Core Admin中Add Core

Mysql主从备份停步后处理方法

1.停止同步

stop slave

2.查看错误表

show slave status/G

3.备注主库错误表
4.删除主从库错误表
5.跳过错误同步

SET GLOBAL sql_slave_skip_counter = 1;

6.还原主错误表数据
7.开启同步

start slave

Mysql 5.1.x上级到Mysql5.6.x(yum方式)

1.备份

mysqldump --all-databases -p -u root > /home/mysql.data.bak
cp /etc/my.cnf /etc/my.cnf.bak
cp -R /var/lib/mysql/mysql/ /var/lib/mysql/mysql_bak

2.删除老版本

yum remove mysql mysql-*
rpm -qa | grep mysql
yum remove mysql mysql-server mysql-libs compat-mysql51
yum list installed | grep mysql

3.安装

rpm -Uvh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
yum install mysql-community-server

4.安装后升级

mysql_upgrade --protocol=tcp -P3306 -p

升级完成,密码和数据库会自动有的

Java内存分析

jmap -histo 26890 | more

jstat -gcutil 340[pid] 10000[interval]

这个命令是每个10秒钟输出一次jvm的gc信息


S0 S1 E O P YGC YGCT FGC FGCT GCT

54.62 0.00 42.87 43.52 86.24 1792 5.093 33 7.670 12.763

S0:新生代的susvivor0区,空间使用率为5462%

S1:新生代的susvivor1区,空间使用率为0.00%(因为还没有执行第二次minor收集)

E:eden区,空间使用率42.87%

O:旧生代,空间使用率43.52%

P:持久带,空间使用率86.24%

YGC:minor gc执行次数1792次

YGCT:minor gc耗费的时间5.093毫秒

FGC:full gc执行次数33

FGCT:full gc耗费的时间7.670毫秒

GCT:gc耗费的总时间12.763毫秒

H5离线应用offline manifest


    window.applicationCache.addEventListener("checking", function () {
        console.log("checking");
    }, true);
    window.applicationCache.addEventListener("noupdate", function () {
        console.log("noupdate");
        //init code
    }, true);
    window.applicationCache.addEventListener("downloading", function () {
        console.log("downloading");
    }, true);
    window.applicationCache.addEventListener("progress", function (e) {
        console.log("progress", e.loaded, e.total);
        $('#process').html(parseInt(100 * e.loaded / e.total) + '%');
    }, true);
    window.applicationCache.addEventListener("updateready", function () {
        console.log("updateready");
        //init code
    }, true);
    window.applicationCache.addEventListener("cached", function () {
        console.log("cached");
        //init code
    }, true);
    window.applicationCache.addEventListener("error", function () {
        console.log("error");
    }, true);

CSS3动画

        .gif-1 {
            display: block;
            width: 150px;
            height: 220px;
            background: url(images/animation/ku_animation.png) 0 0 no-repeat;
            background-size: 100%;
            animation: ku 0.4s steps(14) infinite
        }

        @keyframes ku {
            from {
                background-position: 0 0;
            }
            to {
                background-position: 0 -3080px;
            }
        }

假设图片为150*3300,为15帧,每帧为150*220则

  1. background-position: 0 -3080px;    -3080为长图height-一帧的高度,即3300-220=3080
  2. animation: ku 0.4s steps(14) infinite     0.4s内完成整个懂的年华,steps为15帧-1=14

JS生成随机数

//parseInt(Math.random()*(上限-下限+1)+下限); 1-10
var count = Math.floor(Math.random() * 10 + 1);

一句shell命令搞定代码行数统计

最粗略版
find . -name “*.java”|xargs wc -l|grep “total”|awk ‘{print $1}’
find . -name “*.java”|xargs cat|wc -l #Output:37634

去除空行版
find . -name “*.java”|xargs cat|grep -v ^$|wc -l #Output:36335

去除注释版
# exclude the lines begin with //
find . -name “*.java”|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l #Output:36064

禅道小分辨率下BUG列表显示不全

禅道小分辨率下BUG列表显示不全,比如1280*800分辨率下解决日期、创建日期就不会显示。

解决方案:修改~/config/config.php 里 $config->wideSize = 1400 为 1000

confluence wiki 安装破解汉化

说明:此文在confluence-wiki-5.6.5版本亲测通过
附件:http://pan.baidu.com/s/1sjulMBr (包括了wiki的程序以及破解汉化需要的所有文件)


一、附件文件说明

1.atlassian-confluence-5.6.5.tar.gz    confluence wiki官方程序

2.mysql-connector-java-5.1.25-bin.jar    如果使用mysql需要此驱动

3.confluence5.x-crack.zip    破解工具

4.atlassian-extras-2.4.jar    破解需要的jar包

5.Confluence-Language-STD-CN.jar    汉化包

二、安装官方程序

1.tar -zxvf atlassian-confluence-5.6.5.tar.gz

2.vi atlassian-confluence/WEB-INFO/class/confluence-init.properties;修改confluence.home参数为自定一个目录,便于升级管理,license信息也在这个目录。

3.cd atlassian-confluence/bin && ./atlassian-confluence-start.sh(具体名字忘记了)
说明:当然我们可以自己装个tomcat,然后把atlassian-confluence下的confluence目录拿出来,然后配置下tomcat的server.xml(我就是这么做的)

4.启动成功后,浏览器打开,在出来的页面选右边这个选项,然后就进入要求输入license key的界面。这样我们官方程序以及安装成功

三、破解

1.解压附件中的confluence5.x-crack.zip,不用理会里面的atlassian-extras-2.4.jar,这个应该是其它版本用的。

2.我们直接进入iNViSiBLE,根据自己的系统运行keygen.sh或keygen.bat(需要有java运行环境)

3.在出来的程序界面中随便输入name,Server ID为《二、安装官方程序》第四步中的Server ID

4.点击path,选择附件中的atlassian-extras-2.4.jar,此时会生成一个新的atlassian-extras-2.4.jar,原来的jar变为了atlassian-extras-2.4.bak,将atlassian-extras-2.4.jar再重命名为atlassian-extras-3.2.jar,至此,我们最终需要的破解文件atlassian-extras-3.2.jar准备好了

5.点击gen,生成的key复制下,等下需要用到

6.进入confluence服务器的atlassian-confluence/confluence/WEB-INF/lib包下,把那6个atlassian-extras开头的jar包全部删掉,替换为我们刚刚生成好的atlassian-extras-3.2.jar。另外需要注意,如果使用mysql需要吧附件中的mysql-connector-java-5.1.25-bin.jar也放到这个目录里

7.重启confluence

8.重启后进入《二、安装官方程序》第四步界面,需要填入key,这个就是上面第五步中复制的key。

9.复制后下一步进入选择数据库连接。根据自己情况选择。貌似暂时不支持CentOS7 Mariadb,反正这里我搞了挺久,后来还是换成了Postgresql数据库。

10.OK,其它就一步步下去很简单了

四、注意点

1.由于我使用的是CentOS7,已经不再支持Mysql数据库,取而代之的是Mysql的一个分组Mariadb,找了很多文档说不支持Mariadb什么的,但是试了下,表倒是创建了几张出来,但是由于其它原因没有成功,后来也就放弃了尝试,直接换成了postgresql。

2.confluence-wiki对系统内存要求比较高,建议内存2G+,我用的2G,装完后只剩了几百兆的内存了。512G、1G的内存在配置完数据库连接后的下一步容易卡死,然后Tomcat报内存溢出