Linux计划任务与日志

计划任务

主要用于完成一些周期性任务及定时任务,Windows中也有该功能:

单次调度执行

yum install -y at安装at工具,systemctl start atd启动服务,使用方法为at 选项 时间 执行内容时间可以自由设置,开启的栏目中输入具体任务,执行后命令失效,编辑任务使用ctrl+d退出编辑,具体选项如下:

-f:指定包含具体指令的任务文件
-q:指定新任务的队列名称
-l:显示待执行任务的列表
-d:删除指定的待执行任务

也可以使用子命令atq查看待执行的任务和atrm通过序号删除任务,时间规定写法如下:

  now +5min            # 从现在开始5分钟后
  teatime tomorrow  # 明天的下午16:00
  noon +4 days        # 4天后的中午
  11:20 AM            # 早上11:20

设置五分钟后创建文件的命令示例如图:

循环调度执行

这种计划任务方式比较常用,可设置多次循环执行任务,可使用cron工具实现,通过systemctl start crond.service启动服务,基本语法为cron 选项,具体选项有:

-l:列出当前用户的定时任务。
-r:删除当前用户的定时任务。
-e:编辑当前用户的定时任务。
-n:检查定时任务是否可用。
-m:发送类似于电子邮件的消息,用于通知定时任务执行的结果
-u:指定用户

/etc/cron.deny文件为cron黑名单,文件内的用户无法使用cron,配置任务通过cron -e实现,格式如下:

分 时 日 月 星期>>任务指令 
任务指令可以是语句,也可以是脚本文件
*标识任意都符合
0 2 * * * date >> date.txt    # 每天的2点
0 2 14 * * date >> date.txt    # 每月14号2点
0 2 14 2 * date >> date.txt    # 每年2月14号2点
0 2 * * 5 date >> date.txt    # 每个星期5的2点
0 2 * 6 5 date >> date.txt    # 每年6月份的星期5的2点
0 2 2 * 5 date >> date.txt    # 每月2号或者星期5的2点   星期和日同时存在,那么就是或的关系
0 2 2 6 5 date >> date.txt    # 每年6月2号或者星期5的2点

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

* * * * * date >> date.txt        # 每分钟
0 * * * * date >> date.txt        # 每整点
* * 2 * * date >> date.txt        # 每月2号的每分钟

任务存放在/var/spool/cron/用户名文件中

系统任务

清理临时文件/tmp /var/tmp,日志轮转lgrotate等操作,通常不由用户定义,系统任务文件展示如下:

日志管理

系统运行产生的各种错误和提示信息都存在日志文件中,系统出错时,运维人员首先要查看的就是日志文件,常见日志的存储位置如下:

/var/log/messages		系统主日志文件
/var/log/secure			记录认证、安全的日志
/var/log/maillog		跟邮件postfix相关
/var/log/cron			crond、at进程产生的日志
/var/log/dmesg			记录系统启动时加载的硬件相关信息日志
/var/log/yum.log		yum的日志
/var/log/mysqld.log		MySQL日志
var/log/xferlog			和访问FTP服务器相关
/var/log/boot.log		系统启动过程日志记录存放
/var/log/wtmp			当前登录的用户(可以直接在命令行输入w查看)
/var/log/lastlog		所有用户的登录情况(可以直接在命令行输入lastlog查看)

日志文件可以直接使用catvi命令查看,但日志文件通常较长,可以使用grepawk过滤后再进行分析。

日志管理系统

日志管理系统rsyslogd,即处理日志的进程,处理绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron等,sql、http、nginx有其自己的方式记录日志。

日志可以存放在本地,也可以存放在远程服务器堡垒机上,使得运维人员无需登录内网主机也可查看主机日志,方便进行管理。

日志配置文件主要有以下几种:

/etc/logrotate.d/syslog        # 日志轮转(切割)相关
/etc/rsyslog.conf            # rsyslogd的主配置文件
/etc/sysconfig/rsyslog        # rsyslogd相关文件

