热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

先来详细说一说top上半部分这里显示不同模式下所占cpu时间百分比,这些不同的cpu时间表示:us,user:运行(未调整优先级的)用户进程的CPU时间sy,system:运行内核


先来详细说一说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>         #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


 循环调度执行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  怎么实现?



推荐阅读
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • linux系统关掉网卡命令_如何关闭Linux系统?
    linux系统关掉网卡命令IamnewtoLinuxandIhaveinstalledsomeLinuxdistributions.Itrytolearnbashcommands. ... [详细]
  • 一、如果使用默认的1521端口,让实例自动注册到该监听上,那么local_listener无需设置,listener.ora文件按照正常方 ... [详细]
  • 我的LINUX学习之路之二十一之web服务器简单搭建
    今天说说如何搭建HTTP服务器!目的:使用“多IP地址”方法实现多个网站。使用“主机头名”方法实现多个网站。使用“多端口”方法实现多个网站。这回用图形界 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 一环境:主库:Oracle双节点RAC19.6C(Linux)备库:Oracle双节点RAC19.6C(Linux)二详细报错࿱ ... [详细]
  • GPS 校验和 代码_Linux recovery 移除签名校验
    原创作者:王锐,多年Linux系统、龙芯平台移植与优化研发经验,LinuxContributor、Mozillian。背景某个设备配套的刷 ... [详细]
  • 如何实现Percona Mysql Galera多读写集群的部署
    本篇文章给大家主要讲的是关于如何实现PerconaMysqlGalera多读写集群的部署的内容,感兴趣的话就一起来看看这篇文章吧,相信看完如何实现PerconaMysq ... [详细]
  • mysql mmm搭建_搭建mysqlmmm高可用MySQL集群
    实验需求:配置mysql-mmm,实现mysql的高可用MySQL-MMM实现MySQL高可用http:www.linuxidc.comLinux201 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Linux磁盘的分区、格式化的观察和操作步骤
    本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • linux服务器时间同步失败解决方法
    linux服务器时间同步失败解决方法1、为什么会时间不同步:①计算机的时间是根据电脑晶振以固定频率震荡而产生的,由于晶振的不同或者老化,会 ... [详细]
  • 一、概述nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的 ... [详细]
author-avatar
拍友2502875873
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有