日常实用tips

日常工作中,总是在服务器上捣腾,这里简单整理一下比较常用的命令和小技巧。

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/”

你可能感兴趣的:(Linux)