主配置文件告诉rsyslogd进程 哪个设备(facility),关于哪个级别的信息,以及如何处理,部分代码展示如下:

不同的日志类型如下;

序号	Facility		解释
0		kern (kernel)	Linux内核产生的信息,大部分是硬件检测和内核功能的启用
1		user			用户层级产生的信息,例如后边介绍的通过logger产生的日志信息
2		mail			所有邮件收发的相关信息
3		daemon			系统服务产生的信息
4		auth			与认证、授权相关的信息,如login、ssh、su等产生的信息
5		syslog			syslogd服务产生的信息
6		lpr				打印相关的信息
7		news			新闻群组相关的信息
8		uucp			Unix to Unix Copy Protocol 早期Unix系统间的数据交换协议
9		cron			周期性计划任务程序,如cron、at等产生的信息
10		authpriv		与auth类似,但记录的多为帐号相关的信息,如pam模块的调用等
16~23	local0~local7	保留给本地用户使用的日志类型,通常与终端交互相关。

不同日志级别分类如下:

LOG_EMERG	紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT	报警,需要立即处理,如磁盘空间使用95%
LOG_CRIT	致命行为
LOG_ERR(error)	错误行为
LOG_WARNING	警告信息
LOG_NOTICE	普通
LOG_INFO	标准信息
LOG_DEBUG	调试信息,排错才开,一般不建议使用

远程管理日志方法在此

日志归档

避免日志存储单一文件过大, 可使用logrotate给日志进行归档,便于查看查找,也避免单一文件过大影响写入效率,该归档方法为按日期归档,当前日志以日期命名,不含日期的日志文件为最新的记录。

其本质是挂在cron配置目录cron.daily下面,通过计划任务实现,所以会被cron每天执行一次,

日志轮转配置文件如图:

分别对应,轮转间隔weekly、保留历史文件数量rotate 4即删除序号为5以后的文件、轮转后创建新的日志文件create、使用日期而非数字标识轮转dateext、加载配置文件、对其他日志的特殊设置信息。

总结

本章学习了Linux计划任务的设置方法------通过cron循环任务调度实现,主要是在用户文件中编辑时间间隔和处理命令;以及日志管理的方法,包括日志查看记录,日志远程管理方法及归档处理。

相关推荐
大新新大浩浩2 分钟前
jenkins平台使用Login Theme、Customizable Header插件定制修改登陆页图片文字及首页标题
运维·servlet·jenkins
laimaxgg16 分钟前
Linux关于华为云开放端口号后连接失败问题解决
linux·运维·服务器·网络·tcp/ip·华为云
浪小满18 分钟前
linux下使用脚本实现对进程的内存占用自动化监测
linux·运维·自动化·内存占用情况监测
东软吴彦祖31 分钟前
包安装利用 LNMP 实现 phpMyAdmin 的负载均衡并利用Redis实现会话保持nginx
linux·redis·mysql·nginx·缓存·负载均衡
卷卷的小趴菜学编程1 小时前
c++之List容器的模拟实现
服务器·c语言·开发语言·数据结构·c++·算法·list
艾杰Hydra1 小时前
LInux配置PXE 服务器
linux·运维·服务器
多恩Stone1 小时前
【ubuntu 连接显示器无法显示】可以通过 ssh 连接 ubuntu 服务器正常使用,但服务器连接显示器没有输出
服务器·ubuntu·计算机外设
慵懒的猫mi1 小时前
deepin分享-Linux & Windows 双系统时间不一致解决方案
linux·运维·windows·mysql·deepin
Allen Bright1 小时前
使用 JMeter 的 Autostop Listener 插件:自动化性能测试的守护者
运维·jmeter·自动化
晚秋贰拾伍1 小时前
设计模式的艺术-代理模式
运维·安全·设计模式·系统安全·代理模式·运维开发·开闭原则