首页 > 其他分享 >计划任务与日志

计划任务与日志

时间:2023-12-09 09:33:20浏览次数:31  
标签:log cron etc 任务 计划 var 日志 root



[root@localhost ~]# systemctl enable crond
[root@localhost ~]# ps aux|grep crond
root       6242  0.3  0.0 126380  1656 ?        Ss   16:27   0:00 /usr/sbin/crond -n
  • crond进程每分钟会处理一次计划任务

  • 存储位置

[root@localhost ~]# ls /var/spool/cron
  • 管理命令
[root@localhost ~]# crontab -l      # 列出当前用户所有计划任务
[root@localhost ~]# crontab -r      # 删除当前用户计划任务
[root@localhost ~]# crontab -e      # 编辑当前用户计划任务
管理员可以使用 -u username,去管理其他用户的计划任务
[root@localhost ~]# vi /etc/cron.deny   # 这个文件中加入的用户名无法使用cron
  • cron语法格式
分 时 日 月 星期 命令
* 表示任何数字都符合
0 2 * * * /run.sh   # 每天的2点
0 2 14 * * /run.sh  # 每月14号2点
0 2 14 2 * /run.sh  # 每年2月14号2点
0 2 * * 5 /run.sh   # 每个星期5的2点
0 2 * 6 5 /run.sh   # 每年6月份的星期5的2点
0 2 2 * 5 /run.sh   # 每月2号或者星期5的2点   星期和日同时存在,那么就是或的关系
0 2 2 6 5 /run.sh   # 每年6月2号或者星期5的2点

* /5 * * * * /run.sh    # 每隔5分钟执行一次
0 2 1,4,6 * * /run.sh   # 每月1号,4号,6号的2点
0 2 5-9 * * /run.sh     # 每月5-9号的2点

* * * * * /run.sh       # 每分钟
0 * * * * /run.sh       # 每整点
* * 2 * * /run.sh       # 每月2号的每分钟

循环调度执行cron系统级

  • 临时文件的清理/tmp /var/tmp
  • 系统信息的采集 sar
  • 日志的轮转(切割) lgrotate
  • 通常不是由用户定义
  • 文件的位置
[root@localhost ~]# vim /etc/crontab    # 默认没有定义任何计划任务
[root@localhost ~]# ls /etc/cron.d      # 定义的计划任务每个小时会执行
0hourly  sysstat
[root@localhost ~]# cat /etc/cron.d/0hourly 
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly      # 每小时01分以root身份执行/etc/cron.hourly/目录下的所有脚本
  • crond仅仅会执行每小时定义的脚本 /etc/cron.hourly
[root@localhost ~]# ls /etc/cron.hourly/
[root@localhost ~]# cat /etc/cron.hourly/0anacron
/usr/sbin/anacron -s        # anacron是用来检查是否有错过的计划任务需要被执行
[root@localhost ~]# vi /etc/anacrontab
1 5 cron.daily nice run-parts /etc/cron.daily
#每天开机 5 分钟后就检查 /etc/cron.daily 目录内的文件是否被执行,如果今天没有被执行,那就执行
7 25 cron.weekly nice run-parts /etc/cron.weekly
#每隔 7 天开机后 25 分钟检查 /etc/cron.weekly 目录内的文件是否被执行,如果一周内没有被执行,就会执行
©monthly 45 cron.monthly nice run-parts /etc/cron.monthly
#每隔一个月开机后 45 分钟检查 /etc/cron.monthly 目录内的文件是否被执行,如果一个月内没有被执行,那就执行 

日志管理基础

处理日志的进程

rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron

httpd/nginx/mysql等等应用可以以自己的方式记录日志

[root@localhost ~]# ps aux |grep rsyslogd
root       6789  0.2  0.2 216416  4068 ?        Ssl  14:17   0:00 /usr/sbin/rsyslogd -n

日志可以存放在本地

日志可以存放在远程服务器

常见的日志文件(系统、进程、应用程序)

