linux 运维常用命令

系统操作类

杀死僵尸进程

ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9

查看TCP 并发

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'

  LAST_ACK 5   (正在等待处理的请求数) 

  SYN_RECV 30 

  ESTABLISHED 1597 (正常数据传输状态) 

  FIN_WAIT1 51 

  FIN_WAIT2 504 

  TIME_WAIT 1057 (处理完毕,等待超时结束的请求数) 

  状态:描述 

  CLOSED:无连接是活动的或正在进行 

  LISTEN:服务器在等待进入呼叫 

  SYN_RECV:一个连接请求已经到达,等待确认 

  SYN_SENT:应用已经开始,打开一个连接 

  ESTABLISHED:正常数据传输状态 

  FIN_WAIT1:应用说它已经完成 

  FIN_WAIT2:另一边已同意释放 

  ITMED_WAIT:等待所有分组死掉 

  CLOSING:两边同时尝试关闭 

  TIME_WAIT:另一边已初始化一个释放 

  LAST_ACK:等待所有分组死掉

查看IP按连接数量进行排序

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

用tcpdump嗅探80端口的访问看看谁最高

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

找出使用CPU最多的前10名进程

ps -auxf | sort -nr -k 3 | head -10

看CPU 核数,查看内核,查看位数

grep 'model name' /proc/cpuinfo | wc -l    

查看端口运行什么程序

netstat -apn        lsof -i:818  (端口)

硬盘IO

iostat -x 1 10

查看性能

   dstat -d -r --top-io

批量修改密码

echo password | passwd --stdin root

更改时区

cp  /usr/share/zoneinfo/Asia/Shanghai /etc/localtime    或者直接tzselect   

安装依赖报错so 解决方法

yum provides */libiconv.so.2

yum provides */libboost_system.so

查找当前目录下最大的文件夹

du -h --max-depth=1

输出执行

ls | xargs svn upgrade

统计一个源代码目录中所有PHP文件的行数

find . -type f -name "*.php" -print0 | xargs -0 wc -l

查找所有的jpg 文件,并且压缩它们

find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz

系统优化

vi /etc/sysctl.conf

底部添加

fs.file-max=65535 

vi /etc/security/limits.conf

加上

* soft nofile 65535

* hard nofile 65535

linux 瓶颈找问题十大命令

通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。

uptime

dmesg | tail

vmstat 1

mpstat -P ALL 1

pidstat 1

iostat -xz 1

free -m

sar -n DEV 1

sar -n TCP,ETCP 1

三部完成ssh 免密钥登录

ssh-keygen -t rsa 密钥设置密码

ssh-keygen

ssh-copy-id -i ~/.ssh/id_rsa.pub 6.6.6.3

ssh 6.6.6.3  

git 实用命令

克隆库下来:  git clone https://abc929:a312461613@git.oschina.net/abc929/abc929.git

添加 文件   git add  file   或者 git  add  *

提交更改    git commit -am "update"

更新到新文件   git push origin

更新库到本地   git push 

Command line instructions

Git global setup

git config --global user.name “三爷”

git config --global user.email “sanye@163.com"

Create a new repository

mkdir osyunwei

cd osyunwei

git init

touch README.md

git add README.md

git commit -m "first commit"

git remote add origin http://git.123213.cn/sanye/osyunwei.git

git push -u origin master

Push an existing Git repository

cd existing_git_repo

git remote add origin http://git.123213.cn/sanye/osyunwei.git

git push -u origin master

从命令行创建一个新的仓库
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@192.168.0.21:lrm929/linux1.git
git push -u origin master
从命令行推送已经创建的仓库
git remote add origin git@192.168.0.21:lrm929/linux1.git
git push -u origin master
###合并test分支到master
git checkout master
git merge test
git push -u origin master
####回滚到commit f4802ed5b6a90a8e801b6fde153b9552185ab2e2
git reset f4802ed5b6a90a8e801b6fde153b9552185ab2e2
git push -u origin test
git push -f -u origin test
#查看 当前分支
git branch
#查看log
git log
# 更新git svn
git svn fetch
文档更新时间: 2018-11-29 10:40   作者:RuM