在linux下查看md5值注意
echo -n "123" | md5sum #注意要加-n参数 不然默认会带有换行符 md5值就会与其他程序计算得出的不一致,同理 md5sum XXX.txt 也是带有换行符的
查看服务器用户的shell的种类数量
cat /etc/passwd |awk -F: '{++S[$NF]} END {for (a in S) {printf "%30-s %s\n",a,S[a]}}'
查看TCP连接状态和数量
ss state all |awk '{++S[$1]} END {for(a in S) {printf "%11-s %s\n",a,S[a] }}' |grep -v State
查看TCP连接状态和数量(同上)并且按数量排序,两种实现方法
netstat -an |awk '/^tcp/ {array[$NF]++} END {for (key in array) print key,array[key]}' |sort -k 2 -rn netstat -an |awk '/^tcp/ {print $NF}' |sort |uniq -c |sort -rn
查看80端口访问IP前20
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
用TCPDUMP抓包,抓取源地址为159.191.1.9到目的端口为8084的包
tcpdump -vv src host 159.191.1.9 and dst port 8084 可以用-nn参数来直接显示主机ip和端口的信息
查看cpu磁盘分页等信息
yum install dstat dstat
删除乱码文件
ls -li find -inum 123324 -delete find . -maxdepth 1 -type f -inum 123325 -delete
统计数据文件最后一列的平均值,并且输出大于平均值的数量,数据文件以逗号为分隔符。
#!/bin/bash num=`cat dfin.log|wc -l` avg=`cat dfin.log|awk -F\, -v num=$num '{total+=$NF} END {print total/num}'` echo $avg cat dfin.log|awk -F\, -v avg=$avg '{ if ($6 >= avg) ++a } END {print a}'
批量重命名文件后缀名,将当前目录下文件全部重命名为后缀名为log的文件
find . -type f -print0 |xargs -0 -i mv {} {}.log
复制新表根据原来的表结构(不拷贝表数据)
create table NEW_TABLE like OLD_TABLE;
复制表(包括表结构和数据)
#先搞表结构,再复制数据 create table NEW_TABLE like OLD_TABLE; insert into NEW_TABLE select * from OLD_TABLE;
mysql的root用户没法给用户赋权限的问题解决办法
mysql> select * from mysql.user where User='root' and Host='localhost'\G;
看一下root用户的Grant_priv 是不是为Y 这种时候多数情况下就是N了。那么要做的事情很简单,就是把他的这个字段改为Y就可以了。
mysql> update mysql.user set Grant_priv='Y' where User='root' and Host='localhost'; mysql> flush privileges;
然后重新退出重新登录就可以给其他用户授权了。。。。
另外django中解决竞态查询的方式可以使用select_for_update的方法来操作,这个必须是处在一个事物中。但是这样可能会带来性能问题。同时也可以使用F()方法来直接Update,两种方法可以根据实际情况来操作使用。方法如下,但是如果用的mysql数据库的话,数据库引擎必须是InnoDB
with transaction.atomic(): r = ConfigInfo.objects.select_for_update().get(pk=5) time.sleep(20) r.status = "d" r.save()
fdisk后创新partprobe
haproxy中修改HTTP的头信息
例如
reqirep ^Host:\ xx.xx.xx.xx:81 Host:\ t1.cloud.paas
reqirep ^Host:\ (.*) Host:\ t1.cloud.paas
docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_ERLANG_COOKIE='myrabbit' -p 8080:15672 -p 5672:5672 rabbitmq:3-management
socat XXX.sock readline
prompt
ctrl + a 移动到行首
ctrl + e 移动到行末
ctrl + w 小写删除光标前面的那个单词
ctrl + u 剪切光标到行首的内容 也可以当删除
ctrl + k 剪切光标到行末的内容 也可以当删除
ctrl + y 黏贴剪切内容
ctrl + r 搜索历史命令 可以敲多次来查询同一内容
vi 的一些实用快捷键
G 文本末尾
gg 文本开头
M 文本的屏幕中间
dG 从光标那行开始删除至文本末尾
dw 删除光标后一个单词
dW 删除光标所在行至行末的内容
ctrl + f 下一页
crtl + b 上一页
v 上下键选中行 d 或者 y 剪切或者复制
#下载并解包consul ./consul agent -server -bootstrap-expect 2 -data-dir=/root/consul_workdir/data1/ -node n1 -bind=192.168.1.15 -client=0.0.0.0 -ui ./consul agent -server -bootstrap-expect 2 -data-dir=/root/consul_workdir/data2/ -node n2 -bind=192.168.1.188 -client=0.0.0.0 -ui #在188服务器上 #加入集群 ./consul join 192.168.1.15 查看成员 ./consul members Node Address Status Type Build Protocol DC Segment n1 192.168.1.15:8301 alive server 1.2.2 2 dc1 <all> n2 192.168.1.188:8301 alive server 1.2.2 2 dc1 <all> curl 127.0.0.1:8500/v1/catalog/nodes?pretty [ { "ID": "a7aab84f-ad64-ccd0-4ce4-15b7d62e9e32", "Node": "n1", "Address": "192.168.1.15", "Datacenter": "dc1", "TaggedAddresses": { "lan": "192.168.1.15", "wan": "192.168.1.15" }, "Meta": { "consul-network-segment": "" }, "CreateIndex": 5, "ModifyIndex": 7 }, { "ID": "9b4beef1-0403-a708-07b7-6bcc80d1e224", "Node": "n2", "Address": "192.168.1.188", "Datacenter": "dc1", "TaggedAddresses": { "lan": "192.168.1.188", "wan": "192.168.1.188" }, "Meta": { "consul-network-segment": "" }, "CreateIndex": 6, "ModifyIndex": 8 } ] curl -XPUT http://192.168.1.188:8500/v1/agent/service/register -d '{"id": "testnode55","name": "node","address": "192.168.1.188","port": 9100,"tags": ["p","d"],"checks": [{"http": "http://192.168.1.188:9100/metrics","interval": "5s"}]}' curl -XPUT http://192.168.1.188:8500/v1/agent/service/register -d '{"id": "testnode","name": "node","address": "192.168.1.15","port": 9100,"tags": ["p"],"checks": [{"http": "http://192.168.1.15:9100/metrics","interval": "5s"}]}' curl -XPUT http://192.168.1.188:8500/v1/agent/service/register -d '{"id": "docker118","name": "docker","address": "192.168.1.188","port": 9323,"tags": ["dockertest","monitor"],"checks": [{"http": "http://192.168.1.188:9323/metrics","interval": "5s"}]}' #checks 是指的在consul中的service检查机制,如果填错,那么在consul的web界面中会有红色告警 在promthues中的consul_sd_config中配置的services列表指定的就是上述name字段。另外consul中是靠id字段为主键的,注意不要重了。 curl -XPUT http://192.168.1.188:8500/v1/agent/service/deregister/docker118 # 删除 上面叫做docker118的service http://192.168.1.188:8500/v1/agent/services?pretty #查看已经注册了的服务
Cloudhu 个人随笔|built by django|
沪ICP备16019452号-1