零基础学习云计算及大数据DBA集群架构师【Linux系统配置及网络配置2015年12月29日周二】

2015.12.29/Tue

*************摘要**************
1.进程      pstree ps pgrep pidof top kill nice renice
2.前后台作业 & fg ctrl+z bg jobs
3.日志      rsyslogd klogd logrotate /etc/rsyslog.conf  /etc/rsyslog.d/*  /etc/logrotate.conf /etc/logrotate.d/*
/etc/cron/logrotate


**********进程**********
进程:进行中的程序,进程是程序运行的一种状态,是内存中的概念。
线程:进程的基本单元。
进程名 pid
父进程 ppid
1.pstree 查看进程的结构
  -p -u
2.ps 静态查看进程信息

#ps
[root@rhel6 Office]# ps <==查看当前标签页上的进程信息
  PID TTY          TIME CMD
 2568 pts/1    00:00:00 bash
27653 pts/1    00:00:00 ps
[root@rhel6 Office]# ps aux <==系统进程快照
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19360  1424 ?        Ss   09:27   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    09:27   0:00 [kthreadd]
[root@rhel6 Office]# ps -ef <==e所有进程 f全格式罗列  
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:27 ?        00:00:00 /sbin/init
root         2     0  0 09:27 ?        00:00:00 [kthreadd]
root         3     2  0 09:27 ?        00:00:00 [migration/0]
[root@rhel6 Office]# ps -le
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 -  4840 poll_s ?        00:00:00 init
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd

#pgrep用来过滤进程号
[root@rhel6 ~]# pgrep -l ping <==截取进程号pid
27706 ping
[root@rhel6 ~]# pgrep  -lU student <==指定用户截取进程号pid
27736 bash
27762 ping
[root@rhel6 ~]# pgrep  -l -t pts/1 <==指定登陆端口截取进程号pid
2568 bash
27735 su
27736 bash

#pidof
[root@rhel6 ~]# pidof Xorg <==只显示进程的进程号pid
1526

3.动态查看进程信息
#top 终端提示符不显示
  【d】修改默认刷新频率,默认3s
  【P】以cup占用百分比进行排序
  【M】以内存的占用情况排序
  【h】显示帮助信息
  【<>】翻页
  【k】杀掉进程kill
#signal
 15 安全结束方式 待程序完成
 9  kill接杀掉强制关闭
 1  reload重置信号,让服务重新加载,不影响进程的情况下
#xkill哪里关不掉点哪里

4.终结进程
kill
kill pid
kill -s signal pid 使用
killall 结束同名进程

5.进程优先级 NI nice
数字表示:-20-19 数字越小,等级越高
ps -le | grep ping <==查看ping的优先级
nice -n 3 ping 172.0.0.1
普通用户不能指定比0小的优先级,root用户随意
renice -n [-20-19] [pid] <==调整优先级
root可以往高调也可往低调,普通用户只能往低调

拓展:
free 内存
uname系统与核心
uptime 观察
netstat 追踪网络或插槽文件
dmesg 分析核心产生的讯息
vmstat 侦测系统资源变化
fuser 借由文件找出正在使用该文件的程序
lsof 列出程序所开启的文件名
pidof 找出某支正在执行的程序的PID


**********前后台作业**********
&    在创建进程的过程中,将前台作业放置到后台的方法:在命令后面加上 &
jobs 查看后台进程
fg   将后台作业调用到前台
ctrl+z 将已经触发的前台作业调到后台,后台作业暂停
bg   让后台作业执行







=============================================================================================

**********日志**********
日志的作用:
1.解决系统方面的错误
2.解决网络服务的问题
3.过往事件记录

常用的日志:
/var/log/cron     crontab排程
/var/log/dmesg    开机核心侦测信息
/var/log/lastlog  系统所有帐号最近一次登陆信息
/var/log/maillog  邮件往来信息
/var/log/mail/*
/var/log/messages 系统错误信息
/var/log/secure   涉及输入帐号密码的程序
/var/log/wtmp     正确登陆系统的账户信息
/var/log/btmp     错误登陆系统的账户信息

/var/log/httpd/*  
/var/log/news/*
/var/log/samba/*
不同的网络服务会使用它们自己的登录档案来记载它们自己产生的各项讯息


                        
**********日志需要的服务和程序**********                                 

rsyslogd:主要负责记录系统运作中,kernel或应用程序产生的各种讯息。讯息被写入系统日志。
klogd:主要负责记录核心kernel产生的各项信息
logrotate:主要在进行日志文件的轮替功能

#rhel5版本以前是syslogd服务,rhel6之后是rsyslogd服务(reliable and extended 可靠的和拓展的syslogd服务)

rsyslog 将讯息分为七个主要的等级,依序是这样的
等级  等级名称   说明
7     debug    调试
6     info     仅是一些基本的讯息说明而已;
5     notice   比 info 还需要被注意到的一些信息内容;
4     warning  警示
      (warn)
3     err      重大的错误讯息
2     crit     是临界点 (critical) 的缩写,这个错诨已经很严重了
1     alert    警告警告,已经很有问题的等级,比 crit 还要严重!
0     emerg    几乎要当机
      (panic) 

**********如何配置『(1)什么服务 (2)什么等级信息 (3)需要被记录在哪里(装置或档案)』**********

#rsyslogd的相关配置文件: rhel6
/etc/rsyslog.conf
/etc/rsyslog.d/*

#修改rsyslog语法:
mail.info             /var/log/maillog<==mail 相关的数据给他写入 /var/log/maillog 
news.*;cron.*         /var/log/cronnews
news.=warn;cron.=warn /var/log/cronnews.warn<==新闻组资料 (news) 及例行性工作排程 (cron) 的讯息都写入到一个称为 /var/log/cronnews 的档案中,但是这两个程序的警告讯息则额外的记录在 /var/log/cronnews.warn 中
*.*;news,cron,mail.none  /var/log/messages
*.*;news.none;cron.none;mail.none  /var/log/messages<==messages 这个档案需要记录所有的信息,但是就是不想要记录 cron, mail 及 news 的信息

##重启日志
service rsyslog restart <==rhel6
systermctl restart rsyslog <==rhel7

/etc/init.d/rsyslog restart

rsyslog 的日志只要『被编辑过』就无法继续记录! 需要重启日志恢复。


**********设置日志服务器**********rhel6 rhel7
/etc/sysconfig/rsyslog

# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS=""
                   






**********怎举样设计logrotate**********
logrotate : /usr/sbin/logrotate 主要功能就是将旧的日志文档移动成旧档, 并重新建立一个新的空的档案来记录
/etc/cron.daily/logrotate 程序 记录每天要进行的登录档轮替的行为
程序的配置文件
            /etc/logrotate.conf
            /etc/logrotate.d/



#日志的类型:
1.可查看的ASCII的日志
1)messages
2)与程序同名的目录下,会记录和该程序相关的一些日志

2.不可查看的data日志
[root@rhel6 etc]# file /var/log/wtmp
/var/log/wtmp: data
需要调用某些命令才能去查看对应的日志
wtmp <==last:系统登陆登出信息
btmp <==lastb:错误的系统登陆登出情况



#日志轮询
作用:避免文件过大,并且将老的日志进行分门别类的放置,针对非常老的日志可以丢弃。


/var/log/test { <==轮循的日志是谁
weekly <==轮询周期多久
rotate 4 <==保留几个带时间戳的文件
dateext <==是否以时间戳为文件更名格式
create <==是否需要创建一个与原日志文件同名的新文件
}
可以通过man logrotate来查看更多的一些定义。

 

你可能感兴趣的:(零基础学习云计算及大数据DBA集群架构师【Linux系统配置及网络配置2015年12月29日周二】)