日志文件作用描述
tail /var/log/messages 系统主日志文件
tail -20 /var/log/messages  
tail -f /var/log/messages 动态查看日志文件的尾部
tailf /var/log/secure 认证、安全
tail /var/log/maillog 和邮件postfix相关
tail /var/log/cron crond、at进程产生的日志
tail /var/log/dmesg 和系统启动相关
tail /var/log/audit/audit.log 系统审计日志
tail /var/log/yum.log yum
tail /var/log/mysqld.log MySQL
tail /var/log/xferlog 访问FTP服务器相关
w 当前登录的用户 /var/log/wtmp
last 最近登录的用户 /var/log/btmp
lastlog 所有用户的登录情况 /var/log/lastlog

案例1:统计登录失败top5

[root@localhost ~]# grep 'Fail' /var/log/secure |awk '{print $11}' |sort |uniq -c |sort -k1 -n -r |head -5
    779 hadoop
    501 test
    261 183.240.132.21
    224 user
     21 195.54.160.183

案例2:统计登录成功

[root@localhost ~]# grep 'Accepted' /var/log/secure |awk '{print $(NF-3)}' |sort |uniq -c
      4 117.90.214.165
      2 122.194.35.187

案例3:查看网卡是否已被驱动

[root@localhost ~]# grep -i eth /var/log/dmesg
[    2.090634] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:bb:9a:bb
[    2.090642] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection

rsyslogd子系统

