• 系统管理-计划任务-系统日志


    at计划任务简介

    使用at命令,可以指定某一任务(作业)在将来的特定时间运行。该作业可能是一次备份,系统检查或者特定时间发送通知。该任务会在与shell会话断开连接的情况下运行。

    在特定时间内执行任务后,在该任务会在at的任务队列中关闭。如果任务重没有做输出重定向,那么输出的任务会以邮件的方式给用户结果。

    输入at命令后,按回车键并继续键入作业中不包含的其他命令。任务可以有多个命令组成,在完成键入要运行的命令时,在单独出现的一行中按Ctrl+D完成任务

    [root@localhost ~]# at 09:00
    at> ls
    at> date
    job 1 at Tue Aug 28 09:00:00 2018
    [root@localhost ~]# at -l
    您在 /var/spool/mail/root 中有新邮件
    [root@localhost ~]# atrm 1
    Cannot find jobid 1
    [root@localhost ~]# 
    邮件内容:
    anaconda-ks.cfg
    Desktop
    initial-setup-ks.cfg
    Python-3.5.3
    Python-3.5.3.tgz
    test
    2018年 08月 28日 星期二 09:00:01 CST

    cron 计划任务简介

    相比较at的任务执行一次,crontab可以设置一个时间点,每次到了这个时间都可以自动执行任务。和at一样,如果任务重没有做输出重定向,那么任务的输出会以邮件的方式发送给用户。

    crontab [-l|-r|-e]

    crontab -e命令将打开空的crontab文件(man 5 crontab)

    任务中包含6个字段

    分: 0-59

    时: 0-23

    日: 1-31

    月: 1-12

    周: 0-7

    命令: xxx

    05 * * * * 每小时整点过5分钟
    05 02 * * * 每天2:05(早上)
    30 08 01 * * 每个月第一天的8:30(早上)
    00 07 25 12 * 12月25日7:00(早上)
    30 16 * * 5 每个星期五下午16:30
    */5 * * * * 每五分钟(051015*/10 9-10 1,15 * * 每个月第一天和第十五天9:00到10:00之间每隔10分钟
    0 0 1 1 0 1月1日的每个周末

    系统级计划任务

    [root@localhost mail]# ls /etc/cron*
    /etc/cron.deny  /etc/crontab
    
    /etc/cron.d:
    0hourly  raid-check  sysstat
    
    /etc/cron.daily:
    logrotate  man-db.cron  mlocate
    
    /etc/cron.hourly:
    0anacron
    
    /etc/cron.monthly:
    
    /etc/cron.weekly:
    [root@localhost mail]# 

    Linux日志机制

    systemd-journal收集日志消息

    rsylog排序并保存消息到/var/log中的日志文件

    rsyslog.conf的左边条目是“selector”,右边是“action”

    /var/log/messages 大多数系统消息都记录在这里。除了相关验证的消息,邮件处理,定期运行的作业,纯调试相关的

    /var/log/secure 该日志记录安全和相关验证的消息和错误

    /var/log syslog 保存所有日志文件的目录

    /var/log/maillog保存相关邮件服务器的消息

    /var/log/cron 保存相关定期执行任务的日志

    查阅日志文件

    tail -f命令

    logger

    查阅systemed日志条目

    systemd日志提供了内置搜索和过滤的功能来找到有关潜在问题或系统状态的信息

    journalctl命令

    journalctl -n 命令限制一定数量行的输出

    journalctl -p 命令限制一定优先级消息的输出

    journalctl -f 类似tail -f的工作

    journalctl -b 命令限制输出特定的启动

    journalctl --since 和 journal --until限制输出的时间范围

    输出服务器上一直运行的pid为1,源于systemd的进程

    journalctl_PID = 1

    显示服务器上uid为81的用户启动的系统服务的systemd日志消息

    journalctl_UID = 81

    在服务器输出priority为warning的日志消息

    journalctl -p warning

    创建journalctl查询,显示服务器之前10分钟记录的所有日志事件,假设当前时间 9:15:00

    journalctl --since 9:05:00 --unitl 9:15:00

    仅显示服务器上sshd服务的事件,从早上9:00:00开始直到记录sshd.service

    journalctl --since 9600600 _SYSTEMD_UNIT="sshd.service"

    保存systemd日志

    配置systemd-journald存储日志到磁盘上而不是内存中

    日志在重启之后持久保存,因此用户可以使用journalctl的高级功能,对最后一次系统启动之前的消息

    systemd日志写入到磁盘

    配置systemd日志在重启之后可以持久访问

    配置目录/var/log/journal

    [root@localhost mail]# mkdir /var/log/journal
    [root@localhost mail]# chown root:systemd-journal /var/log/journal/
    [root@localhost mail]# chmod 2755 /var/log/journal/
    [root@localhost mail]# 

    发送USR1信号给systemd-journald或者重新启动服务

    killall -USR1 systemd-journald

    验证保存到/var/log/journal下的日志文件

    [root@localhost mail]# ls /var/log/journal/17864a38d41d4b6e860d389f6c75531b/
    system.journal
    [root@localhost mail]# 

    日志服务:

    Server:

    man 5 rsyslog.conf

    [root@localhost mail]# cat /etc/rsyslog.conf 
    # rsyslog configuration file
    
    # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
    # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
    
    #### MODULES ####
    [root@localhost mail]# tail -f /var/log/messages^C
    [root@localhost mail]# service rsyslog restart
    Redirecting to /bin/systemctl restart rsyslog.service
    [root@localhost mail]# cat /etc/rsyslog.conf 
    # rsyslog configuration file
    
    # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
    # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
    
    #### MODULES ####
    [root@localhost mail]# service rsyslog restart
    Redirecting to /bin/systemctl restart rsyslog.service
    [root@localhost mail]# logger -i -t "test" hello,this is test message
    [root@localhost mail]# 

    日志轮转logrotate

    将“轮转”日志,以避免日志占满包含/var/log的文件系统,轮转日志文件时,使用扩展名对其进行重命名,扩展名中指示轮转日期:

    [root@localhost mail]# ls /var/log/
    anaconda           cups                ntpstats           tallylog
    audit              dmesg               pluto              tuned
    boot.log           firewalld           ppp                vmware-vgauthsvc.log.0
    boot.log-20180821  gdm                 qemu-ga            vmware-vmsvc.log
    boot.log-20180822  glusterfs           rhsm               wpa_supplicant.log
    boot.log-20180823  grubby_prune_debug  sa                 wtmp
    boot.log-20180824  journal             samba              Xorg.0.log
    boot.log-20180827  lastlog             secure             Xorg.1.log
    boot.log-20180828  libvirt             secure-20180828    Xorg.9.log
    btmp               maillog             speech-dispatcher  yum.log
    chrony             maillog-20180828    spooler
    cron               messages            spooler-20180828
    cron-20180828      messages-20180828   sssd
    [root@localhost mail]# 

    cron作业每日运行一次logrotate程序,以查看是否有任何日志需要轮转。

    大多数日志文件每周轮转一次,但是logrotate轮转文件的速度有时候较快,有时候较慢,或者在文件达到特定大小时进行轮转

    [root@localhost mail]# cat /etc/logrotate.conf 
    # see "man logrotate" for details
    # rotate log files weekly
    weekly
    
    # keep 4 weeks worth of backlogs
    rotate 4
    
    # create new (empty) log files after rotating old ones
    create
    
    # use date as a suffix of the rotated file
    dateext
    
    # uncomment this if you want your log files compressed
    #compress
    
    # RPM packages drop log rotation information into this directory
    include /etc/logrotate.d
    
    # no packages own wtmp and btmp -- we'll rotate them here
    /var/log/wtmp {
        monthly
        create 0664 root utmp
        minsize 1M
        rotate 1
    }
    
    /var/log/btmp {
        missingok
        monthly
        create 0600 root utmp
        rotate 1
    }
    
    # system-specific logs may be also be configured here.
    [root@localhost mail]# 
  • 相关阅读:
    buildroot编译文件系统,出现mount: you must be root. can't open /dev/console: Permission denied这种错误。
    Ubuntu 18.04实现实时显示网速
    git 第一次push 出现fatal: 无法读取远程仓库。
    Sql2012 AlwaysOn
    SCVMM 安装
    POJ 3537 Crosses and Crosses
    HDOJ 1524 A Chess Game
    HDOJ 1907 John
    HDOJ 1848 Fibonacci again and again
    HDOJ 1536 S-Nim
  • 原文地址:https://www.cnblogs.com/52-qq/p/9546203.html
Copyright © 2020-2023  润新知