当前位置: 代码迷 >> 综合 >> 第16章 Linux计划任务与日志管理
  详细解决方案

第16章 Linux计划任务与日志管理

热度:5   发布时间:2024-02-05 00:01:05.0
  1. 创建一次性计划任务当前时间1分后执行 echo aaa,查看计划任务
    1. at 16:10 echo aaa
    2. atq
  2. 查看和删除将要执行的计划任务
    1. at -l
    2. at -c 任务编号
    3. ls /var/spool/at
    4. atrm 任务编号
  3. at计划任务时间写法
    1. 再某天的下午8点 at 8:00pm 2020-10-1
    2. 再10分钟过后执行 at now +10min
    3. 明天下午5点执行 at 17:00 tomorrow
    4. 3天以后的早上6点执行 at 6:00 am +3 days
  4. 指定bin用户计划任务,每分钟追加aaa到  /opt/bin.txt
    1. crontab -u bin -e
    2. */1 * * * * echo aaa >> /opt/bin.txt
  5. 查看bin用户的计划任务,删除bin用的计划任务
    1. crontab -u bin -l
    2. crontab -u bin -r
  6. 查看所有用户的计划任务
    1. ls /var/spool/cron
  7. 每天22:00 备份/etc/目录到/backup 下面,将备份命令写入一个脚本中,每天备份文件名要求格式2017-08-19_etc.tar.gz,在执行计划时,不要输出任务信息,存放备份内容给到目录要求只保留3天的数据
    1. vim /root/backup.sh
    2. #!/bin/bash
    3. tar -czvf /backup/`date +%F`_etc.tar.gz /backup
    4. find /backup -name "*.etc.tar.gz" -mtime +3 -exec rm -f {} \;
    5. crontab -u root -e
    6. 0 22 * * */root/backup.sh & /dev/null
  8. 存放于/var/log目录下的日志文件
    1. 系统日志消息文件,身份验证,电子邮件处理定期任务 /var/log/message
    2. 安全和身份验证相关的消息和登录失败的日志文件 /var/log/secure
    3. 与邮件服务器相关的消息日志 /var/log/maillog
    4. 与定期执行任务相关的日志 /var/log/cron
    5. 与系统启动相关的消息日志 /var/log/boot.log
    6. 与系统启动相关的硬件消息日志 /var/log/dmesg
  9. 使用ssh登录主机,输入错误3次密码,通过日志找出该登录失败的IP
    1. grep Failed /var/log/secure | awk '{print $11}' | uniq -c
  10. 查看目前为止成功登录系统的记录
    1. last  #可以查看wtmp日志记录的登陆成功的消息
  11. 查看错误登录系统的日志,查看恶意IP试图登录次数,并使用防火墙拒绝该IP地址,清空该日志
    1. lastb
    2. lastb | awk '{Print $3}' | uniq -c
    3. iptables -A INPUT -i ens33 -s 192.168.0.63 -j DROP
    4. > /var/log/btmp
  12. 日志的分类和级别
    1. deamon后台进程 kern内核 lpr打印系统 authpriv安全认证 cron定时相关 mail邮件相关 syslog日志服务本身 news新闻系统
    2. 7 debug 信息对开发人员调试应用程序
    3. 6 info 正常的操作信息,可以收集报告,测试吞吐量
    4. 5 notice 注意,正常但重要的事件
    5. 4 warning 警告,提示如果不采取行动。将会发生错误,比如文件系统使用90%
    6. 3 err 错误,阻止某个模块或程序的功能不能正常使用
    7. 2 crit 关键的错误,已经影响了整个系统或软件不能正常工作的信息
    8. 1 alert 警报,需要立刻修改的信息
    9. 0 emerg 紧急,内核崩溃等严重信息
  13. 编辑centos7和centos8日志服务配置文件
    1. vim  /etc/rsyslog.conf
    2. $UDPServerRun 514    #7系统,允许514端口接收使用UDP协议转发过来的日志
    3. $InputTCPServerRun 514     #允许514端口接收使用TCP协议转发过来的日志
    4. input(type="imudp" port="514") #centos8系统
    5. input(type="imtcp" port="514")
    6. 邮件信息较多,先将数据存在内存,达到一定大小才写入硬盘,有利于减少I/O进程开销,但关机不当数据会消失
  14. 自定义ssh服务的日志类型和存储位置
    1. vim /etc/rsyslog.conf
    2. local0.*                                              /var/log/sshd.log
    3. vim /etc/ssh/sshd_config
    4. #SyslogFacility AUTHPRIV  #ppy  复制粘贴该行,防背锅
    5. SyslogFacility local0
    6. systemctl restart rsyslog
    7. systemctl restart sshd
    8. cat /var/log/sshd.log
  15. logrotate 是一个 Bash 的 SHELL 脚本,可对日志文件进行切分,并将切分后的日志放在统一目录。
  16. 使用logrotate 对ssh日志进行分割
    1. vim /etc/logrotate.d/sshd  #新建一个sshd配置文件,插入下面内容
    2. /var/log/sshd.log{
    3. missingok
    4. weekly
    5. create 0600 root root
    6. minsize 1M
    7. rotate 3
    8. }
    9. systemctl restart rsyslog
    10. 以上步骤已经完成了,下面步骤可以强制执行查看下
    11. logrotate -d /etc/logrotate.d/sshd  #预演,不执行
    12. logrotate -vf /etc/logrotate.d/sshd #-f强制执行,不管是否满足条件
    13. ll -h /var/log/sshd*
  17. 使用logrotate 对nginx日志进行分割
    1. vim /etc/logrotate.d/nginx
    2. /usr/local/nginx/logs/*.log{
    3. daily
    4. rotate 5
    5. sharedscripts
    6. postrotate
    7. if [ -f /run/nginx.pid ]; then
    8. /usr/local/nginx/sbin/nginx -s reload
    9. fi
    10. endscript
    11. }
  18. 配置远程日志服务器-实现日志集中管理
    1. 先以centos8 为服务端进行操作
    2. [root@centos8-60 ~]# vim /etc/rsyslog.conf
    3.  module(load="imtcp")          #取消注释
    4.  input(type="imtcp" port="514")  #取消注释
    5. systemctl restart rsyslog
    6. netstat -anlpt | grep 514
    7. setenforce 0
    8. systemctl stop firewalld
    9. 再以centos7为客户端进行操作
    10. [root@centos7-63 ~]# vim /etc/rsyslog.conf
    11. *.* @@192.168.0.60:514    #文件末尾追加,*.*所有类别和级别的日志,服务器使用tcp,则客户端@@表示tcp,服务器使用udp,则客户端@表示udp
    12. [root@centos7-63 ~]# systemctl restart rsyslog
    13. 服务端进行查看日志
    14. [root@centos8-60 ~]# tail -f /var/log/messages | grep centos7-63
    15. 客户端进行输入
    16. [root@centos7-63 ~]# logger "haaaaaaaa"