欢迎光临
我们一直在努力

jira断电后索引无法使用

u22e阅读(626)

背景:jira服务器因为公司断电挂掉了,重启之后,发现服务不正常,索引失败。

现象:

一、jira界面出现:Tab panel ‘com.atlassian.jira.jira-projects-plugin:issues-panel’ failed to render.

二、后台索引显示“当前,JIRA无法在后台执行重新索引,因为索引文件已丢失或已毁坏。”

解决方法

1、停止jira服务

/jira/bin/stop-jira.sh

2、进入jira的数据目录,删除索引文件

rm -rf    /jira_home/caches/indexes

3、启动jira服务

/jira/atlassian-jira-6.3.6-standalone/bin/startup.sh

4、重建jira索引

(1)、登录jira,进入设置选项中的系统设置

(2)、输入管理员密码

(3)、选择左侧菜单栏底部的索引选项

(4)、点击重新索引等待完成即可

(5)、完成后数据恢复正常!

centos7下confluence7.2和wiki详细安装教程

u22e阅读(3558)

1.安装java

yum install java -y
查看安装版本
java -version

2.安装mysql5.数据库

rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
vim /etc/yum.repos.d/mysql-community.repo

修改 mysql-community.repo 将MySQL8.0的enable=1修改成enable=0。将MySQL5.6的enable=1修改成enable=1

yum install mysql-server #安装数据库
systemctl start mysql #启动数据库
vim /etc/my.cnf #修改配置文件

#wiki
transaction-isolation = READ-COMMITTED
max_allowed_packet=512M
innodb_log_file_size=512M
innodb_buffer_pool_size=512M
innodb_file_per_table=1
collation-server=utf8_bin
character-set-server=utf8
default-storage-engine=INNODB
binlog_format=row
performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256
######################
systemctl restart mysq #重启数据库,配置文件生效

创建数据库及分配权限

create database 数据库名称 character set utf8 collate utf8_bin; #创建数据库
create user ‘confluence’@’localhost’ identified by ‘confluence’; #创建用户
grant all privileges on 数据库名称.* to ‘confluence’@’localhost’; #用户授权
flush privileges; #刷新权限

3.安装confluence

wget https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-7.2.1-x64.bin
chmod a+x atlassian-confluence-7.2.1-x64.bin
./atlassian-confluence-7.2.1-x64.bin

mysql链接驱动下载及设置

wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.24/mysql-connector-java-5.1.24.jar
cp mysql-connector-java-5.1.42-bin.jar /opt/atlassian/confluence/confluence/WEB-INF/lib/

下载crack(仅用于学习使用,商用请购买正版)

https://gitee.com/pengzhile/atlassian-agent/releases
tar -xzvf atlassian-agent-v1.2.3.tar.gz
cd atlassian-agent-v1.2.3/
cp atlassian-agent.jar /opt/atlassian/confluence/
vim /opt/atlassian/confluence/bin/setenv.sh
#####
CATALINA_OPTS=”-javaagent:/opt/atlassian/confluence/atlassian-agent.jar ${CATALINA_OPTS}”
########

启动confluence及安装配置

/opt/atlassian/confluence/bin/start-confluence.sh
http://localhost:8090


选择生产安装,默认点击下一步,下一步出现Server ID界面

获取confluence序列号,填入上图confluence方框中,点击Next

opt/atlassian/confluence/jre/bin/
./java -jar /opt/atlassian/confluence/atlassian-agent.jar -p conf -m test@u22e.com -n u22e -o https://www.u22e.com -s xxxx-xxxx-xxxx-xxxx

配置数据库链接,如下图所示,账号和密码用我们之前创建的“confluence”,点击Next

默认创建一个空网站

设置confluence管理员账号和密码

到这里我们就完成了confluence的安装、破解工作,可以使用confluence了。

centos7安装netbox(不错开源网络管理工具)

u22e阅读(1255)

1.设置docker 源

  1. sudo curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

2.安装docker

sudo yum install -y docker-ce-18.06.1.ce

3.启动docker

sudo systemctl enable docker –now

