日常工作中,总是在服务器上捣腾,这里简单整理一下比较常用的命令和小技巧。
1 清除linux服务器上的cache
sync
echo 3 > /proc/sys/vm/drop_caches
2 tomcat设置编码方式为UTF-8
useBodyEncodingForURI=”true”
URIEncoding=”UTF-8”
3 随机生成密码的方法
openssl rand -base64 12 #可以随机生成12位的字符
4 date使用
date +%F -d “-1 day” //表示生成当天日期的前一天日期,
如:今天是2015-11-22的话,返回的结果就是2015-11-21,此方法常用于加日志文件的后缀
5 过滤文件中相同的行
awk ‘!a[$0]++’ 文件名
6 visudo设置用户权限,如:
Cmnd_Alias QA = /opt/restart_*.sh
qa ALL=(ALL) NOPASSWD: QA, !/bin/rm,!/bin/mv,!/bin/chmod,!/bin/chown,!/bin/chgrp,!/bin/su,!/bin/vi,!/usr/bin/vim,!/bin/sh,!/bin/kill
7 用sed使文本中显示的\r\n转译符生效
sed ‘s/\r\n/\r\n/g’ filename
8 python生成密码
#pip install passlib
python -c "from passlib.hash import sha512_crypt; import getpass; print sha512_crypt.encrypt(getpass.getpass())"
9 取当前是从哪个ip登录的系统
who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'
10 ruby相关包
ftp://ftp.ruby-lang.org/pub/ruby/
11 将jenkins用户加入到docker组
usermod -G docker jenkins
12 tar命令过滤子目录打包
tar zcvf backup.tar.gz site/* --exclude=site/attach --exclude=site/images
13 使用curl命令时指定用户名和密码
–user username:password
如:
curl http://url/ –user testname:testpass
14 理解Maven中的SNAPSHOT和正式版本
http://www.huangbowen.net/blog/2016/01/29/understand-official-version-and-snapshot-version-in-maven/
15 通过导日志文件内容的方式来分割日志 copylog.sh
#!/bin/bash
DATE=`date +%F -d "-1 day"`
for i in `ls /opt/|grep apache-tomcat`
do
if [ -e /opt/$i/logs/ ];then
cd /opt/$i/logs/
cp catalina.out catalina.out.$DATE
echo >catalina.out
fi
done
16 centos通过日志反查入侵
http://www.centoscn.com/CentosSecurity/CentosSafe/2014/0304/2490.html
17 maven缺少依赖包,强制更新命令
mvn clean install -e -U
-e 详细异常,-U 强制更新
18 终端颜色设置
http://www.w2bc.com/Article/39141
19 memcache的最佳实践方案
http://www.cnblogs.com/suredandan/archive/2013/07/21/3204159.html
20 查看某个URL的响应时间( 查curl手册能看到有time_total的说明)
curl -so/dev/null baidu.com -w "%{time_total}\n"
21 使用curl监控页面响应时间
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://www.baidu.com"
22 redis批量删除,例如批量删除以”client_”开头的key值:
redis-cli keys "client_*" | xargs redis-cli del
23 查看Java进程的全部默认值可以使用以下命令:
java -XX:+PrintFlagsFinal
24 访问google的方法
http://laod.cn/hosts/2016-google-hosts.html
25 查看mysql上每个ip过来的连接数
select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;
26 jmap命令使用
jmap -histo 打印每个class的实例数目
jmap -heap 打印heap的概要信息
jmap -dump:format=b,file=path/heap.bin
27 dockerfile中将RUN命令写成一行,可以减小生成的镜像大小
28 关于php-fpm的关闭重启命令
#php-fpm 关闭:
kill -INT `cat /var/run/php-fpm.pid`
#php-fpm 重启:
kill -USR2 `cat /var/run/php-fpm.pid`
#查看php-fpm进程数:
ps -ef | grep php-fpm
29 git设置保存用户名密码的方法
git config --global credential.helper store && \
echo "http://your_name:your_passwd@git_server_ip" > ~/.git-credentials
30 mesos支持的一些framework
http://mesos.apache.org/documentation/latest/frameworks/
31 以utf8编码创建数据库
CREATE DATABASE `database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
32 查看mysql中已有表的建表语句
show create table TABLENAME;
33 splite切割文件
split [-n] file [name]
-n: 指定截断的每一文件的长度,不指定缺省为1000行
file: 要截断的文件
name: 截断后产生的文件的文件名的开头字母,不指定,缺省为x,即截断后产生的文件的文件名为xaa,xab….直到xzz
34 解决关于jenkins升级时容易连接超时的问题
cd $JENKINS_HOME/updates进入这个目录,然后编辑default.json , 可以看到前面的键值对为: “connectionCheckUrl”:”http://www.google.com/” ,将其改为 “connectionCheckUrl”:”http://www.baidu.com/”