mysql数据库命令小记

查看innodb引擎状态

可用于查看死锁情况:
show engine innodb status;

查看锁情况

表锁:show global status like ‘table_locks%’;
行锁:show global status like ‘innodb_row_lock%’;

文件打开数

show global status like ‘open_files’;

查看慢查询

show full processlist;
SELECT * FROM information_schema.INNODB_TRX;
select @@autocommit;

设置对应的编码

set character_set_server=utf8;

查看数据库编码

SHOW VARIABLES LIKE ‘character%’;

git命令小记

1. git日志格式化

1
2
git whatchanged -1 --pretty=raw --no-abbrev
git log -1 --pretty=format:'commit %H%ntree %T%nparent %P%nauthor %an <%ae> %at %ar%ncommitter %cn <%ce> %ct %cr%n%n %s%n%n'

2. 标签按时间排序

1
2
3
子模块最新的tag: git submodule foreach 'git tag | xargs -I@ git log --format=format:"%ci %H @%n" -1 @ | sort -r | head -1'
git tag | xargs -I@ git log --format=format:"%ci %h @%n" -1 @ | sort
git tag | xargs -I@ git log --format=format:"%ci %h @%n" -1 @ | sort -r

3. 重置本地代码

git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

4. 创建分支

git branch develop

5. 切换分支

git checkout develop

回滚git代码版本

参考Git的撤消操作 - 重置, 签出 和 撤消

错提交代码,或者某个版本代码之后想要回滚回来的话,就会遇到需要回滚代码版本的问题。

根据代码当前提交状态,回滚操作可以分为二类:

  1. 未提交代码
  2. 已提交代码

一、回滚未提交代码

git reset三种方式

  1. 只回滚本地代码库(HEAD)内容,不回滚索引(index)和工作区(working)内容。
    git reset --soft 版本号

  2. (默认)只回滚本地代码库(HEAD)和索引(index)内容,不回滚工作区(working)内容。
    git reset --mixed 版本号

  3. 回滚本地代码库(HEAD)、索引(index)和工作区(working)内容。
    git reset --hard 版本号

推送本地git仓库

本文参考:Create Local Git Repo & Push to GitHub

一、打开终端

二、到本地文件目录

cd /home/developer/public_html

三、配置git

用户名:
git config --global user.name "叶绍亭"

邮箱:
git config --global user.email "yeshaoting@163.com"

配色方案:
git config --global color.ui auto

四、 项目初始化

git init

初始化成功会看到如下内容:

1
"Initialized empty Git repository in home/developer/public_html/.git"

velocity宏文件macro.vm缺失

异常描述:VelocityException: Velocimacro : Error using VM library : /WEB-INF/vm/macro.vm
问题原因:路径配置错误。

一、项目相关配置

1. spring-beans.xml

spring bean velocityEngine

1
2
3
4
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="resourceLoaderPath" value="/WEB-INF/vm/"/>
<property name="configLocation" value="classpath:velocity.properties"/>
</bean>

2. velocity.properties

宏资源文件配置

1
velocimacro.library=/WEB-INF/vm/macro.vm

jenkins中文乱码与服务启动

问题描述

项目构建最新修改记录中文乱码。

问题查看与分析

首先,查看jenkins管理界面的系统属性功能。
对应URL地址为:http://jenkins.xxx.com/systemInfo

可以看到jenkins启动环境变量file.encoding值为默认的ISO-8859-1(Latin-1字符集)。
不希望jenkins乱码,需要设置其编码方式为UTF-8。(参考:Jenkins控制台中乱码问题)

问题解决

当前jenkins启动命令为:

1
java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=8009 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

在启动jenkins时,需要额外添加参数file.encoding,并设置其参数值为UTF-8。
修改后的启动命令如下:

1
java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=8009 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 -Dfile.encoding=UTF-8

扩展说明

由jenkins启动命令可看出:

  1. jenkins安装目录
    /var/lib/jenkins

  2. jenkins服务部署代码
    /usr/lib/jenkins/jenkins.war

  3. 运行日志
    /var/log/jenkins/jenkins.log

  4. jenkins代码部署位置
    /var/cache/jenkins/war

  5. jenkins服务端口
    http: 8080
    ajp13: 8009

  6. jenkins servlet容器
    jenkins服务运行在winstone servlet容器,类似于tomcat, jetty等。
    jenkins命令启动接收的参数--logfile, --webroot, --httpPort, --ajp13Port等都是winstone的。
    另外,查看了webroot参数对应的目录,发现目录包含类库winstone.jar,也可知jenkins可能是放在winstone容器里运行的。

关于winstone可参考:Winstone Servlet Container v0.9.10

jenkins任务等待下一次可用执行

英文:pending-waiting for next available executor

问题分析

查阅网上的资料,出现pending-waiting for next available executor的情况主要有二:

磁盘存储空间已满

  1. jenkins所在的服务器
  2. 任务运行涉及到的slave服务器

节点离线

jenkins服务正常时,master节点有可能处于离线状态。此时,可以进入系统管理->管理节点,查看一下节点状态。
节点状态

问题解决

jenkins所在服务器

重启jenkins服务后,可能需要过段时间节点才会正常加载并工作。

任务运行涉及到的slave服务器

重启过程导致slave服务器连接master失败,可以考虑重启一下jenkins slave服务。

参考文档

  1. http://stackoverflow.com/questions/15112890/jenkins-not-executing-jobs-pending-waiting-for-next-executor
  2. http://blog.csdn.net/jinhuiyu/article/details/4827051

jenkins节点重启脚本

远程重启jenkins节点脚本

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
NODE_CONFIG=nodes.ini
JENKINS_CLIENT_COMMAND=/opt/work/local/jenkins/jenkins-client/bin/client.sh


start_nodes() {
while read node
do
if [ -z "$node" ]; then
continue;
fi

echo "current node: $node";
start_remote_jenkins $node;
done < $NODE_CONFIG
}

start_remote_jenkins() {
remote_ip=$1
ssh $remote_ip 2>&1 << remote_command
sh $JENKINS_CLIENT_COMMAND;
exit;
remote_command
}


start_nodes
|