常用 shell sql 命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

抓包命令:

1
2
#!/bin/bash
/usr/sbin/tcpdump  -i eth0 host fusion.qiniuapi.com -s0  -w fusion.qiniuapi.com.dump.cap


curl查看网络情况

1
2
3
#!/bin/bash
#for i in {0..10000};do bash -c "bash prefetch.sh 2>&1" >> prefetch.log;done
for  id  in  ` seq  1 1000`; do  curl  "http://baidu.com"  -o  /dev/null  -s -w  "dns: %{time_namelookup} - connect: %{time_connect} - total: %{time_total}\n" ; done


1
curl -o  /dev/null  -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download} "\n"    "http://api.spark.ucloud.cn/?Action=PrefetchDomainCache&DomainId=ucdn-p50cmv&PublicKey=YakUkLeSntu13jD3d3XY3eklNgx5pS7M9905EUU3CEE%3D&UrlList.0=http%3A%2F%2Fauc.tangdou.com%2F5ED0E62CD33F15F89C33DC5901307461-20.mp4&Signature=70369069dfd920a898e6e167e60bec090e2dabeb"
1
curl -vX POST  'http://fusion.qiniuapi.com/v2/tune/prefetch'  -H  'Authorization: QBox 557TpseUM8ovpfUhaw8gfa2DQ0104ZScM-BTIcBx:Safex72PcjqAzBuW0QPze8PyJ8o='  -H  'Content-Type: application/json'  -d  '{"urls": ["http://o8aazd8hz.qnssl.com/ddCG.mp4","http://o8aazd8hz.qnssl.com/ddCG.mp4"]}'   -w  "\ntime_nslookup:%{time_namelookup} time_connect:%{time_connect} time_starttranfer:%{time_starttransfer} time_total:%{time_total}\n=========\n\n" ; sleep  5


查看内存占用

1
free  -m |  sed  -n  '2p'  awk  '{print "used mem is "$3"M,total mem is "$2"M,used percent is "$3/$2*100"%"}'
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
while  :
     do
     phymem=` free  grep  "Mem:"  | awk  '{print $2}' `
     phymemused=` free  grep  'buffers/cache'  awk  '{print $3}' `
     # echo $phymem
     # echo $phymemused
     awk  'BEGIN{printf"%.2f%\n",(' $phymemused '/' $phymem ')*100}'
     sleep  3
     done


svn 查看文件log

1
2
3
svn log -l 5  test .php
svn  diff  -r r9982:r9988  test .php
svn  diff  -r PREV:COMMITTED  test .php


vim批量删除注释

1
:g/^ #/d

vim删除空行

1
:g/^$ /d

查看网卡实时流量

1
2
3
nload
iftop
bmon


shell执行php脚本

1
2
3
4
5
6
7
#!/bin/bash
count=`ps -ef | grep script.php | grep -v grep | wc -l`
baseDirForScriptSelf=$(cd  "$(dirname " $ 0 ")" ; pwd)
cd $baseDirForScriptSelf
if  [ $count -eq  0  ]; then
   nohup  php script.php >>/dev/ null  2 >& 1  &
fi


shell 查找

1
2
3
find  dirname  - type  f -name  "*.php" | xargs  grep  "sql"
find  ./ -mmin +2 - type  f  - exec  ls  -l {} \;
find  ./ - type  f -name  "ad*_2012-03*.log"  | xargs  grep  '4f5ff7a0d7a98_b.jpg'  -l


查找替换

1
find  dirname / -name  "*.m3u8"  | xargs  sed  -i  's/#EXT-X-ENDLIST/#EXT-X-ENDLIST\n/g'


删除两分钟之前的文件

1
find  /var/www  - type  f -mmin 2 - exec  rm  {} \;


redis 批量删除

1
redis-cli keys  "prefix*"  xargs  redis-cli del


查看linux当前连接数

1
2
3
4
5
netstat  -an| awk  '/tcp/ {print $6}' | sort uniq  -c
netstat  -n |  awk  '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
netstat  -antp |  grep  80 |  grep  ESTABLISHED -c
1
2
ss -ant |  awk  'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}'
cat  /proc/net/sockstat