[root@localhost ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog     # 日志轮转(切割)相关
/etc/rsyslog.conf           # rsyslogd的主配置文件
/etc/sysconfig/rsyslog      # rsyslogd相关文件
[root@localhost ~]# vim /etc/rsyslog.conf
# 告诉rsyslogd进程 哪个设备(facility),关于哪个级别的信息,以及如何处理
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
authpriv.*                                              *                   # 所有终端
authpriv.*                                              @192.168.1.123      # UDP
authpriv.*                                              @@192.168.1.123     # TCP

设备facility相关内容,查看man手册https://man7.org/linux/man-pages/man3/syslog.3.html

设备类型(表示日志类型)解释
LOG_AUTHPRIV 安全认证
LOG_CRON cron 和 at
LOG_DAEMON 后台进程
LOG_FTP ftp进程
LOG_KERN 内核信息
LOG_LOCAL0 through LOG_LOCAL7 用户自定义设备
LOG_LPR 打印机子系统
LOG_MAIL 邮件系统
LOG_NEWS 新闻子系统
LOG_SYSLOG syslogd自身产生的日志
级别(日志重要级别)解释
LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT 报警,需要立即处理,如磁盘空间使用95%
LOG_CRIT 致命行为
LOG_ERR 错误行为
LOG_WARNING 警告信息
LOG_NOTICE 普通
LOG_INFO 标准信息
LOG_DEBUG 调试信息,排错才开,一般不建议使用
  • 案例1
  • 将authpriv设备日志记录到/var/log/auth.log
  • 案例2
  • 改变应用程序sshd的日志设备为local5,并定义local5设备日志记录到/var/log/local5.local
  • 案例3
  • 使用logger程序写日志到指定的设备及级别
logger "run....."
logger -p emerg "run......"
logger -p authpriv.info "run......"

logrotate日志轮转

注:针对任何日志文件(rsyslog日志、Nginx访问或错误日志)

logrotate(轮转,日志切割)

  • 如果没有日志轮转,日志文件会越来越大
  • 将丢弃系统中最旧的日志文件,以节省空间
  • logrotate本身不是系统守护进程,它是通过计划任务crond每天执行
[root@localhost ~]# cat /etc/cron.daily/logrotate 
#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
# 日志轮转状态/var/lib/logrotate/logrotate.status
# 日志轮转规则按照/etc/logrotate.conf中来
[root@localhost ~]# ls /etc/logrotate.conf /etc/logrotate.d/
/etc/logrotate.conf

/etc/logrotate.d/:
bootlog  chrony  syslog  wpa_supplicant  yum
  • 主配置文件
[root@localhost ~]# vim /etc/logrotate.conf 
weekly      # 一周轮转一次
rotate 4    # 保留4份日志
create      # 主动创建新的日志文件
dateext     # 使用日期来作为文件名的后缀
#compress   # 每次轮转需不需要进行压缩
include /etc/logrotate.d    # 导入其他应用的日志轮转规则
/var/log/wtmp {     # 对该日志文件设置轮转的方法
    monthly         # 一个月轮转一次
    create 0664 root utmp   # 轮转后创建新文件,并设置权限
        minsize 1M      # 最小达到1M才会轮转
    rotate 1
}

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

标签:log,cron,etc,任务,计划,var,日志,root
From: https://www.cnblogs.com/wlgzs/p/17889484.html

相关文章

  • 读程序员的README笔记05_日志、监控与配置
    1. 行为准则2. 日志分级2.1. 日志框架设有日志级别,它可以让运维人员根据重要性过滤消息2.2. 编程语言有精良的日志类库,让运维人员对要记录的内容和时间有更多的控制2.3. TRACE2.3.1. 一个极其精细的日志级别2.3.2. 对特定的包或类开放2.3.3. 在开发阶段之外很少......
  • scrum|敏捷开发之任务看板
    上篇文章中,我讲了敏捷第一步-每日站立会,讲了我们平时是怎么开站立会的,其实15-30分钟就够了,绝对不是时间长得让你想拄拐那种。本文我们开始讲敏捷开发中的看板。没有看板之前,我们真的是在白板上画泳道,写卡片,挪动卡片,在白板前开站立会。现在支持任务看板的产品也越来越多了,大家开站......
  • Docker部署ELK日志系统
    Docker部署ELK日志系统皓林 Java老王 2023-12-0515:27 发表于广东 一、Docker安装Elasticsearch官网镜像地址:https://hub.docker.com/_/elasticsearch1.1 下载镜像 查看镜像sudo dockerpullelasticsearch:7.6.1sudo dockerimages1.2 运行 elasticsear......
  • linux检索日志文件技巧
    linux检索日志文件技巧日志文件格式[2023/10/25:16:17:14]10.10.140.96storage.live.com:443GET/400630"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/118.0.0.0Safari/537.36"Position位置名称示例1时间戳......
  • 阿里云日志系统介绍及应用
    前言传统IDC的建设,需要投入大量的人力、物力和财力,而公有云几乎拥有一站式的建设、部署方案和完整的云生态,并且可以根据业务随时随地的弹性扩展,特别是一些中小型的公司,越来越多的选择将业务落地到公有云。而对于所有公司、所有业务来讲,日志是一个无法绕开的话题,如何建设一个稳健和......
  • linux Docker容器日志查看与清理2
    问题:docker容器日志随着时间变得越来越大。本来分的200G磁盘空间迅速不太够用。 日志查找:docker安装目录一般在/var/lib/docker下:执行以下命令,可查看各文件夹空间占用情况:du-h-x--max-depth=1我们可以看到containers目录占用了181G的空间:进入到containers容器目录,......
  • 已解决:若依更换日志EasyExcel框架导出报错 java.lang.NoClassDefFoundError: org/apac
    先描述一下当时的场景回忆看到出错了,我就想可能是哪个路径写错了,或者导依赖名字写对,或者说是多了少了标点符号什么的。然而,还是想简单了,检查重启后发现问题并没有解决。于是就把所有我改过的地方检查了一遍,检查和这个依赖相关的代码。发现还是没啥关系后来去找百度、百度给的......
  • Vue学习计划-Vue2--Vue核心(五)条件、列表渲染、表单数据
    1.条件渲染v-ifv-if="表达式"v-else-if="表达式"v-else="表达式"适用于:切换频率较低的场景特点:不显示dom元素,直接被删除注意:v-if和v-else-if、v-else一起使用,但要求结构不能被打断v-if和template一起使用,v-show不可以v-showv-show="表达式"适用于:切换频......
  • 制定验证计划和分层的验证平台
    内容module/block有100个feature,验证需要有1000个test,需要有计划,按照节点进行验证策略验证RTLcode和designspec一致性资源:VCSlicense/磁盘空间验证内容:功能验证验证结束-testpass/coverage验证进度验证计划内容验证的功能点和testcase是验证计划中最重......
  • 12.7课堂任务uml学习心得
    UML是一种用于描述、设计和建模软件系统的标准化语言。学习UML有助于更好地理解软件系统的结构、行为和组成,提高沟通与协作效率。以下是我关于UML学习的心得体会:1.掌握基本概念:学习UML前,首先要了解类、对象、接口、关系等基本概念。这些概念在UML中具有重要的意义,掌握它们有助......