Linux运维 第二阶段 (十三)计划任务及日志管理

简介:

 

一、任务计划(at,batch,cron)

在未来的某个时间点执行一次某任务(at,batch

周期性地执行某个任务(cron

1#at  TIME(指定时间,注意是时间是未来的,命令的执行结果以邮件形式发送给安排任务的用户)

at>COMMAND

at>ctrl+d

 

TIME

HH:MM(绝对时间,时:分)

MM/DD/YYDD.MM.YY(月//年,日..年)

now+NUMBERminutes(相对时间,minutes,hours,days,weeks

noon,midnight,teatime(模糊时间)

 

#batch(同at,不指定时间,仅在系统空闲时间自动执行)

 

例:#at  now+3minutes

at>ls /var

at>cat /etc/fstab

at>ctrl+d

#at -l(显示作业,相当于命令atq

#at -d  AT_JOB_ID(删除作业,相当于命令atrm

 

2cron自身是一个不间断运行的服务,服务名crond

anacroncron的补充,能够实现因cron由于某种原因在过去的时间该执行而未执行的任务再恢复正常执行一次,服务名anacron

/etc/crontab(系统cron任务,格式: * * ** * [USERNAME] COMMAND

/var/spool/cron/USERNAME(用户cron任务,格式: * * * * *COMMAND);

注意:cron有自己的环境变量PATHPATH=/sbin:/bin:/usr/sbin:/usr/bin),每次执行命令都在自己的PATH下去找,写命令时最好写绝对路径,若执行的是脚本也可在脚本中定义(export  PATH=)否则脚本不能正常执行,若执行的是系统cron任务,可编辑文件定义PATH/etc/crontab);

 

格式:

* * * * *分别表示,分    

分(0-59

时(0-23

日(1-31

月(1-12

周(0-707均表示周日)

注意:月和周不要同时使用

时间通配表示:

*(对应的所有有效取值)

,(离散时间点取值)

-(连续时间)

/(对应取值范围每多久一次)

举例:

3 * * * * (每小时的第3分钟)

*/3 * * * * (每3分钟)

3 * * * 7 (每周日且每小时的第3分钟)

13 12 * * * (每天的12:13

13 12 * * 5 (每周512:13

13 12 6 * * (每月6号的12:13

10,40 * * * * (每小时的第10分钟和第40分钟)

10,40 02 * * 2,5 (每周25且凌晨02:10,02,40

10 02 * * 1-5 (周一至周五的02:10

01 */2 * * * (每两小时执行,注意一定要指定具体时间,否则每秒都会执行)

10 04 */2 * * (每2天执行一次,注意一定要指定具体时间,否则每秒都会执行)

 

系统cron任务:

/etc/cron.{hourly,daily,weekly,monthly}/SCRIPT#run-parts依次运行目录下的每个任务,要想靠前运行,脚本名前加0

 

用户cron任务:

/var/spool/cron/USERNAME

$crontab -l|-e|-r-l列出当前用户的所有cron任务,-e编辑任务(完成后可自动检查其语法),-r移除所有任务(若删除某条任务,进入编辑,删除某行即可))

#crontab -u  USERNAME(管理其它用户的cron任务)

 

anacron任务:/etc/anacrontab有四段

1  65  cron.daily      run-parts /etc/cron.daily

7  70  cron.weekly     run-parts /etc/cron.weekly

30 75  cron.monthly        run-parts /etc/cron.monthly

其中第1段表示过去有多少天的任务未执行;第2段表示开机后的多少分钟执行;注意最小操作单位是天,并且确保系统中crondanacron服务正常运行。

 

二、日志管理:

syslogredhat5

syslog-ngnext generation,redhat6

#service syslog  {start|stop|status|restart|condrestart}

 

syslog服务包括:

syslogd,非内核产生的日志信息,如/var/log/messages有系统标准错误日志信息、非内核产生的引导信息、各子系统产生的信息,/var/log/maillog邮件系统产生的日志、/var/log/secure有谁尝试登录过此主机相关日志;

klogd,内核产生的日志信息,如/var/log/dmesg,此信息可用命令#dmesg显示;

 

日志切割:

命令:#logrotate

日志需要滚动,如messages  messages.1  messages.2

/etc/logrotate.conf

/etc/logrotate.d/*

/etc/cron.daily/logrotate

#chkconfig --list  syslog

 

定义格式:

/etc/syslog.conf

facility.priority  actionfacility表示各子系统;priority表示日志级别loglevelaction表示日志记录位置)

 

facility有:

auth(认证相关)

authpriv(权限、授权相关)

cron(任务计划相关)

daemon(守护进程相关)

kern(内核相关)

lpr(打印相关)

mail(邮件相关)

mark(标记相关)

news(新闻相关)

security(安全相关,与authpriv类似)

syslogsyslog自己的)

user(用户相关)

uucpunix to unix cp相关)

local10-local17(用户自定义使用)

*(所有facility

 

prioritylog level)有:

debug

info

notice

warning/warn

error/err

crit

alert

emerg/panic

*

none

 

action有:

系统上的绝对路径,如/var/log/xxx

管道|,交至其它命令处理

终端,如/dev/console

@HOST@10.0.0.1(定义在远程主机上,要事先修改文件/etc/sysconfig/syslog,SYSLOGD_OPTIONS="-r -m 0"

用户,如root

*,登录到系统上的所有用户,一般这样定义emerg级别的日志

 

定义格式举例:

mail.info /var/log/mail.log

auth.=info @10.0.0.1

user.!=error  不包括error级别

user.!error user.error相反

*.info 所有日志信息的info级别

mail.* mail相关的所有级别信息

*.* 

cron.info;mail.info  多个类别别用分号隔开

cron,mail.info  多个类别的另一写法,同上例

mail.*;mail.!=info  mail相关的所有级别但不包括info级别

 

 

 

以上是学习《马哥网络视频》做的笔记。



一、1、在centos6.x中日志服务由rsyslogd取代了syslogd,新特点:基于TCP传输日志信息;更安全的网络传输方式;有日志消息的及时分析框架;后台数据库;配置文件中可写简单的逻辑判断;兼容syslogd

   2、系统中常见的日志文件:/var/log/cron/var/log/btmp等。

二、日志服务:

    1、格式:事件产生的时间 发生事件的服务器 产生事件的服务器名或程序名 事件的具体信息

    2、/etc/rsyslog.conf配置文件格式:服务名称[连接符号]日志等级 日志记录位置

         连接符号:.   只要比后面等级高的(包含该等级)的日志都记录下来,例:cron.info

         .=      代表只记录所需等级的日志,其它等级的都不记录,例:*.=emerg

         .!      代表不等于,除了该等级的日志外,其它等级的日志都记录

         日志等级:debug info notice warning err crit alert emerg 依次按等级由低到高

         日志记录位置:(当前日志输出到哪个日志文件中保存)

         》日志文件的绝对路径,最常见的保存方法,例:/var/log/secure

         》系统设备文件,/dev/lp0代表第一台打印机。

         》转发给远程主机:@192.168.0.210:514(UDP协议发送至514端口,514是日志服务的默认端口);@@192.168.0.210:514(TCP协议发送)

         》用户名,如rootroot要在线才会把日志发送出去;"mail.*  *"会把mail服务产生的所有级别的日志发送给所有在线用户,若发送给多个在线用户,用户名之间用分号隔开;“local3.*   ~”若接受日志的对象是~,代表这个日志不会记录直接丢弃。

         例:定义自己日志

         #vi  /etc/rsyslog.conf

         写入 *.crit             /var/log/alert.log

         #service  rsyslog restart

         #ll  /var/log/alert.log

         日志服务器的设备

         #vi  /etc/rsysylog.conf            (服务端设置

         $Modload  imtcp

         $InputTcpserver Run 514        (取消这两行注释

         #servicersyslog  restart

         #netstat  -tuln | grep 514

         #vi  /etc/rsyslog.conf              (客户端设置

         *.*             @@192.168.210:514

         查看日志服务器是否设置好:

         #useradd  aa         (在客户端)

         #passwd  aa

         #vi  /var/log/secure       (查看发生事件的主机名

三、日志轮替:把旧的日志文件移动并改名,同时建立新的空白日志文件,当旧日志文件超出保存的范围之后,就会进行删除,改名依靠/etc/logrotate.confdateext参数。

         把自己的日志加入日志轮替:

         方一:直接在/etc/logrotate.conf文件中写入轮替策略;

         方二:在/etc/logrotate.d/目录中建立轮替文件。

         例:按方二:#chattr  +a /var/log/alert.log

         #vi  /var/log/alert.log

         /var/log/alert.log{

         weekly

         rotate6

         sharedscripts

         prerotate

                   /usr/bin/chattr  -a /var/log/alert.log

         endscript

         sharescripts

         postrotate

                   /usr/bin/chattr  +a /var/log/alert.log

         endscript

         }

        

         #vi  /etc/cron.daily/logrotate

         /usr/sbin/logrotate  /etc/logrotate.conf  >/dev/null 2>&1         logrotate命令会依据配置文件判断是否已符合日志轮替的条件,日志轮替由cron发起

         #logrotate  选项  配置文件名

         -v      verbose显示过程

         -f       force强制

四、日志分析工具:logwatch

         #cp  /usr/share/logwatch/default.conf/logwatch.conf  /etc/logwatch/conf/logwatch.conf     (注:默认配置/etc/logwatch/conf/logwatch.conf是空的,要手工生成)

         #logwatch

         #mail




本文转自 chaijowin 51CTO博客,原文链接:http://blog.51cto.com/jowin/1651995,如需转载请自行联系原作者

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
6月前
|
监控 Linux 应用服务中间件
linux查看日志文件tail -f用法
在 Linux 中,查看和监控日志文件是系统管理员和开发者常用的操作之一。tail 命令就是用来查看文件内容的,它默认显示文件的最后部分。tail -f 是 tail 命令的一个非常有用的选项,用于实时查看和跟踪日志文件的更新,尤其是在监控运行中的服务时非常有用。
892 0
|
7月前
|
运维 监控 Linux
WGCLOUD运维平台的分布式计划任务功能介绍
WGCLOUD是一款免费开源的运维监控平台,支持主机与服务器性能监控,具备实时告警和自愈功能。本文重点介绍其计划任务功能模块,可统一管理Linux和Windows主机的定时任务。相比手动配置crontab或Windows任务计划,WGCLOUD提供直观界面,通过添加cron表达式、执行指令或脚本并选择主机,即可轻松完成任务设置,大幅提升多主机任务管理效率。
|
9月前
|
运维 安全 Linux
试试Linux设备命令行运维工具——Wowkey
WowKey 是一款专为 Linux 设备设计的命令行运维工具,提供自动化、批量化、标准化、简单化的运维解决方案。它简单易用、高效集成且无依赖,仅需 WIS 指令剧本文件、APT 账号密码文件和 wowkey 命令即可操作。通过分离鉴权内容与执行内容,WowKey 让运维人员专注于决策,摆脱繁琐的交互与执行细节工作,大幅提升运维效率与质量。无论是健康检查、数据采集还是配置更新,WowKey 都能助您轻松应对大规模设备运维挑战。立即从官方资源了解更多信息:https://atsight.top/training。
|
9月前
|
数据采集 运维 安全
Linux设备命令行运维工具WowKey问答
WowKey 是一款用于 Linux 设备运维的工具,可通过命令行手动或自动执行指令剧本,实现批量、标准化操作,如健康检查、数据采集、配置更新等。它简单易用,只需编写 WIS 指令剧本和 APT 帐号密码表文件,学习成本极低。支持不同流派的 Linux 系统,如 RHEL、Debian、SUSE 等,只要使用通用 Shell 命令即可通吃Linux设备。
|
10月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
407 6
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
321 7
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
2058 3
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
449 1
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。