Linux学习记录——持续更新

持续记录Linux的一些知识:


1、grep 同时查找多个内容

例:因为服务器某文件夹中有多个文件,如果用“ll”命令的话,会显示出所有内容不方便定位,如下图:


在这么多文件中,如果只想得到lineStage_vX.zip时,就可以使用grep命令来进行过滤,如下图:


上图是按照一个字符串“line”来进行查找的,如果要查找多个字符串时,可以使用  |grep -E ‘line|len’来进行查找,如下图:



2、Crontab定时任务命令

crontab命令用于设置周期性被执行的指令

① 首先是crontab命令的位置,crontab文件一般位于/etc目录下:


第一行SHELL变量指定了系统要用哪个shell,这里是bash

第二行PATH变量指定了系统执行命令的路径

第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果该变量值为空,则表示不放松任务执行信息给用户

第四行的HOME变量指定了在执行命令或者脚本时使用的主目录


② 每个用户都会生成一个自己的crontab文件,位于/var/spool/cron目录下:


如上图所示,只有一个root用户的crontab文件


③ 设置用户能否使用crontab命令

/etc/cron.deny 表示不能使用crontab 命令的用户
/etc/cron.allow 表示能使用crontab的用户


④ 格式

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute   hour   day   month   week   command

其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。


特殊符号含义:

         “*”   代表任何时刻都接受的意思
         “/n”  n 代表数字,也就是每隔 n 单位间隔的意思,如: /5 * * * * command 代表的是每月每日每时每隔5分钟执行一次
         “-”   代表一段时间范围内,如:10 7-10 * * * command 代表的是每月每日的7点到10点的10分整时执行命令
         “,”   代表分隔字段的意思,如:15,30,45 * * * * command 代表的是每月每日每小时的15分,30分,45分的时候执行命令

这么说起来不好理解,来几个实例:

每1分钟执行一次 * * * * * command 
每小时的第15,30,45分钟执行15,30,45 * * * * command
7点到10点的第10,50分钟执行10,50 7-10 * * * command
每隔一天的7点到11点的第20和第40分钟执行20,40 7-11 */1 * * command
每周一的7点到11点的第25和第50分钟执行25,50 7-11 * * 1 command
每天的3:30执行30 3 * * * command
每月1、10、20日的3 : 30执行30 3 1,10,20 * * command
每周六、周日的3 : 30执行30 3 * * 6,7 command
每天9点到16点之间每隔15分钟执行/15 9-16 * * * command
  









⑤ crontab的语法

首先来看看man命令下的内容:

OPTIONS
       -u     Append  the  name  of  the  user  whose crontab is to be tweaked.  If this option is not given,
              crontab examines "your" crontab, i.e., the crontab of the person executing the  command.   Note
              that  su(8)  can  confuse crontab and that if you are running inside of su(8) you should always
              use the -u option for safety’s sake.  The first form of this command is used to install  a  new
              crontab from some named file or standard input if the pseudo-filename "-" is given.

       -l     The current crontab will be displayed on standard output.

       -r     The current crontab will be removed.

       -e     This  option  is  used  to edit the current crontab using the editor specified by the VISUAL or
              EDITOR environment variables.  After you exit from the editor, the  modified  crontab  will  be
              installed automatically.

       -i     This  option  modifies  the  -r  option to prompt the user for a ’y/Y’ response before actually
              removing the crontab.

       -s     It will append the current SELinux security context string  as  an  MLS_LEVEL  setting  to  the
              crontab  file  before  editing  /  replacement  occurs  - see the documentation of MLS_LEVEL in
              crontab(5).

常用参数具体解释:

-u  :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
-e  :编辑 crontab 的工作内容
-l  :查阅 crontab 的工作内容
-r  :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑


⑥  > /dev/null 2>&1

>  :代表重定向到哪里,例如:echo "123" > /home/123.txt
1  :表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2  :表示stderr标准错误
&  :表示等同于的意思,2>&1,表示2的输出重定向等同于1

1> /dev/null : 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。

2>&1 :标准错误输出重定向(等同于)标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。


3.常用性能分析命令

① vmstat ——虚拟内存统计

用法:

