一、功能小笔记汇总
1,redis指定目录安装
sudo wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar zxvf redis-3.2.8.tar.gz
cd redis-3.2.8
mkdir -p /opt/modules/redis3.2
make && make PREFIX=/opt/modules/redis3.2 install
上面即可实现把redis安装在指定的目录里
2,SVN Checkout是不要包括源文件夹根目录,直接把代码checkout到当前目录
例如要checkout主干trunk下面的所有文件,但不要包括trunk文件夹,在svn文件夹后面打个空格,在加个.点号就行。
示例:svn co http://192.168.1.1/svn/test/trunk/ .即可。
svn co参数解释:svn co svn的http路径 [本地目录全路径] --username 用户名 --password 密码
所以如果不用.点号指定本地目录全路径,则会检出到当前目录下。
3,关于nologin命令以及禁止用户登录
nologin命令实现的功能就是阻止shell登录,并在终端输出This account is currently not available信息友好的提示用户不能登录,并在log里添加记录。一般设置这样的帐号是给启动服务的账号所用的,只是让服务启动起来,但是不能登录系统。禁止用户登录时我们可以使用以下方法:
passwd -l 007cn
此命令会锁定04007cn用户,用户就不能登录了。相反passwd -u 007cn是对锁定的用户进行解锁。使用nologin在添加用户的时候就能直接实现,正常使用useradd添加的用户在/etc/passwd中的存储是:
007cn:x:30507:30508::/home/007cn:/bin/bash
( 可以看到最后面的这个shell是/bin/bash)如果使用命令:
usermod 007cn-s /sbin/nologin
修改用户的登录shell为nologin,则用户登录就没有可执行的shell,只会显示nologin命令执行的结果(也就是上面的提示信息) 快速实现禁止所有用户登录:touch /etc/nologin 这样除root以外的其它所有用户就不能登录了。
4,linux启动时加载的环境信息文件的顺序
先加载:/etc/profile:系统环境信息,所有用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.
再加载:/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
再加载:~/.bash_profile:此为用户目录中的配置,即用户专用的shell信息,当该用户登录时,执行一次。
最后加载:~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.
综合:先加载系统级(即/etc/目录中的profile和bashrc配置,再加载用户级(~/目录)中的profile和bashrc配置。~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.(比如你编辑此文件写入输出再见的命令,用户退出时就会显示这个信息)
5,mysql的max_connections配置
此为mysql的最大并发连接数,如果当前的mysql连接数达到了这个值,则后面的连接将无法建立,使用命令:
show variables like \'max_connections\';
可查看当前的mysql的最大连接数配置,当前MYSQL已使用的连接数可使用SQL:select * from information_schema.processlist;或者使用show processlist查看(列表最下面会有统计数量)
如果需要建立更多的连接数,则可以修改my.cnf中此项配置。或者执行命令:
set GLOBAL max_connections=200
二、连续请求URL测试平均请求用时的shell脚本
因为对公司的签名系统进行了改造,想对比看一下两种签名的用时对比,在使用浏览器请求时发现时间消耗上没法得出个优劣,postman里又不能做连续多次请求,单靠手工请求几个URL,一是数量有限,二是波较大,得到的数据意义不大。于是想着写一个shell批量请求一下接口,连续请求多次来进行对比,这样的比较值也比较有意义。shell脚本如下:
#/bin/bash
times=$1
succ=0
fail=0
st='200'
start_time=$[$(date +%s%N)/1000000]
for loop in $(seq 1 $times)
do
curl -s -H "Host: api.com" "182.182.5.14/showpage/index?uid=864677032679953&screen=1&ver=5.1&&s=4517A59AAFD4A8B2D97BDDF66F297DC9CD010113
done;
end_time=$[$(date +%s%N)/1000000]
cost=$(($end_time-$start_time))
echo -n "共执行$times次curl签名请求 ,平均用时ms:"
echo "scale=2;$cost/$times" | bc
将上述脚本保存为test.sh执行命令:./test.sh 1000和5000次进行对比,能发现性能确实有提升。原签名认证系统执行./test.sh 1000 后结果如下:
新签名./test.sh 1000 执行后的结果如下,这样对比就一目了然。可以随便变换次数,甚至多启几个进程进行测试对比。