linux服务运维常用命令

前言

仅适合有linux基础的童鞋

删除/卸载/杀进程操作,请谨慎,再谨慎

命令

rpm篇

rpm -qa | grep 'xxx'                #查看服务安装情况
rpm -ivh xxxx_1_0_0.rpm              #初次安装
rpm -Uvh xxxx_1_0_1.rpm     		 #升级  版本好只能更高
rpm -Uvh --force xxxx_1_0_0.rpm      #强制升级 回退
rpm -e   xxxx_1_0_1.rpm              #卸载  慎用

supervisor篇

supervisorctl status   xxxx           #查看服务状况
supervisorctl start    xxxx           #启动服务
supervisorctl stop     xxxx           #关闭服务
supervisorctl restart  xxxx           #重启服务

日志篇

tail -f /logs/xxx.log               #控制台持续输出日志
control + c                         #推出tail
cat /logs/xxx.log   | grep 'error'  #过滤错误日志
zmore /logs/xxx.log                 #查看gizp zip compress压缩文件
q或Q                                 #推出zmore

清除篇(谨慎)

find . -type d  | grep 'xxxx'                         #查找当前目录下子目录
find . -type d  | grep 'xxxx' |xargs rm -rf          #删除匹配文件夹  慎用
find . -type f  | grep 'xxxx.json'                    #查找当前目录下子目录
find . -type d  | grep 'xxxx.json' |xargs rm -f       #删除匹配文件  慎用

进程篇

ps -aux | grep 'xxxx'               #查看增在运行的服务 可获得pid
top -p pid                          #查看正在运行的服务各项指标
q或者Q                               #退出top
kill -9 pid                         #杀死指定进程 慎用

端口篇

netstat命令参数:
  -t : 指明显示TCP端口
  -u : 指明显示UDP端口
  -l : 仅显示监听套接字(程序)
  -p : 显示进程标识符和程序名称
  -n : 不进行DNS轮询,显示IP
  
netstat -ntlp                 //查看当前所有tcp端口
netstat -ntulp | grep 80      //查看所有80端口使用情况·
netstat  -lanp                //查询服务以及端口  
netstat  -lanp | grep mysql   //查询mysql服务端口
netstat  -pnt |grep :3306 |wc //查询3306链接数

防火墙篇

# 防火墙
# Centos7 之前
service iptables start
service iptables stop
service iptables restart
# Centos7 之后
systemctl stop firewalld.service 
systemctl start firewalld.service 
systemctl restart firewalld.service 

# 策略
# Centos7 之前
#开启5212端口接收数据
/sbin/iptables -I INPUT -p tcp --dport 5212 -j ACCEPT
#开启5212端口发送数据
/sbin/iptables -I OUTPUT -p tcp --dport 5212 -j ACCEPT
#保存配置
/etc/rc.d/init.d/iptables save
#重启防火墙服务
/etc/rc.d/init.d/iptables restart
#查看是否开启成功
/etc/init.d/iptables status

# Centos7 之后
# 添加端口
firewall-cmd --zone=public --add-port=5121/tcp --permanent
# --zone 作用域
# --add-port=5121/tcp 添加端口,格式为:端口/通讯协议
# --permanent 永久生效,没有此参数重启后失效
# 删除端口
firewall-cmd --zone=public --remove-port=5121/tcp --permanent  
# 配置立即生效
firewall-cmd --reload   
# 查询所有开放端口
firewall-cmd --zone=public --list-ports
# 查看防火墙状态
firewall-cmd --state

磁盘篇

df                          //查询磁盘分区情况
df -H                       //查询磁盘分区使用情况
du -sh  *                   //查询当前目录下每个文件占用空间大小
du -h --max-depth=1 [dir]   //查询 [dir] 递归深度为1的使用情况
du -s *|sort -n             //排序
du -s *|sort -nr            //反向排序

内存篇

free   //查看内存使用情况
#total:总计物理内存的大小。
#used:已使用多大。
#free:可用有多少。
#shared:多个进程共享的内存总额。
#buff/cache:磁盘缓存的大小。
#favailable:已使用多大。

cat /proc/meminfo //查看服务器详细内存情况

脚本语法

if

# 单分支
if [ command ];then
   echo 'do'
fi

# 多分支
if [ command ];then
   echo 'do'
elif [ command ];then
   echo 'do'
else
   echo 'do'
fi
# 常用 command
[ -d DIR ] 如果 FILE 存在且是一个目录则为真。
[ -e FILE ] 如果 FILE 存在则为真。
[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。
[ -r FILE ] 如果 FILE 存在且是可读的则为真。
[ -s FILE ] 如果 FILE 存在且大小不为0则为真。
[ -w FILE ] 如果 FILE存在且是可写的则为真。
[ -x FILE ] 如果 FILE 存在且是可执行的则为真。
[ -L FILE ] 如果 FILE 存在且是一个符号连接则为真。
[ -S FILE ] 如果 FILE 存在且是一个套接字则为真。
[ FILE1 -nt FILE2 ] 如果 FILE1 has been changed more recently than FILE2, or 如果 FILE1 exists and FILE2 does not则为真。
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。
[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。

# 常用符号
-eq # =
-ne # 不等于
-lt # <
-le # <=
-gt # >
-ge # >=
! # 非
|| # 或
&& # 与

命令行变量获取

# $起头 从1开始 空格分割参数
$1 
# 例如 
build.sh 1 2 3
$?= 上个命令的退出状态
$# = 参数个数 3
$* = 所有参数
$@ = 所有参数,"包裹时" 拆分出来
$$ = 当前shell进程id
$0 = build.sh
$1 = 1
$2 = 2
$3 = 3

猜你喜欢

转载自blog.csdn.net/qq_22211217/article/details/107745400