统计nginx日志访问ip数

1
awk  '{print $1}'  access.log | uniq  -c | wc  -l


通过SSH将MySQL数据库复制到新服务器

1
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uroot -p 'password'  cms |  ssh  -C root@192.168.2.30  "mysql -uUSER -pPASS NEW_DB_NAME"

通过压缩的 SSH 隧道 Dump 一个 MySQL 数据库,将其作为输入传递给 mysql 命令,我认为这是迁移数据库到新服务器最快最好的方法。


快速备份mysql大表

1
mysqldump -q -e --single-transaction  --ignore-table=table1 --ignore-table=table2 -uroot -p ''    --max_allowed_packet=16777216 --net_buffer_length=8192  dbname  > dbname.sql


创建数据库

1
CREATE  DATABASE  cms  default  charset utf8  COLLATE  utf8_general_ci;

导入数据

1
mysql -u root -p
1
2
use cms;
source /home/lhb/data/cms.sql


备份数据库

1
mysqldump -uroot -p cms  --ignore-table=cms.history  --ignore-table=cms.statistics > cms.sql
1
/usr/bin/mysqldump  -u root -p cms >  /home/lhb/data/cms .sql
1
mysqldump --all-databases --lock-all-tables --lock-all-tables --flush-logs --master-data=2 > all.sql


把文件上传到远程服务器,把文件从远程服务器copy到本地

1
scp  /home/lhb/data/cms .sql lhb@192.168.1.30: /home/lhb/data
1
scp root@172.17.1.17:/home/lhb/data/cms.sql /home/lhb/data



mysql给root启用远程登录

1
2
GRANT all privileges ON *.* TO  'root' @ '%'  IDENTIFIED BY  '123' ;
flush privileges;
1
2
-----------------------------------------------------------------------
GRANT  ALL  PRIVILEGES  ON  *.*  TO  'root' @ '%'  IDENTIFIED  BY  '123'  WITH  GRANT  OPTION ;
1
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO  'test' @ '172.16.%.%'  IDENTIFIED BY  'test'


给表添加索引

1
ALTER  TABLE  ad_event  ADD  INDEX  ind_order(order_id)


执行定时任务

1
0 2 * * *  /home/lhb/cli/chk_nginx .sh  >>  /dev/null  &


查看满查询日志

1
show variables like  '%slow%' ;


在线开启mysql慢查询

1
2
3
set  global  slow_query_log=1;
set  global  long_query_time=2;
set  global  slow_query_log_file= 'mysql-slow.log' ;


记录没有使用索引的sql

1
set  global  log_queries_not_using_indexes = 1;


关闭慢查询

1
set  global  slow_query_log=0;


查看二进制事件信息

1
show binlog events  in  'mysql-bin.000001' ;
1
show binlog events  in  'mysql-bin.000001'  from 107;


查看所有二进制文件

1
show binary logs;


删除二进制文件

1
purge binary logs to  '指定的二进制文件'


分析nginx log

1
cat  cms_access.log.1 | grep  - v  "templates"  awk  '{split($7,bbb,"?");print bbb[1]}'  | sed  's/[0-9].*/num/g'  sort  uniq  -c |  sort  -n -k 1 -r |  head  -n 100


分析广告nginx log

1
cat  ad_access.log.1 | grep  -Po  "a=[0-9a-zA-Z]*[&|[:space:]]"  | awk  -F  '[=&]'  '{print $2}'  sort  | uniq  -c | sort  -n -k 1 -r | head  -n 100


统计 par 的IP,被多少个其它IP地址访问前20条

1
grep  par access.log |  awk  '{print $7" "$1}'  | awk  -F  "par="  '{print $2}' | sort | uniq | awk  '{print $1}' | uniq  -c| sort  -n| tail  -n 20


kill进程

1
ps  -ef | grep  nginx | grep  - v  grep  | awk  '{print $2}'  | xargs  kill  -9