sudo usermod -aG docker “${USER}”

newgrp docker

docker ps

4.安装docker-compose

  1. sudo curl -L “https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose –version

5.克隆netbox

git clone https://github.com/netbox-community/netbox-docker.git

6.修改配置文件默认密码,测试也可以不修改

cd netbox-docker

vim env/netbox.env

SUPERUSER_PASSWORD=admin

7.部署容器

docker-compose pull

docker-compose up -d

8.访问netbox

echo “http://$(docker-compose port nginx 8080)/”

我的是32768端口,将浏览器指向http:// SERVER_IP:32768(其中SERVER_IP你的服务器IP地址)

我的访问如下

http://192.168.1.100:32768/


登录成功如图所示

MySQL数据库管理常用命令

u22e阅读(477)

安装

利用RPM包安装MySQL

设置TCP 3306端口的iptables

root密码管理

设置root用户的密码

mysqladmin -uroot password ‘password’

修改root用户的密码

mysqladmin -uroot -p password
‘password’

数据库,表管理

进入mysql

mysql -h hostname -uroot -p

创建数据库

mysql> create database location;

导入数据结构

mysql -uroot -p location
<./location.sql

查看数据库

mysql> show databases;

进入某个库

mysql> use location;

查看表信息

mysql> show tables;

查看表结构

mysql> desc Contact;

改表名

mysql> rename table Contact to
Contact_new;

删除库

mysql> drop database location;

删除表

mysql> drop table Contact;

授权部分

建立用户并授权

mysql> grant all on location.* to
gk1020@’10.1.11.71′ identified by ‘gk1020’;

取消授权

mysql> revoke all on location.*
from gk1020@’10.1.11.71′;

刷新权限

mysql> flush privileges;

操作语句

查询

mysql> select * from Contact;

mysql> select count(*) from Contact;

修改

mysql> update Contact set
RegTime=‘2008-01-01 00:00:00’ where id=1;

mysql> update Contact set
RegTime=‘2008-01-01 00:00:00’,CID=1 where id=1;

插入

mysql> insert into Contact
values(”,”…);

mysql> insert into Contact(ID,CID,Contact)
values(”,”…);

删除

mysql> delete from Contact where
id=1;

导出

导出数据库location

mysqldump -uroot -p location
>./location.sql

导出某个表

mysqldump -uroot -p –database
location –table Contact >./contact.sql

导出数据库location的数据结构

mysqldump -d -uroot -p location
>./location.sql

复制表

复制表Contact为Contact_bak

mysql> create table Contact_bak as
select * from Contact;

复制表Contact的结构

mysql> create table Contact_bak as
select * from Contact where 1=2;

查看正在执行的任务

mysql> show processlist;

说明:

location为库名,Contact为表名

Ubuntu 18.04 rc.local 设置开机自启动

u22e阅读(935)

Ubuntu 18.04默认进程启动管理已经切换至systemd,不在使用SysV。如果想像之前一样使用/etc/rc.local设置开机自启动,请如下设置

 

修改rc-local.service

/lib/systemd/system/rc-local.service新增:

  1. [Install]
  2. WantedBy=multi-user.target
  3. Alias=rc-local.service

 

设置开机自启动rc-local

  1. systemctl enable rc-local

 

创建/etc/rc.local

  1. cat > /etc/rc.local << EOF
  2. #!/bin/bash
  3. echo “test rc.local ” > /tmp/rctest.log
  4. EOF

新增执行权限

  1. chmod +x /etc/rc.local

CentOS 6和7下配置exim发邮件服务器

u22e阅读(629)

1. 配置epel源(exim包位于EPEL软件源中)

CentOS7

  1. # cat > /etc/yum.repos.d/epel.repo << EOF
  2. [epel]
  3. name=Extra Packages for Enterprise Linux 7 – \$basearch
  4. #baseurl=http://download.fedoraproject.org/pub/epel/7/\$basearch
  5. mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=\$basearch
  6. failovermethod=priority
  7. enabled=1
  8. gpgcheck=0
  9. EOF