[root@219 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  18832 1701584 175852 2093784    0    0     0     0    0    0  0  0 100  0  0	
其中:


r : 运行和等待 CPU 时间片的进程数。若该值大于系统 CPU 个数,则说明 CPU 不足
b : 表示等待资源的进程数
swpd : 切换到内存交换区的内存大小(单位 KB)
free: 空闲的物理内存的大小,我的机器内存总共2G,剩余92M。
buff: Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存
cache:直接用来记忆我们打开的文件,给文件做缓冲,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用
si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so:每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
bi:块设备每秒接收的块数量(读磁盘)(kb/s)
bo:块设备每秒发送的块数量(写磁盘)(kb/s)
in:每秒CPU的中断次数,包括时间中断
cs:每秒上下文切换次数。
us:用户进程消耗 CPU 时间百分比
sy:内核进程消耗 CPU 时间百分比,sy 的值较高时,则说明内核消耗的 CPU 资源很多
id:空闲 CPU 时间百分比
wt:IO 等待 CPU 时间百分比

② free ——内存使用状况

用法:

[root@219 ~]# free
             total       used       free     shared    buffers     cached
Mem:       5989916    4287536    1702380        100     175852    2093824
-/+ buffers/cache:    2017860    3972056
Swap:      6143996      18832    6125164

[root@219 ~]# free -h
             total       used       free     shared    buffers     cached
Mem:          5.7G       4.1G       1.6G       100K       171M       2.0G
-/+ buffers/cache:       1.9G       3.8G
Swap:         5.9G        18M       5.8G

[root@219 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          5849       4187       1662          0        171       2044
-/+ buffers/cache:       1970       3878
Swap:         5999         18       5981

③ uptime ——统计当前系统的运行情况

用法:

[root@219 ~]# uptime
 10:05:17 up 165 days, 22:16,  1 user,  load average: 0.53, 0.69, 0.76
load average: 系统 1分钟,5分钟,15分钟的平均负荷


④ netstat ——当前网络信息

其中:


-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

⑤ top 

用法:

[root@219 ~]# top
top - 10:18:59 up 165 days, 22:29,  1 user,  load average: 0.59, 0.62, 0.67
Tasks: 450 total,   1 running, 449 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.4%us,  0.1%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   5989916k total,  4289596k used,  1700320k free,   175852k buffers
Swap:  6143996k total,    18832k used,  6125164k free,  2094744k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                       
29536 root      20   0 11.4g 320m  11m S  6.6  5.5   6451:29 java                                                                                                                                                                           
32136 root      20   0 3137m 191m  13m S  3.0  3.3   2412:06 java                                                                                                                                                                           
31080 root      20   0 3206m 208m  12m S  2.3  3.6   2416:43 java                                                                                                                                                                           
27828 mysql     20   0 9864m 581m 6772 S  1.0  9.9   1966:49 mysqld                                                                                                                                                                         
19204 root      20   0 15284 1620  996 R  0.7  0.0   0:00.08 top                                                                                                                                                                            
  106 root      20   0     0    0    0 S  0.3  0.0   6:39.82 events/7                                                                                                                                                                       
    1 root      20   0 19232 1044  892 S  0.0  0.0   0:02.85 init                                                                                                                                                                           
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.02 kthreadd                                                                                                                                                                       
    3 root      RT   0     0    0    0 S  0.0  0.0   2:02.50 migration/0                                                                                                                                                                    
    4 root      20   0     0    0    0 S  0.0  0.0   1:58.95 ksoftirqd/0                                                                                                                                                                    
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0                                                                                                                                                                      
    6 root      RT   0     0    0    0 S  0.0  0.0   0:27.89 watchdog/0                                                                                                                                                                     
    7 root      RT   0     0    0    0 S  0.0  0.0   1:45.87 migration/1                                                                                                                                                                    
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/1                                                                                                                                                                      
    9 root      20   0     0    0    0 S  0.0  0.0   1:35.73 ksoftirqd/1                                                                                                                                                                    
   10 root      RT   0     0    0    0 S  0.0  0.0   0:22.26 watchdog/1                                                                                                                                                                     
   11 root      RT   0     0    0    0 S  0.0  0.0   1:05.09 migration/2                                                                                                                                                                    
   12 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/2                                                                                                                                                                      
   13 root      20   0     0    0    0 S  0.0  0.0   1:07.47 ksoftirqd/2                                                                                                                                                                    
   14 root      RT   0     0    0    0 S  0.0  0.0   0:23.38 watchdog/2                                                                                                                                                                     
   15 root      RT   0     0    0    0 S  0.0  0.0   0:47.39 migration/3

其中:

第一行:
10:18:59 当前系统时间
165days, 22:29 系统已经运行了165天22小时29分钟(在这期间没有重启过)
1 users 当前有1个用户登录系统
load average: 0.59, 0.62, 0.67 ,后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行:Tasks 任务(进程)
系统现在共有450个进程,其中处于运行中的有1个,449个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行:cpu状态
us 用户空间占用CPU的百分比
sy 内核空间占用CPU的百分比
ni 改变过优先级的进程占用CPU的百分比
id 空闲CPU百分比
wa IO等待占用CPU的百分比
hi 硬中断(Hardware IRQ)占用CPU的百分比
si 软中断(Software Interrupts)占用CPU的百分比

第四行:内存状态

total 物理内存总量
free 空闲内存总量
used 使用中的内存总量
buff/cache 缓存的内存量

第五行:swap交换分区


total 交换区总量
free 空闲交换区总量
used 使用的交换区总量
avail Mem 缓冲的交换区总量

第六行:各进程(任务)的状态监控

PID 进程id
USER 进程所有者
PR 进程优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 进程名称(命令名/命令行)


参考文件:http://www.cnblogs.com/chenshishuo/p/5152068.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值