Ops: 高效组合命令集合
简介
本篇博客收集一些常用的复杂命令组合,这些命令组合能够高效的定位、分析、处理一些问题,希望对需要的小伙伴有所帮助。
命令集合
批量备份文件
将名称为config.xml的文件查找出来,并在原目录备份
find /var/lib/jenkins/jobs -name config.xml | xargs -t -I '{}' /usr/bin/cp '{}' '{}.bak'
删除最后一行
将名称为config.xml的文件查找出来,并将该文件的最后一行删除
find /var/lib/jenkins/jobs -name config.xml | xargs -t -I '{}' sed -i '$d' {}
追加内容到指定文件
将名称为config.xml的文件查找出来,并将/data/scripts/post文件内容
find /var/lib/jenkins/jobs -name config.xml -exec bash -c "cat /data/scripts/post >> {}" \;
压缩文件同时排除某些文件
tar -zcvf marketdata.tar.gz marketdata/ --exclude 20190323*
一个文件内容插入到另一个文件
将test文本的内容插入到demo的第6行
sed -i '6 r test' demo
如果不知道行号,但是知道模式可以用
sed -i '/regex/ r test' demo # regex是正则表达式
如下文本 zimu.txt
aaaaa
#bbbbbb
cccccc
dddddd
用sed在aaa前加#注释
sed 's/^aaa/#&/' zimu.txt # &的意思是匹配任意字符(就是说未知数,啥都行) 这条命令是 替换以aaa开头的
用sed取消bbb前面的注释
sed 's/^#\(bbb\)/\1/' zimu.txt #\1的意思 就类似于 前面的 (bbb\) \1就是复制这个位置的内容 如果有 第二个 那么久\2就是复制第二个位置的内容
sed 可以在匹配的模式之前(i)或之后(a)增加一行或多行;在匹配的模式之前(i):
# sed -e ‘/123/ a\solongg’ a.txt
1234569
solongg
abcABCabc
# sed -e ‘/123/ i\solongg’ a.txt
solongg
1234569
abcABCabc
不换行输出时间
echo -n `date +%Y-%m%d-%H:%M-`
打印分隔符
for i in `seq 1 $COLUMNS`; do echo -n "+"; done
循环输出docker信息
docker ps | awk -F' ' '{print $NF}' | xargs -I {} bash -c "docker top {}"
docker ps | awk -F' ' '{print $NF}' | xargs -t -I '{}' docker top '{}'
批量替换文本
替换当前目录下文本中文本
sed -ig 's/text1/text2/g' ./*
测试TCP或UDP连接
nc -v 192.168.30.100 1200
nc -uv 192.168.30.100 1200
查看该目录下文件夹大小
du -sh ./* | sort -nr
统计显示网络连接状态的个数
netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
统计单个ip 80端口连接数量并排序,取前30名
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n30
杀掉服务
ps -ef |grep CtpTradeServe |grep -v grep | awk '{print $2}'|xargs kill -9
命令行ip查询:
UNIX/Linux: #curl cip.cc
Windows: >telnet cip.cc
\>ftp cip.cc
命令行查询(纯ip):
UNIX/Linux: #curl ip.cip.cc
监控到某一网站的网络状况
curl -o /dev/null -s -w %{http_code}-%{time_namelookup}-%{time_redirect}-%{time_pretransfer}-%{time_connect}-%{time_starttransfer}-%{time_total}-%{speed_download}"\n" https://www.glinux.top
ping监控
#!/bin/bash
while true; do
echo -n `date` "---> ">> /root/ping.txt; (ping 172.31.65.241 -c 1 -W 1|grep "from">> /root/ping.txt) && (echo -n "" >> /root/ping.txt) || (echo "Fail.">> /root/ping.txt)
sleep 1
done
web ip访问日志统计
tail -n 1000000 www.glinux.top-access.log|grep '06/Sep/2018:08:'|awk '{print $1}'| sort |uniq -c|sort -nr
grep -r 11/Oct/2018:04: ./www*.glinux.top-access.log | awk '{print $1}'| sort |uniq -c|sort -nr
cnetos 7查看服务报错日志
journalctl -u 服务名
wget请求网页,功能类似curl,请求数据不保存为文件,直接cosole输出
wget -O - -q https://www.glinux.top/index.html
docker容器含有默认命令,重写默认命令,快速启动,退出销毁容器命令
docker run --name temp --rm -it --network host --entrypoint "" nervos/ckb:v0.22.0-rc3 bash
docker run -v `pwd`:/root/.celo --entrypoint /bin/sh -it us.gcr.io/celo-testnet/celo-node:alfajores -c "geth account new"
iptables 端口转发
# 放行转发流量(默认安装docker,会关闭到eth0的转发)
iptables -A FORWARD -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# 放行指定端口的转发流量
iptables -A FORWARD -p tcp --dport 3000 -j ACCEPT
# 添加nat 转发,访问本主机2000端口会转发到172.16.131.35 的3000端口(:3000不加,默认会按dport 转发端口)
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2000 -j DNAT --to 172.16.131.35:3000
# 设置地址伪装,通过eth0转发出到172.16.131.35的流量会伪装原地址为本机(保证正常通信)
iptables -t nat -A POSTROUTING -d 172.16.131.35/32 -o eth0 -j MASQUERADE
# 端口重定向
iptables -t nat -A PREROUTING -p tcp -i ens4 --dport 18888 -j REDIRECT --to 8888
iptables 删除条目
查看iptables nat记录条目
iptables -L -n -t nat --line-number
删除iptables 条目
iptables -t nat -D PREROUTING 1
iptables -t nat -D POSTROUTING 20
tcpdump 使用
tcpdump -i eth0 tcp dst port 80 -nn -vvv #抓目的端口是80, 协议和端口数字化显示
tcpdump -i eth0 host 192.9.205.111 #抓取和该主机的通信
tcpdump -i eth0 -nn src host 192.9.205.111 # 抓取源为该主机的通信, 并数字化
tcpdump -i eth0 -nn host 192.9.205.111 and 125.118.218.177 #仅抓他们两个的通信
tcpdump -i eth0 -nn host 192.9.205.111 and \(125.118.218.177 or 192.9.205.115\) #抓取该主机和这两个IP的通信
tcpdump -i eth0 -nn -A tcp port 80 #抓取tcp 80的通信
tcpdump -i eth0 -nn -XX tcp port 80 #抓取通信, 并以ASCII显示链路层
tcpdump -i eth0 -nn -vv -XX tcp port 80 #更详细信息
nc 使用
# 测试端口是否通畅
~# nc -vz 172.31.44.178 30503
Connection to 172.31.44.178 30503 port [tcp/*] succeeded!
~# nc -vz 172.31.44.178 30504
nc: connect to 172.31.44.178 port 30504 (tcp) failed: Connection refused
参考文档
sed命令:
- https://www.cnblogs.com/alwayswyy/p/5191137.html
- https://github.com/lutaoact/script/blob/master/sed单行脚本.txt
jq命令:
- https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html
- https://stedolan.github.io/jq/manual/
curl命令:
Ops: 高效组合命令集合的更多相关文章
- Linux系统-解压缩命令集合
Linux系统-解压缩命令集合 linux zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. ...
- linux常见命令集合(下)
1. tar zcvf backup-$(date "+%Y-%m-%d").tar.gz demo01dir 常用命令集合 echo helloworld date “+%y-% ...
- 华为OPS,自定义命令,动态执行命令
OPS 开放可编程系统OPS(Open Programmability System)是指设备通过提供统一的应用程序接口API(Application Programming Interfa ...
- 总结:liunx常见命令集合
没有系统学习过liunx,把工作中遇到的liunx命令集合信息如下: 1.nc传送文件 之前总是用rsync, 今天遇到了一个从阿里云服务器传送文件到我们公司的内网服务器,这就不能传了,又想用一致的文 ...
- CENTOS7常用的基础命令集合(一)
目录(?)[-] CentOS7 常用命令集合 常用命令 文件与目录操作 查看文件内容 文本内容处理 查询操作 压缩解压 yum安装器 网络相关 系统相关 系统服务启动相关 防火墙相关 RPM包管理 ...
- dos命令大全 黑客必知的DOS命令集合
dos命令大全 黑客必知的DOS命令集合 一般来说dos命令都是在dos程序中进行的,如果电脑中安装有dos程序可以从开机选项中选择进入,在windows 系统中我们还可以从开始运行中输入cmd命令进 ...
- [No0000175]maven常用命令集合(收藏大全)
抽了点时间,整理了一些maven常用命令参数,以便参考:参考了maven官网和网上其他一些maven追随者的文件,不在此一一列举,但表示感谢! mvn命令参数 mvn -v, --version 显示 ...
- maven常用命令集合
作者:ydlmlh 原文:http://ydlmlh.iteye.com/blog/2158973 抽了点时间,整理了一些maven常用命令参数,以便参考:参考了maven官网和网上其他一些maven ...
- CentOS7 常用命令集合
CentOS7 常用命令集合 文件与目录操作 touch test.txt: 创建一个文本文件 文本内容处理 查询操作 压缩.解压 yum安装器 网络相关 系统相关 XSheel 5相关操作 窗体快捷 ...
随机推荐
- Java 发展简史:初生遇低谷,崛起于互联网
Java 起源与诞生 20世纪90年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度. SUN公司为了抢占市场先机,在1991年成立了一 ...
- Codeforces Round #609 (Div. 2)前五题题解
Codeforces Round #609 (Div. 2)前五题题解 补题补题…… C题写挂了好几个次,最后一题看了好久题解才懂……我太迟钝了…… 然后因为longlong调了半个小时…… A.Eq ...
- 【转】15个超炫的HTML5效果
英文原文:http://www.hongkiat.com/blog/15-html5-experiments/ 翻译:iteye 乔布斯没有给Flash任何机会,微软新推出的Windows 8 ...
- 【转】基于ArcGIS for javascript api 轨迹回放
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- TensorFlow——dropout和正则化的相关方法
1.dropout dropout是一种常用的手段,用来防止过拟合的,dropout的意思是在训练过程中每次都随机选择一部分节点不要去学习,减少神经元的数量来降低模型的复杂度,同时增加模型的泛化能力. ...
- JSP九大内置对象之session以及eclispe如何关联源码
一.session的特点及其实例 session:同一次会话共享 a.浏览网站:开始->关闭 b.购物:浏览.付款.退出 c.电子邮件:浏览.写邮件.退出 从一次开始到一次结束,是一次会话. ...
- 一个命令解决linux重启nginx就丢失pid文件问题
sudo nginx -c /etc/nginx/nginx.conf
- vs推送git失败,修改git下config的Log
一开始写完程序套推送到Git中,然后就来了一下,下面的异常: 异常1 发布到远程存储库时遇到错误: Git failed with a fatal error. fatal: HttpRequestE ...
- 执行sql中的 函数,function
CREATE FUNCTION [dbo].[GetWeight] ( ,)--重量/体积重 ) ,) as begin --顺丰重量/体积重以0.5kg为单位向上取值(小数点后两位4舍5入) ,) ...
- springcloud复习2
Hystrix断路器 Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时.异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导 ...