CentOS6

  1. # cat > /etc/yum.repos.d/epel.repo << EOF
  2. [epel]
  3. name=Extra Packages for Enterprise Linux 6 – \$basearch
  4. #baseurl=http://download.fedoraproject.org/pub/epel/6/\$basearch
  5. mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=\$basearch
  6. failovermethod=priority
  7. enabled=1
  8. gpgcheck=0
  9. EOF

2. 禁止postfix

  1. # service postfix stop
  2. # chkconfig postfix off

3. 安装exim

  1. # yum -y install exim

4. 将exim设为默认的MTA

  1. # alternatives –set mta /usr/sbin/sendmail.exim

5. 修改exim配置文件

  1. # vi /etc/exim/exim.conf #几个参数
  2. primary_hostname = mail.linuxeye.com #查看源邮件时显示Received: from mail.linuxeye.com,如果不指定直接取操作系统的hostname
  3. domainlist local_domains = @ localhost : localhost.localdomain :mail.linuxeye.com
  4. domainlist relay_to_domains = linuxeye.com #允许通过改主机发送邮件的域名
  5. hostlist   relay_from_hosts = 127.0.0.1 : 192_32G : 192.168.0.0/16 : #允许那些客户端主机发送邮件,如本地使用这台服务器发送邮件时,即需要添加本地出口ip地址(公网地址)

6. 测试

  1. # yum -y install mailx
  2. # date | mail -r no-reply@linuxeye.com -s ‘exim test’ lj2007331@163.com
  3. # tail -f /var/log/exim/main.log #exim日志文件

ps:

如果不指定-r(发邮件地址),且你的主机名不是xxx.com,可能会报如下错误:

SMTP error from remote mail server after MAIL FROM:

错误是550 MI:IMF 发信人电子邮件地址不合规范

经验

强烈建议用网易企业邮箱,如果自己搭建邮件服务器做发邮件,又设置QQ企业邮箱做本地收发服务器会出现地址未验证问题。

Linux系统接入层与网络基础介绍

u22e阅读(667)

Linux系统接入层与网络基础介绍

MSS与MTU的区别,默认大小各是多少?

  • 标准以太网接口缺省的MTU(最大传输单元)为1500 字节,是最大帧1518减去源宿的MAC、FCS后最大的IP packet大小;
  • MTU减去20字节IP包头减去20字节TCP包头 ,即是MSS,1460字节
  • 一台交换机要保证接口MTU的一致性。如果在一个VLAN上、或整个交换机都采用同样的MTU,避免一些奇怪的问题
  • 参考:https://www.zhihu.com/question/21524257

TIME_WAIT 与CLOSE_WAIT 的区别

主动关闭连接的一方进入TIME_WAIT ,若客户端高并发访问HTTP接口又没有使用会话或者线程池机制,可能会导致本地端口耗尽。

CLOSE_WAIT 出现在被动断开连接。可能常见在Server端,例如在Netty的I/O线程里做DB读写、日志记录这种不可控的阻塞行为,可能会引发客户端超时。

如何查看机器上所有的tcp连接?

natstat -ant

netstat -antp 如何统计time_wait 状态的连接?

  1. netstat -antp|grep TIME_WAIT|wc -l

IP 包头大小?

20 字节

  • url.cn 是几级域名? — 二级
  • www.qq.com 是几级域名? — 三级
  • url.cn 可以CNAME到 demo.te.isc.demo-cloud.net 吗?

不建议这么操作,实际上很多场合是不可以这么操作的。

https://serverfault.com/questions/613829/why-cant-a-cname-record-be-used-at-the-apex-aka-root-of-a-domain

递归解析与迭代解析的区别?

先理解13组根DNS服务器、顶级域DNS服务器(各解析.com .net .gov 等)、权威DNS服务器、本地DNS服务器。

考虑浏览器客户端访问www.qq.com ,会向小区宽带的本地DNS查询域名解析IP ,而本地DNS会向根DNS、顶级域DNS、权威DNS逐个查询。

