CentOS运维相关

2017.12.7 centos

1.Nginx查看并发链接数

需要配置status模块

nginx.conf,在server里面加入如下内容:

location /nginx_status {
   stub_status on;
   access_log /usr/local/nginx/logs/status.log;
   auth_basic "nginx_status";
}

配置后检查

/usr/local/nginx/sbin/nginx -t

重新加载配置文件

/usr/local/nginx/sbin/nginx -s reload

查看结果说明: Active connections //当前 Nginx 正处理的活动连接数. server accepts handledrequests //总共处理了387142个连接,成功创建387142次握手,总共处理了4804888个请求. Reading //nginx 读取到客户端的 Header 信息数. Writing //nginx 返回给客户端的 Header 信息数. Waiting //开启 keep-alive 的情况下,这个值等于active-(reading+writing),意思就是Nginx已经处理完正在等候下一次请求指令的驻留连接.

2.通过命令查看

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}'

结果说明

SYN_RECV //一个连接请求已经到达,等待确认 ESTABLISHED //正常数据传输状态/当前并发连接数 FIN_WAIT2 //另一边已同意释放 ITMED_WAIT //等待所有分组死掉 CLOSING //两边同时尝试关闭 TIME_WAIT //另一边已初始化一个释放 LAST_ACK //等待所有分组死掉

3.查看使用过高的进程,然后dump出该进程的所有线程及状态

使用命令 jstack PID 命令打印出CPU占用过高进程的线程栈.

jstack -l 5683 > 5683.stack

4.使用top命令找到耗cpu的线程

 使用top -H -p PID 命令查看对应进程是哪个线程占用CPU过高.

5.

./jstack -l 20409 > 20409.log

20409: Unable to open socket file: target process not responding or HotSpot VM not loaded The -F option can be used when the target process is not responding

说明在/tmp/hsperfdata_$username下没有20409这个进程文件

打印在/tmp/hsperfdata_$username下有的进程文件,使用printf “%x\n” 20509得到nid,在20509.log查找对应的代码片段

6.关闭tomcat后关闭java进程

# ps -e|grep java
# kill -9 进程号

7.端口

/etc/init.d/iptables status
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT  写入修改

/etc/init.d/iptables save  保存修改

service iptables restart  重启防火墙,修改生效
/sbin/iptables -I INPUT -p tcp --dport 80 -j DROP  写入修改

/etc/init.d/iptables save  保存修改

service iptables restart  重启防火墙,修改生效

8.交换空间

新建/app/server/swap

# cd /app/server/swap
# dd if=/dev/zero of=/app/server/swap/swap bs=1024 count=64480000
     maxActive="50" maxIdle="10" minIdle="5" initialSize="5"
# mkswap /app/server/swap/swap
mkswap: /app/server/swap/swap: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 64479996 KiB
no label, UUID=4a7c3567-6273-4544-b57b-3692fc692430

# free -g

# swapon /app/server/swap/swap
启用交换空间

# free -g
或grep SwapTotal /proc/meminfo

# vi /etc/fstab
最后加上
/app/server/swap/swap       swap                    swap    defaults        0 0
作用是开启自动挂载交换空间

9.更改用户口令 passwd

终极用户能为自己和其他用户指定口令,普通用户只能修改自己的口令。命令的格式为:

passwd 选项 用户名
可使用的选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。

如果默认用户名,则修改当前用户的口令。

例如:假设当前用户是andy,则下面的命令修改该用户自己的口令:

代码如下:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******

如果是终极用户,能用下列形式指定任意用户的口令:

代码如下:
# passwd andy
New password:*******
Re-enter new password:*******

10.root用户强制踢除其它登录用户

w查看需要剔除的用户tty
踢出tty为pts/1用户的命令为: pkill -kill -t pts/1

11.查看匹配某字符的日志

查看包含spotlight login的日志

grep "spotlight login" test.log

12.修改归档目录及大小

show parameter db_recovery;
alter system set db_recovery_file_dest_size=10G scope=spfile;

13.定期删除文件

1创建shell:
touch /app/server/tasks/del-30-days-ago-log.sh
chmod +x /app/server/tasks/del-30-days-ago-log.sh
新建一个可执行文件del-30-days-ago-log.sh,并分配可运行权限

