分享如何0基础学习linux第八天:计划任务 系统日志

先来详细说一说top 上半部分

这里显示不同模式下所占cpu时间百分比,这些不同的cpu时间表示:
us, user: 运行(未调整优先级的) 用户进程的CPU时间
sy,system: 运行内核进程的CPU时间
ni,niced:运行已调整优先级的用户进程的CPU时间
wa,IO wait: 用于等待IO完成的CPU时间
hi:处理硬件中断的CPU时间
si: 处理软件中断的CPU时间
st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。
可以使用't'命令切换显示。

linux系统有用户态和内核态 问的比较多的 us sy hi si

1.3% us — 用户空间占用CPU的百分比。
1.0% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
97.3% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.3% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
----------------------------------------------------
1) 硬中断

由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包

的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。

(2) 软中断

为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。

 

计划任务概念解析

在Linux操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务(如定期备份、定期采集监测数据)。RHEL6系统中默认已安装了at、crontab软件包,通过atd和crond这两个系统服务实现一次性、周期性计划任务的功能,并分别通过at、crontab命令进行计划任务设置。

计划任务分为一次性和循环性的计划任务

一、一次调度执行-----at

作用:  计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据 

一次性调度执行 at---实战

语法格式
at <时间规格>
  now +5min
  teatime tomorrow (teatime is 16:00)
  5pm august 3 2019 

例1: 
[root@linux-server ~ ]# yum -y install at
[root@linux-server ~]# systemctl status atd    #查看启动状态
[root@linux-server ~ ]# systemctl start atd        #首先要启动服务

[root@linux-server ~]# at now +1min    #一分钟后开始执行
at> useradd uuuu  
at> <EOT>         #Ctrl+D
job 1 at Sat Mar 21 22:34:00 2015

[root@linux-server ~]# id uuuu

 例2: 
[root@linux-server ~]# vim at.jobs 
useradd u99 
useradd u00 
touch /a.txt

[root@linux-server ~]# at 20:33 < at.jobs

 循环调度执行cron 用户级

安装软件
    [root@qfedu.com ~]#  yum -y install crontabs  #如果软件不存在安装

启动服务
    rhel5/6:
    [root@qfedu.com ~]#  /etc/init.d/crond status
    [root@qfedu.com ~]#  /etc/init.d/crond start

    rhel7:
    [root@qfedu.com ~]#  systemctl start crond.service
    [root@qfedu.com ~]#  systemctl status crond.service
    [root@qfedu.com ~]#  systemctl enable crond.service

开机启动(rhel5/6)
    [root@qfedu.com ~]# chkconfig crond on


[root@linux-server ~]# systemctl status crond.service  #查看服务状态

[root@linux-server ~]# ps -ef | grep crond 
root        755      1  0 20:18 ?        00:00:00 /usr/sbin/crond -n

存储位置:
[root@linux-server ~]# cd /var/spool/cron/

管理方式: 
crontab -l    List the jobs for the current user. //列出当前用户的计划任务
crontab -r    Remove all jobs for the current users. //删除当前用户所有的计划任务
crontab -e    Edit jobs for the current user.      //编辑当前用户的计划任务
管理员可以使用 -u username, 去管理其他用户的计划任务

 

语法格式 :
Minutes   Hours    Day-of-Month    Month    Day-of-Week    Command 
 分钟         小时            日             月           周           执行的命令,最好是命令的绝对路径
 0-59      0-23        1-31         1-12          0-7

时间:
*:每
*/5 每隔分钟
,:不同的时间段
- : 表示范围

 

 分 时 日 月 周(星期)

0-59  0-23   1-31 1-12     0-6

0  2  *  *  5    /usr/bin/touch /tmp/1.txt
0  2  14 *  *     /usr/sbin/shutdown  now
*/2  2  *  *  *     touch /tmp/1.txt 

*/1 * *  *  * /mysql_back.sh
0 2 1,4,6 * * /mysql_back.sh
0 2 5-9  *  * /mysql_back.sh

9点到18点 每2个小时整点

0 9-18/2 * * *       
crontab -e

用计划任务执行脚本 切记2点! 1 脚本的绝对路径,并且尽量不要放在/root下。    2 给脚本执行权限

计划任务如果不执行,请查看1 计划任务里是否写的正确,2 请查看下当前系统时间是否准确。date  修改日期及时间 date 月日时分

