常用shellsql命令
抓包命令:
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} ; done
|
1
|
curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download} " "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 " ; 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% $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
|
刪除兩分鐘之前的檔案
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, ` ` , `` )
SELECT `video_id` FROM `video_link` where left(`location`,1) = ` `
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 |
相關文章
- 常用docker命令Docker
- 常用shell 命令
- 常用DOS命令
- 常用adb命令
- 常用 artisan 命令
- 常用adb 命令
- 常用jvm命令JVM
- 常用scp命令
- 常用zsh 命令
- 【PG常用命令】Postgresql常用命令之大小SQL
- Linux常用命令:效能命令Linux
- shell常用的命令
- Docker常用的命令Docker
- 常用的linux命令Linux
- 常用的ADB命令
- 常用的 Homebrew 命令
- 【mongoDB】常用操作命令MongoDB
- VIM 常用插入命令
- 常用的 nginx 命令Nginx
- Linux常用效能命令Linux
- Docker常用操作命令Docker
- 常用命令
- Windows常用dos命令Windows
- Laravel 常用 artisan 命令Laravel
- 常用的 maven 命令Maven
- 常用網路命令
- 常用的docker命令Docker
- linux常用命令解析三(常用系統工作命令cal)Linux
- Git日常常用命令和ADB常用命令Git
- composer 更新命令及常用命令
- composer更新命令及常用命令
- 常用的Linux命令;Linux常用命令用法及實現方式Linux
- anaconda常用命令
- rockylinux常用命令Linux
- Linux常用命令Linux
- kubectl常用命令
- Dos常用命令
- AD中常用的命令
- git常用命令Git