从客户端到本地DNS的查询是递归的;而其余的查询是迭代的。(参考《自顶向下理解计算机网络》89页)

x-forwarded-for 与 remote_addr 的区别?

  • X-Forwarded-For: client1, proxy1, proxy2

<proxy1>, <proxy2>如果一个请求经过了多个代理服务器,那么每一个代理服务器的IP地址都会被依次记录在内。也就是说,最右端的IP地址表示最近通过的代理服务器,而最左端的IP地址表示最初发起请求的客户端的IP地址。

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Forwarded-For

鉴于伪造这一字段非常容易,应该谨慎使用X-Forwarded-For字段。正常情况下XFF中最后一个IP地址是最后一个代理服务器的IP地址
  • remote_addr 是通讯客户端与服务器实际进行TCP通信的IP

IPv4地址分类 (IPv4地址32位)

A 类 0.0.0.0/8 127.255.255.255 结束

B 类 128.0.0.0/16 191.255.255.255 结束

C 类 192.0.0.0/24

D 类 224.0.0.0~239.255.255.255

192.168.2.47/26 这个子网的开始IP 和结束IP是?

(32-26)=6 , 2^6 = 64 ,故每64个IP是一个子网,而47 落在0-63 这个子网,故 192.168.2.0 是网络号;可用IP 是192.168.2.1~192.168.2.62 ;192.168.2.63 是广播IP 地址。

IPv6 地址的格式与缩写规则,怎么判断哪些是合法的IPv6地址?

(IPv4 地址是32位)

https://www.ibm.com/support/knowledgecenter/zh/ssw_ibm_i_72/rzai2/rzai2ipv6addrformat.htm

IPv6 地址大小为 128 位 完整写法是8段 ,0000:0000:0000:0000:0000:0000:0000:0000 至 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

省略前导零通过省略前导零指定 IPv6 地址。例如,IPv6 地址 1050:0000:0000:0000:0005:0600:300c:326b 可写作 1050:0:0:0:5:600:300c:326b。

双冒号通过使用双冒号(::)替换一系列零来指定 IPv6 地址。例如,IPv6 地址 ff06:0:0:0:0:0:0:c3 可写作 ff06::c3。一个 IP 地址中只可使用一次双冒号。

IPv4 地址如何映射到IPv6

例如 0:0:0:0:0:ffff:192.1.56.10 和 ::ffff:192.1.56.10/96(短格式)

Ipv6 保留地址
https://zh.wikipedia.org/wiki/%E4%BF%9D%E7%95%99IP%E5%9C%B0%E5%9D%80

LVS 三种工作模式是什么?

NAT,IP tunneling, Direct Route

tcpdump 抓包的几个参数

  1. src host
  2. dst host
  3. -c 包个数
  4. -w xxx.pcap
  5. port 端口
  6. not
  7. portrange 11024
  8. -n 不将IP显示为域名
  9. -nn 显示原始端口号和协议

拓展阅读http://packetlife.net/media/library/12/tcpdump.pdf

iptables 实例

  1. iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> –sport 源端口 <-d 目标IP/目标子网> –dport 目标端口 -j 动作

三表五链

filter 定义允许或者不允许的,只能做在3个链上:INPUT ,FORWARD ,OUTPUT

nat 定义地址转换的,也只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING

mangle功能:修改报文原数据,是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

持久化

  1. cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak # 任何改动之前先备份
  2. iptables-save > /etc/sysconfig/iptables

拓展阅读https://wangchujiang.com/linux-command/c/iptables.html

iptables如何设置只允许内网10.142.31.1来访问本机的7001 7002 7003端口

  1. cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak # 任何改动之前先备份
  2. iptables-save > /etc/sysconfig/iptables

iptables 设置允许8080 80 443 以及主动出去的,其他拒绝

  1. iptables -I INPUT -p tcp –dport 443 -i eth0 -j ACCEPT
  2. iptables -I INPUT -p tcp –dport 8080 -i eth0 -j ACCEPT
  3. iptables -I INPUT -p tcp –dport 80 -i eth0 -j ACCEPT
  4. iptables -I INPUT -i eth0 -m state –state ESTABLISHED -j ACCEPT
  5. iptables -A INPUT -i eth0 -j DROP

