Category Archives: Linux/Unix/Windows

A linux function to make current java code directory into a tarball without including unwanted files

Put the following function into your ~/.bashrc, and run “tarcode” in your code directory. It will generate a *.tgz file under ~/temp


tarcode()
{
        filename=`basename "$PWD"`
        filename+='-'
        filename+=`date '+%Y-%m-%dT%H%M%S'`
        filename=$HOME'/temp/'$filename'.tgz'

        echo $filename

	tar --exclude='.git' --exclude='.DS_Store' --exclude='.classpath' --exclude='.gitignore' --exclude='.project' --exclude='.settings' --exclude='target'  -zcvf $filename .
}

通过shell脚本在服务器上一键构建java应用并重新部署

1. 把代码从github等托管服务器上更新下来

2. 编译成war文件

3. 重启tomcat

第一次使用时,先手动地把代码拉到一个固定的目录中

cd /home/me/myappsite/code
git clone https://someuser@somesite/myapp.git

一键脚本:build-my.sh

#!/bin/sh
echo "pull and build"
cd /home/me/myappsite/code/myapp
git pull
mvn clean
mvn package -DskipTests

echo "shutting down the tomcat"
kill $(ps aux | grep 'java' | grep 'mytomcat'| awk '{print $2}')  #不要用shutdown.sh;这里需要同步杀死进程,shutdown.sh做不到同步杀

echo "clean existing war files and copy the new one"
rm -rf /home/me/mytomcat/webapps/ROOT  
cp /home/me/myappsite/code/myapp/target/myapp-x.x.war /home/me/myappsite/war/myapp.war   #tomcat的server.xml里请把root context path指向这个文件


echo "now start tomcat"
/home/me/mytomcat/bin/startup.sh

echo "get back"
cd /home/me




linux最大可打开文件数的几种设置

http://johanlouwers.blogspot.de/2010/02/hard-limit-for-maximum-open-file.html

这篇文章区分介绍了user-specific/system-wide的fd limits, 以及hard limit和soft limit.

具体设置:
http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/

具体设置及查看当前打开数:
http://www.randombugs.com/linux/tuning-file-descriptors-limits-on-linux.html

考虑到编码问题,最好不要在远程登录工具里向数据库写入非西欧字符

用远程登录工具(如putty)登录远程主机后,再在工具的窗口里登录数据库,然后写入非西欧字符,很容易导致乱码。

今天我就是这样遇到乱码的:

  1. 在xshell窗口里登录localhost数据库,用insert语句插入汉字,页面显示乱码,虽然主机、数据库、php的字符集方式都是乱码。

  2. 改用 mysql> source sql文件,仍然乱码。

远程登录工具在编码问题上一直都牵扯不清。为了避免乱码,最好使用下列方式之一:

  1. 在ubuntu原生shell里直接登录远程数据库

  2. 在ubuntu原生sheel里ssh登录远程主机,再在这个窗口里登录主机上的数据库