设为首页 收藏本站
查看: 787|回复: 0

常用 shell sql 命令

[复制链接]

尚未签到

发表于 2018-8-16 13:33:49 | 显示全部楼层 |阅读模式
  vim添加指定开始的行号
:g/^/ s//\=line('.')+765.':'/  vim 将文件所有行合并到一行
  在 Normal Mode下执行:
ggvGJ  逗号分割的字符串转化成多行
%s/,/\r/g  gg 用于跳到行首
  v 转换成 visual 模式
  G 跳到最后一行
  J 合并行
  大文件分割:
split -a 2 -d -l 790000 check_video_list.txt check_video_list  抓包命令:
#!/bin/bash  
/usr/sbin/tcpdump -i eth0 host fusion.qiniuapi.com -s0  -w fusion.qiniuapi.com.dump.cap
  curl查看网络情况
#!/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
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"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  查看内存占用
free -m | sed -n '2p' | awk '{print "used mem is "$3"M,total mem is "$2"M,used percent is "$3/$2*100"%"}'#!/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
svn log -l 5 test.php  
svn diff -r r9982:r9988 test.php
  
svn diff -r PREV:COMMITTED test.php
  vim批量删除注释
:g/^#/d  vim删除空行
:g/^$/d  查看网卡实时流量
nload  
iftop
  
bmon
  shell执行php脚本
#!/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 查找
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
  查找替换
find dirname/ -name "*.m3u8" |xargs sed -i 's/#EXT-X-ENDLIST/#EXT-X-ENDLIST\n/g'  删除两分钟之前的文件
find /var/www -type f -mmin 2 -exec rm {} \;  redis 批量删除
redis-cli keys "prefix*" | xargs redis-cli del  查看linux当前连接数
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
ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}'  
cat /proc/net/sockstat
  统计nginx日志访问ip数
awk '{print $1}' access.log |uniq -c |wc -l  通过SSH将MySQL数据库复制到新服务器
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大表
mysqldump -q -e --single-transaction  --ignore-table=table1 --ignore-table=table2 -uroot -p''   --max_allowed_packet=16777216 --net_buffer_length=8192  dbname  > dbname.sql  创建数据库
CREATE DATABASE cms default charset utf8 COLLATE utf8_general_ci;  导入数据
mysql -u root -puse cms;  
source /home/lhb/data/cms.sql
  备份数据库
mysqldump -uroot -p cms --ignore-table=cms.history  --ignore-table=cms.statistics > cms.sql/usr/bin/mysqldump -u root -p cms > /home/lhb/data/cms.sqlmysqldump --all-databases --lock-all-tables --lock-all-tables --flush-logs --master-data=2 > all.sql  把文件上传到远程服务器,把文件从远程服务器copy到本地
scp /home/lhb/data/cms.sql lhb@192.168.1.30:/home/lhb/datascp root@172.17.1.17:/home/lhb/data/cms.sql /home/lhb/data  mysql给root启用远程登录
GRANT all privileges ON *.* TO 'root'@'%' IDENTIFIED BY '123';  
flush privileges;
-----------------------------------------------------------------------  
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'test'@'172.16.%.%' IDENTIFIED BY 'test'  给表添加索引
ALTER TABLE ad_event ADD INDEX ind_order(order_id)  执行定时任务
0 2 * * * /home/lhb/cli/chk_nginx.sh  >> /dev/null &  查看满查询日志
show variables like '%slow%';  在线开启mysql慢查询
set global slow_query_log=1;  
set global long_query_time=2;
  
set global slow_query_log_file='mysql-slow.log';
  记录没有使用索引的sql
set global log_queries_not_using_indexes = 1;  关闭慢查询
set global slow_query_log=0;  查看二进制事件信息
show binlog events in 'mysql-bin.000001';show binlog events in 'mysql-bin.000001' from 107;  查看所有二进制文件
show binary logs;  删除二进制文件
purge binary logs to '指定的二进制文件'  分析nginx log
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
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条
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进程
ps -ef |grep nginx |grep -v grep |awk '{print $2}' |xargs kill -9  查看nginx进程数
watch -n 1 -d "grep nginx|wc -l"  查看mysql进程链接数
ps axef | grep mysqld -c  查看端口是否占用
lsof -i:80  
或者
  
netstat -an |grep 80
  查看系统调用的参数,返回值,耗时
strace -p  查看进程pid打开的文件描述符
lsof -p pid  查询mysql 表信息-建立时间 更新时间 行数 版本等等
show table status;  
show table status like '%tablename%';
UPDATE video_link SET location = replace( location, '\t', '' )  
SELECT `video_id` FROM `video_link`  where left(`location`,1) = '\t'
  
delete from video where starttime> update.sql
  
done
  
mysql -u &quot;$user&quot; -p&quot;$pass&quot; &quot;$db&quot; < update.sql;
  生成随机字符:
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
  评估磁盘读写性能极限
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  创建账户和密码
useradd lhb  
echo &quot;lhb&quot; | passwd --stdin lhbpwd
  抓包命令
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
tcpdump -iany udp port 53  删除指定数据库的表
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 &quot;drop table $table&quot; test_db;done  bash命令行编辑
  Ctrl+a:跳转到命令行首。
  Ctrl+e:跳转到命令行尾
  Ctrl+u:删除光标至命令行首的内容
  Ctrl+k:删除光标至命令行委的内容
  Ctrl+l:清屏
  命令历史的使用技巧:
  !n:执行命令历史中的第N条命令
  !-n:执行命令历史中的倒数第N条命令
  !!:执行上一条命令
  !string:执行命令历史中最近一个以指定字符串开头的命令
  !$:引用前一个命令的最后一个参数
git push -u origin newbranch


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-552722-1-1.html 上篇帖子: 运维人员如何学好shell脚本编程 下篇帖子: github的使用(git shell )
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表