[root@linux-server ~]# crontab -u jack -e  #使用jack用户创建
[root@linux-server ~]# crontab -u jack -l  #查看jack用户的计划任务
[root@linux-server ~]# crontab -r  #删除当前用户的计划任务
[root@linux-server ~]# crontab -u jack -r #删除jack用户的计划任务

 系统日志:

#tail -f /var/log/messages                    #动态查看日志文件的尾部,系统主日志文件

#tail -f /var/log/secure                    #记录认证、安全的日志

tail /var/log/maillog                        #跟邮件postfix相关

tail /var/log/cron                            #crond、at进程产生的日志

tail /var/log/dmesg                              #和系统启动相关

tail /var/log/yum.log                       #yum的日志

tail -f /var/log/mysqld.log                 #MySQL日志

tail /var/log/xferlog                          #和访问FTP服务器相关

/var/log/boot.log                           #系统启动过程日志记录存放

[root@linux-server ~]#w                       #当前登录的用户 /var/log/wtmp

[root@linux-server ~]#last                   #最近登录的用户 /var/log/btmp
第一列,用户名;
第二列,终端位置,/pts/0 (伪终端)意味着从诸如ssh或者telnet的远程链接的用户,tty(teletypewriter)意味着直接连接到计算机或者本地链接的用户;
第三列,登录的ip或者内核。
第四列,开始时间;
第五列,结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机);

[root@linux-server ~]#lastlog               #所有用户的登录情况 /var/log/lastlog

 

日志优先级

 

日志级别分为:7种日志级别代号0-7

0 debug             #有调试信息的,日志信息最多

1 info              #一般信息的日志,最常用

2 notice            #最具有重要性的普通条件的信息

3 warning           #警告级别

4 err               #错误级别,阻止某个功能或者模块不能正常工作的信息

5 crit              #严重级别,阻止整个系统或者整个软件不能工作的信息

6 alert             #需要立刻修改的信息

7 emerg             #内核崩溃等严重信息

none                #什么都不记录

 

logrotate日志轮转

 什么是日志轮转? 自动切日志
注:可以针对任何日志文件(rsyslog 日志、Nginx访问或错误日志...)

logrotate (轮转,日志切割) 
1. 如果没有日志轮转,日志文件会越来越大
2. 将丢弃系统中最旧的日志文件,以节省空间 
3. logrotate本身不是系统守护进程,它是通过计划任务crond每天执行

logrotate 配置文件:
主配置文件:/etc/logrotate.conf (决定每个日志文件如何轮转)

 

配置日志轮转
[root@linux-server ~]# vim /etc/logrotate.conf    
weekly                 #轮转的周期,一周轮转,单位有年,月,日 
rotate 4            #保留4份 
create                #轮转后创建新文件 
dateext             #使用日期作为后缀 
#compress            #日志轮替时,旧的日志进行压缩 
include /etc/logrotate.d               #包含该目录下的配置文件,会引用该目录下面配置的文件

/var/log/wtmp {                          #对该日志文件设置轮转的方法    
 monthly                            #一月轮转一次  
 minsize 1M                            #最小达到1M才轮转,否则就算时间到了也不轮转
 create 0664 root utmp                #轮转后创建新文件,并设置权限   
 rotate 2                            #保留2份 
}

/var/log/btmp {    
 missingok                              #丢失不提示    
 monthly                            
 create 0600 root utmp                
 rotate 1                            

 作业练习:

1 2月14日的2点整  关闭ssh服务

2 3-5点 整点执行脚本 /tmp/1.sh

3 每个星期六下午3点 重启服务器

4 每20分钟重启一次

5 6月1日18点 创建文件/tmp/1.txt

6 每天07-23点,每隔半小时执行apache重启(yum安装的)

7. 计划每星期五早11点29分服务器定时关机,如何实现?

8 过滤出来登录本机成功的用户

9 过滤出来登录本机失败的用户

10 安装httpd nginx 先启动httpd 再启动nginx 观察日志

11 动态显示日志用什么命令??

12 说说你所了解的日志文件,都有什么作用?

13  轮转yum.log文件 要求保留三天日志,按天轮转。

14 为什么要轮转日志?轮转日志有什么作用??

15 你如果遇到应用服务起不来,你每次都怎么做?

16 再聊聊top 深入的说一说

17 计划任务在11月份,每天早晨6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh  怎么实现?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扮演小鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值