常见加密算法

对称 DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES

非对称 RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

nginx的负载种类

轮询(默认)、权重 weight、IP hash、URL hash

nginx location 匹配:

= 用于标准uri前,要求请求字符串与uri严格匹配,一旦匹配成功则停止

~ 用于正则uri前,并且区分大小写

~* 用于正则uri前,但不区分大小写

^~ 用于标准uri前,要求Nginx找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,(匹配符合以后,停止往下搜索正则,采用这一条)而不再使用location块中的正则uri和请求

拓展阅读https://segmentfault.com/a/1190000002797606

Nginx配置文件结构:

拓展阅读https://segmentfault.com/a/1190000015646701

Node环境部署

u22e阅读(416)

全局依赖

  1. npm install -g yarn
  2. npm install -g pm2
  3. npm install -g umi
  4. npm install -g cnpm
  5. npm install -g node-gyp
  6. cnpm install -g node-sass

ionic node-sass需要安装visual studio、python解决方法

直接下载编译好的node-sass二进制资源,不编译,即可(用cnpm安装)。

  1. cnpm install -g node-sass

源配置

  1. npm config set registry https://registry.npm.taobao.org –global
  2. npm config set disturl https://npm.taobao.org/dist –global
  3. yarn config set registry https://registry.npm.taobao.org –global
  4. yarn config set disturl https://npm.taobao.org/dist –global

Linux快速删除目录中的大量文件

u22e阅读(759)

在业务运行时,没有制定日志清除规则,导致在日志目录下保存了大量的日志文件。在使用rm -rf $dir删除旧的日志时,会提示-bash: /bin/rm: Argument list too long,通过ls |xargs rm -rf也可以进行删除,但是会耗费大量的时间。在网上找到一种快速删除大量文件的方法rsync,有点类似MySQL的truncate table。

具体操作方法

  1. # 先创建一个空目录
  2. # 注意:最好是用和被清空目录的所有者(用户)去创建这个空目录,使用的命令会将空目录的权限带过去
  3. mkdir /tmp/empty
  4. # 清除目标目录的文件,不要忘记目录后面的`/`
  5. rsync –delete-before -av /tmp/empty/ /var/log/target/

选项说明

  1. -delete-before 接收者在传输之前进行删除操作
  2. -a 归档模式,表示以递归方式传输文件,并保持所有文件属性
  3. -v 详细输出模式

rsync快的原因

  1. rm删除内容时,将目录的每一个条目逐个删除(unlink),需要循环重复遍历很多次;
  2. rsync删除内容时,建立好新的空目录,替换掉老目录,不需要进行大量的遍历操作。

Error starting daemon: error initializing graphdriver: devmapper: Device docker-thinpool is not a thin pool

u22e阅读(575)

docker无法启动

Error starting daemon: error initializing graphdriver: devmapper: Device docker-thinpool is not a thin pool

解决方法

删除以上逻辑卷:

lvremove /dev/docker/thinpool

lvremove /dev/docker/thinpoolmeta

查看机器挂载明细

  1. lvdisplay
  2. docker info
  3. lsblk
  4. pvcreate /dev/vdb1
  5. vgcreate docker /dev/vdb1
  6. vgdisplay docker
  7. lvcreate –wipesignatures y -n thinpool docker -l 95%VG
  8. lvcreate –wipesignatures y -n thinpoolmeta docker -l 1%VG
  9. lvconvert -y –zero n -c 512K –thinpool docker/thinpool –poolmetadata docker/thinpoolmeta
  10. vi /etc/lvm/profile/docker-thinpool.profile
  11. lvs -o+seg_monitor
  12. vim /etc/docker/daemon.json
  13. rm -rf /var/lib/docker/*
  14. systemctl daemon-reload
  15. systemctl start docker
  16. docker ps

pvcreate /dev/vdb1

vi /etc/lvm/profile/docker-thinpool.profile

vim /etc/docker/daemon.json