查看nginx进程数

1
watch  -n 1 -d  "grep nginx|wc -l"


查看mysql进程链接数

1
ps  axef |  grep  mysqld -c


查看端口是否占用

1
2
3
lsof  -i:80
或者
netstat  -an | grep  80


查看系统调用的参数,返回值,耗时

1
strace  -p

查看进程pid打开的文件描述符

1
lsof  -p pid


查询mysql 表信息-建立时间 更新时间 行数 版本等等

1
2
show  table  status;
show  table  status  like  '%tablename%' ;


1
2
3
4
UPDATE video_link SET location = replace( location,  '\t' ''  )
SELECT `video_id` FROM `video_link`  where left(`location`,1) =  '\t'
delete from video where starttime<(unix_timestamp()-3600*24+7);
select  count(*) from video where starttime<(unix_timestamp()-3600*24+7);


curl调用

1
2
curl  - v  -H  "Content-Type: application/json"   -X POST -d  '{"user_name":"lhb"}'  "http://url"
curl - v  -H  "Content-Type: application/json"  "http://url"  -X POST --data  "data_content"

现在内存中建立一个文件夹

1
ln  -s   /dev/shm/checkfile   /var/www/checkfile


linux 下 取进程占用 cpu 最高的前10个进程

1
ps  aux| head  -1; ps  aux| grep  - v  PID| sort  -rn -k +10| head


linux 下 取进程占用内存(MEM)最高的前10个进程

1
ps  aux| head  -1; ps  aux| grep  - v  PID| sort  -rn -k +10| head

 

1
ps  aux| head  -1; ps  aux| grep  - v  PID| sort  -rn -k +4| head


查看网络流量

1
2
watch  more  /proc/net/dev
watch  ifconfig


查看文件夹的大小

1
2
3
4
du  -h --max-depth=1 work /testing
du  -h --max-depth=1 work /testing/ *
du  -h --max-depth=1 work /testing/logs/
du  -h --max-depth=1 work /testing/logs/ *


查看linux文件目录的大小和文件夹包含的文件数 统计总数大小

1
2
3
4
5
6
7
8
du  -sh xmldb/
du  -sm * |  sort  -n  // 统计当前目录大小 并安大小 排序
du  -sk * |  sort  -n
du  -sk * |  grep  guojf  // 看一个人的大小
du  -m |  cut  -d  "/"  -f 2  // 看第二个/ 字符前的文字
查看此文件夹有多少文件 /*/*/* 有多少文件
du  xmldb/
du  xmldb/*/*/* | wc  -l

解释:

wc [-lmw]

参数说明:

-l :多少行

-m:多少字符

-w:多少字


wget模拟浏览器下载文件

1
wget -x --header= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"  -O tess.mp4   'http://f.youku.com/player/getFlvPath/sid/00_00/st/flv/fileid/03000201004B68D8A10C3B02E28CA60F302730-0349-CBF3-D0CF-B3E30E8C08AA?K=1c5738eed4f0012b2828aa27'


tomcat 启动把8080->80端口映射

1
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080


查看清除mysql状态该信息

1
2
show  global  status  like  'Max_used_connections' ;
flush status
1
select  @@max_user_connections;


查看设置mysql 最大连接数

1
2
show variables  like  'max_connections' ;
set  GLOBAL  max_connections=2000;


mysql开启独立表空间

1
2
[mysqld]
innodb_file_per_table

查看

1
show variables  like  '%per_table%' ;


sqlite查看命令

1
2
3
4
.header  on
. schema  user
.dump  user
select  from  sqlite_master  where  type= "table"  and  name = "user" ;


更新数据库多表相同字段数据

1
2
3
cat  sn.txt
10000015  35084355
10000039  35084356
1
2
3
4
5
6
7
8
9
user= "root"
pass= '1234'
db= "test"
tnames=( "table1"  "table2"  "table3" )
for  table  in  ${tnames[@]}; do
#echo $table
cat  sn.txt |  awk  '{print "update ' $table ' set user_id = "$2 " where user_id = " $1 ";"}'  >> update.sql
done
mysql -u  "$user"  -p "$pass"  "$db"  < update.sql;