2编辑shell脚本:
vi /app/server/tasks/del-30-days-ago-log.sh
编辑del-30-days-ago-log.sh文件如下:
#!/bin/sh
find /app/server/tasks/temp/ -mtime +30 -name "*.matdoc.tmp" -exec rm -rf {} \;
ok,保存退出(:wq)。

3计划任务:
#crontab -e
将del-30-days-ago-log.sh执行脚本加入到系统计划任务,到点自动执行
输入:
10 0 * * * /app/server/tasks/del-30-days-ago-log.sh >/dev/null 2>&1

这里的设置是每天凌晨0点10分执行del-30-days-ago-log.sh文件清理30天前数据
-mmin是分钟

14.linux history 记录 时间 ip 登录用户

vi /etc/profile
-------------------

#history

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi

export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S] [${USER_IP}-${LOGNAME}]"

-------------------
source /etc/profile
HISTFILESIZE=30
HISTSIZE=30

只记录小部分的记录数,

且可以在/etc/skel/.bash_logout中添加下面这行

rm -f $HOME/.bash_history

这样,每次注销时,.bash_history文件都会被删除,网管可用

指定保存记录文件的位置,history -c 对该文件无效,不会清空记录

15.显示环境变量的值

echo $JAVA_HOME

16.4种方法重复执行上一条命令

17.iostat

avg-cpu段:
  %user: 在用户级别运行所使用的CPU的百分比.
  %nice: nice操作所使用的CPU的百分比.
  %sys: 在系统级别(kernel)运行所使用CPU的百分比.
  %iowait: CPU等待硬件I/O时,所占用CPU百分比.
  %idle: CPU空闲时间的百分比.
Device段:
  tps: 每秒钟发送到的I/O请求数.
  Blk_read /s: 每秒读取的block数.
  Blk_wrtn/s: 每秒写入的block数.
  Blk_read:   读入的block总数.
  Blk_wrtn:  写入的block总数.

18.vmstat(virtual memory)

虚拟内存使用情况

19.meminfo

内存使用情况

20.mpstat

比vmstat更详细,vmstat统计所有的cpu信息,mpstat分别统计各cpu的信息

21.查看进程启动时间和持续时间

ps -ef|grep java
查找到java的进程id  1988
ps -eo pid,lstart,etime|grep 1988

22.查看磁盘使用情况

df -h
fdisk -l

23.oracle开启em

$ export ORACLE_SID=orcl
$ emctl start dbconsole

https://localhost:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ...... started. 

访问地址:https://localhost:1158/em
查看状态:$ emctl status dbconsole

第一次登陆: sysman / oem_temp(第一次登陆) ,然后用自己的账号登录

24.oracle查看表空间大小

SELECT SUM(BYTES)/1024/1024 "表大小(M)" FROM USER_SEGMENTS WHERE SEGMENT_NAME='TABLE_NAME';

25.oracle查看表空间大小及使用率

select

   a.a1 表空间名称,
 
   c.c2 类型,
 
   c.c3 区管理,
 
   b.b2 / 1024 / 1024 表空间大小M,
 
   (b.b2 - a.a2) / 1024 / 1024 已使用M,
 
   substr((b.b2 - a.a2) / b.b2 * 100, 1, 5) 利用率
 
   from
 
    (select tablespace_name a1, sum(nvl(bytes, 0)) a2
       from dba_free_space
      group by tablespace_name) a,
 
    (select tablespace_name b1, sum(bytes) b2
       from dba_data_files
      group by tablespace_name) b,
 
    (select tablespace_name c1, contents c2, extent_management c3
       from dba_tablespaces) c
 
   where a.a1 = b.b1 and c.c1 = b.b1;

26.oracle查看oracle表空间是否自动扩展

使用dba权限运行以下语句,如果AUTOEXTENSIBLE=YES则说明是自动扩展

SELECT FILE_NAME,AUTOEXTENSIBLE,INCREMENT_BY FROM DBA_DATA_FILES;

27.scp远程复制

从 本地 复制到 远程 
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root (然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了),复制目录加参数 -r 即可 

从 远程 复制到 本地 
scp root@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz

更新列表:

Centos查看端口占用情况和开启端口命令详解 Centos系统增加swap空间大小的方法

参考文章:

相关阅读