生成随机字符:

1
dd  if = /dev/random  count=1 bs=512 |md5sum


系统性能优化 常用命令:

top -ab -n 1

top -ab -n 1 |grep nginx 

vmstats

查看cpu队列,以及负载情况

sar -q -f sa08 

runq-sz:等待执行的任务队列长度。越长阻塞越严重

plist-sz:队列中的任务总数


cpu占用率

sar -p -f sa08


查看内存:

sar -r -f sa08

sar -B -f sa08

查看sawp的交换的频繁程度

sar -W -f sa08


查看IO

sar -b -f sa08

sar -d -f sa08


查看网络

sar -n DEV -f sa08


评估磁盘读写性能极限

1
fio -filename= /data/test  -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size 2G -numjobs=10 -runtie=30 -group_reporting -name=mytest13

创建账户和密码

1
2
useradd  lhb
echo  "lhb"  passwd  --stdin lhbpwd


抓包命令

1
2
tcpdump -i eth0 -nn -X -vv tcp port 21 and ip host 172.17.10.13
tcpdump -i eth0 -s0 -nn -XX tcp dst port 3306 and dst host 172.17.10.13
1
tcpdump -iany udp port 53


删除指定数据库的表

1
mysql -h '127.0.0.1'  -utest -p '123456'  -nse  'show tables'  test_db| while  read  table; do  mysql -h127.0.0.1 ' -utest -123456'  -e  "drop table $table"  test_db; done


bash命令行编辑

    Ctrl+a:跳转到命令行首。

    Ctrl+e:跳转到命令行尾

    Ctrl+u:删除光标至命令行首的内容

    Ctrl+k:删除光标至命令行委的内容

    Ctrl+l:清屏


命令历史的使用技巧:

!n:执行命令历史中的第N条命令

!-n:执行命令历史中的倒数第N条命令

!!:执行上一条命令

!string:执行命令历史中最近一个以指定字符串开头的命令

!$:引用前一个命令的最后一个参数


1
git push -u origin newbranch


本文转自birdinroom 51CTO博客,原文链接:http://blog.51cto.com/birdinroom/1399418,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
7月前
|
存储 Unix Shell
Shell 输出命令完全指南:echo 与 printf 的深度剖析
本文深入解析了 Shell 编程中 `echo` 和 `printf` 两个核心输出命令的用法与区别。`echo` 简单易用,适合基础输出;`printf` 功能强大,支持复杂格式化。文章从语法、转义序列、高级技巧到实际应用场景(如日志记录、进度显示)逐一讲解,并对比两者的性能与适用场景,帮助开发者根据需求灵活选择。最后通过进阶技巧和常见问题解答,进一步提升对两者的掌握程度。
365 1
|
8月前
|
网络协议 Shell 网络安全
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
“说说看,如果一个Pod的容器没有Shell,如何测试它能否访问外网?”
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
|
10月前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
309 20
|
10月前
|
安全 Shell 数据处理
使用Python执行Shell命令并获取结果
在实际应用中,可以根据需要选择适当的参数和方法来执行Shell命令,并处理可能出现的各种情况。无论是系统管理、自动化任务还是数据处理,掌握这些技巧都将极大地提高工作效率。
355 12
|
11月前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
12月前
|
人工智能 Shell iOS开发
AI Shell:在命令行里“对话” AI ,微软推出将 AI 助手引入命令行的 CLI 工具,打造对话式交互命令行
AI Shell 是一款强大的 CLI 工具,将人工智能直接集成到命令行中,帮助用户提高生产力。AI Shell 支持多种 AI 模型和助手,通过多代理框架提供丰富的功能和灵活的使用模式。
1529 7
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
299 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
254 1
|
SQL 存储 数据库
新建数据集SQL命令详解及技巧
在数据库管理中,新建数据集(即创建新表)是常见的操作之一
|
Unix Shell Linux
常见的shell命令
shell常用命令
308 11