cron及日志管理(cron日志有执行记录,但实际没有)
nanshan 2024-10-22 13:03 14 浏览 0 评论
循环调度执行cron
1.1简介cron
crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行
1.2认识crond进程
[root@JX01 ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2018-08-01 07:03:23 CST; 17min ago
Main PID: 671 (crond)
CGroup: /system.slice/crond.service
└─671 /usr/sbin/crond -n
?
8月 01 07:03:23 JX01 systemd[1]: Started Command Scheduler.
8月 01 07:03:23 JX01 systemd[1]: Starting Command Scheduler...
8月 01 07:03:23 JX01 crond[671]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 2% if used.)
8月 01 07:03:23 JX01 crond[671]: (CRON) INFO (running with inotify support)
[root@JX01 ~]#
?
[root@JX01 ~]# ps aux | grep crond
root 671 0.0 0.0 126280 1668 ? Ss 07:03 0:00 /usr/sbin/crond -n
root 1440 0.0 0.0 112720 980 pts/0 R+ 07:21 0:00 grep --color=auto crond
[root@JX01 ~]#
1.3创建计划任务
#计划任务存储的位置
[root@JX01 ~]# ls /var/spool/cron/
root jack alice
?
#管理计划任务的命令
crontab:
-l Displays the current crontab on standard output.
-r Removes the current crontab.
-e Edits the current crontab using the editor specified.
?
#计划任务书写的格式
.---------------- minute (0 - 59)
| .-------------- hour (0 - 23)
| | .------------ day of month (1 - 31)
| | | .---------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .-------- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * command
?
#计划任务案例
00 02 * * * ls //每天2:00整
00 02 1 * * ls //每月1号2:00整
00 02 14 2 * ls //每年2月14号2:00整
00 02 * * 7 ls //每周日2:00整
00 02 * 6 5 ls //每年6月的周五2:00整(特殊)
00 02 14 * 7 ls //每月14号2:00整 或者 每周日2:00整,这两个时间都执行
00 02 14 2 7 ls //每年2月14号2:00整 或者 每周日2:00整,这两个时间都执行
?
00 02 * * * ls //每天2:00整
* 02 * * * ls //每天2:00中的每一分钟
* * * * * ls //每分钟执行ls
* * 14 2 * ls //2月14号的每分钟 1440分钟
?
*/5 * * * * ls //每隔5分钟
00 02 1,5,8 * * ls //每月1,5,8号的2:00整
00 02 1-8 * * ls //每月1到8号的2:00整
00 02 * 1-10 * ls
?
#测试计划任务的执行效果
1 编写执行脚本.
vim /crontab.sh
touch /root/`date +%F-%X`.txt
?
2 编排任务计划
[root@localhost ~]# crontab -e
* * 1 1 * bash /crontab.sh
?
3 修改日期时间为1月2日3点4分
date 01020304
修改时间为1点2分3秒
date -s 01:02:03
?
4 监控当前目录
watch -n 0.5 'ls /root/*.txt'
?
5 测试目标
?
* * * * 1 //每周1 每分钟会执行
* * * 1 * //1月每日 每分钟会执行
* * * 1 1 //1月的周1 每分钟会执行
* * 1 * * //每月1日 每分钟会执行
* * 1 * 1 //每月1日和每月周1 每分钟会执行
* * 1 1 * //1月1日 每分钟会执行
* * 1 1 1 //1月1日和1月的周1 每分钟都会执行
日志管理
日志:在现代社会里,为了维护自身系统资源的运行状况,计算机系统一般都会有相应的日志记录系统有关日常事件或者误操作警报的日期及时间戳信息。这些日志信息对计算机犯罪调查人员非常有用,但计算机日记是按正常工作状态记录的,所以冗余量很大,对查找与分析有用信息造成很大困难。
?
#Linux系统中存在的日志都在哪里?/var/log/
# tail /var/log/messages //系统主日志文件
# tail -20 /var/log/messages
# tail -f /var/log/messages //动态查看日志文件的尾部
# tailf /var/log/secure //认证、安全
# tail /var/log/maillog //跟邮件postfix相关 prefix
# 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服务器相关
# tail /var/log/wtmp //当前登录的用户(命令:w)
# tail /var/log/btmp //最近登录的用户(命令last)
# tail /var/log/lastlog //所有用户的登录情况(命令lastlog)
?
#Linux系统是什么进程程序在管理日志?rsyslog
##rsyslog
rsyslog:linux系统中管理日志的服务
所产生的进程是: rsyslogd -n
?
linux中的配置文件:
linux中所有的服务或者工具,都是由配置文件驱动工作的;
Linux中的工具或服务都是遵循配置文件中的规则工作的;
?
/etc/rsyslog.conf:
这个文件定义了系统中所有的服务或者工具,它们所产生的日志,根据特定的级别需要存储在特定的位置
?
日志等级:
等级由低到高:debug<info<warn<Error<Fatal
?
系统或服务的排错:
根据配置文件的对错有一下两种方案供给选择:
1. 查看rsyslog的 journalctl -xe 找出服务或系统的报错信息
2. 根据服务自身的检测机制,去检查配置文件的语法
3. 系统常用排错指令 journalctl -xe\\ systemctl status service.name\\ 服务自带检测工具
bash -nx 检测shell脚本的语法问题
httpd -t 检测apache web服务的配置文件语法问题
nginx -t 检测nginx web服务的配置文件语法问题
?
[root@JX02 ~]# vim /etc/rsyslog.conf
#### RULES ####
?
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
?
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
?
# The authpriv file has restricted access.
authpriv.* /var/log/secure
?
# Log all the mail messages in one place.
mail.* -/var/log/maillog
?
# Log cron stuff
cron.* /var/log/cron
?
# Everybody gets emergency messages
*.emerg :omusrmsg:*
?
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
?
# Save boot messages also to boot.log
local7.* /var/log/boot.log
##logrotate
#认识一下logrotate
为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。这就是通常说的日志滚动(log rotation)
logrotate本身不是系统守护进程,它是通过计划任务crond每天执行
?
#logrotate配置文件:
主文件:/etc/logrotate.conf (决定每个日志文件如何轮转)
子文件夹:/etc/logrotate.d/*
?
#认识logrotate的选项含义
==================全局设置==================
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
}
?
=========================================参数========================================
compress 通过gzip 压缩转储以后的日志
nocompress 不做gzip压缩处理
copytruncate
用于还在打开中的日志文件,把当前日志备份并截断;是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据。
nocopytruncate 备份日志文件不过不截断
create mode owner group 轮转时指定创建新文件的属性,如create 0777 nobody nobody
nocreate 不建立新的日志文件
delaycompress 和compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 覆盖 delaycompress 选项,转储同时压缩
missingok 如果日志丢失,不报错继续滚动下一个日志
errors address 专储时的错误信息发送到指定的Email 地址
ifempty 即使日志文件为空文件也做轮转,这个是logrotate的缺省选项
notifempty 当日志文件为空时,不进行轮转
mail address 把转储的日志文件发送到指定的E-mail 地址
nomail 转储时不发送日志文件
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一个目录下
sharedscripts
运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
prerotate 在logrotate转储之前需要执行的指令,例如修改文件的属性等动作;必须独立成行
postrotate 在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成行
daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
dateext 使用当期日期作为命名格式
dateformat .%s
配合dateext使用,紧跟在下一行出现,定义文件切割后的文件名,必须配合dateext使用,只支持 %Y %m %d %s 这四个参数
size(或minsize) log-size
当日志文件到达指定的大小时才轮转,log-size能指定bytes(缺省)及KB (sizek)或MB(sizem).
当日志文件 >= log-size 的时候就转储。
以下为合法格式:(其他格式的单位大小写没有试过)
size = 5 或 size 5 (>= 5 个字节就转储)
size = 100k 或 size 100k
size = 100M 或 size 100M
=================================================================================
?
#案例一:普通切割
[root@JX02 ~]# vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok //丢失不执行
# notifempty //空文件不轮转
# size 30k //达到30k轮转, daily or size
# yearly //或者一年一轮转
daily //缩小周期到1天
rotate 3 //轮转保留3次
create 0777 root root
}
[root@JX02 ~]# /usr/sbin/logrotate -f /etc/logrotate.conf //强制轮转日志
[root@JX02 ~]# ll /var/log/yum* //发现日志已经被切割了
?
?
#案例二:切割前后执行动作
[root@JX02 ~]# vim /etc/logrotate.d/httpd
/var/log/httpd/* {
prerotate
chattr -a /var/log/httpd
endscript
?
#notifempty
daily
create 0600 root root
missingok
rotate 5
?
postrotate
chattr +a /var/log/httpd
endscript
}
?
[root@JX02 logrotate.d]# /usr/sbin/logrotate -f /etc/logrotate.conf
?
#案例三:切割多个日志文件
[root@JX02 ~]# vim /etc/logrotate.d/web
/var/log/httpd_test.log
/var/log/nginx_test.log
/var/log/tomcat_test.log
{
daily
create 0600 root root
missingok
rotate 5
}
?
[root@JX02 ~]# /usr/sbin/logrotate -f /etc/logrotate.conf
?
#案例四:切割一个文件夹下的所有日志
[root@JX02 ~]# vim /etc/logrotate.d/apache
/var/log/apache/*log {
daily
create 0600 root root
missingok
rotate 5
}
?
[root@JX02 logrotate.d]# /usr/sbin/logrotate -f /etc/logrotate.conf
相关推荐
- ssh终端xshell日志查看命令(xshell怎么看日志)
-
现在我们云服务器运维较多用的是SSH工具,其中常用的包括PUTTY、XSHELL等,其实大同小异界面UI稍微不同,但是都可以进入远程连接。这里有朋友提到如何查看服务器的日志文件,这个其实和是否使用XS...
- 使用 Fail Ban 日志分析 SSH 攻击行为
-
通过分析`fail2ban`日志可以识别和应对SSH暴力破解等攻击行为。以下是详细的操作流程和关键分析方法:---###**一、Fail2ban日志位置**Fail2ban的日志路径因系统配置...
- 如何高效读取Linux日志文件?这些命令要熟记于心!
-
在Linux系统中,日志文件通常存储在/var/log目录下。比如,/var/log/syslog(或/var/log/messages,视发行版而定)记录系统整体事件,/var/log/a...
- Windows服务器远程登录日志查询方法,linux查看登录日志方法
-
概述本文介绍Windows、Linux服务器查询系统的远程登录日志方法。根据服务器所使用的操作系统不同,有以下两种查询方法。Linux操作系统的登录日志查询通过远程连接登录Linux服务器,使用roo...
- iptables防火墙如何记录日志(防火墙日志查看)
-
例如:记录所有ssh服务的登录的日志首先,我们需要了解如何将所有的iptables的INPUT链数据包记录到/var/log/messages中。如果你已经有一些iptables规则了,那么将记录日志...
- 如何安全管理SSH密钥以防止服务器被入侵
-
SSH密钥安全管理实施指南(2025年更新版)一、密钥生成与存储规范高强度密钥生成bashCopyCodessh-keygen-ted25519-a100#生成ED25519算法密钥(比...
- 在CentOS上安装nginx服务器(centos搭建代理服务器)
-
一、环境描述1.虚拟机配置CPU:单核内存:2GB硬盘:120GBIP:10.24.17.1082.操作系统版本:CentOS6.6x86_64安装方式:Minimal3.虚拟化环境VM...
- CentOS7安全加固的一份整理规划建议
-
◆更新系统:及时更新CentOS7操作系统版本和安全补丁,确保系统以最新状态运行。◆关闭不必要的服务:在运行系统时,应关闭不需要的服务和端口,以减少系统暴露的攻击面。◆安装防火墙:使用iptables...
- 第四十七天-二叉树,centOS安装tomcat,Maven,vsftpd
-
学习笔记:1.Maven是Apache下的一个纯Java开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven...
- Linux远程桌面连接使用教程 Widows终端远程连接Linux服务器
-
一、前言为什么不是远程连接Linux服务器?因为我不会,远程连接window我就用电脑自带的“远程桌面连接”。以下所述都是在CentOS操作系统下的。服务器刚换成Linux的时候很迷茫,感觉无从下手...
- CentOS 安全加固操作,保护你的操作系统
-
系统加固是保障系统安全的重要手段,对于维护企业数据安全、用户隐私以及系统稳定运行具有重要意义。加固后的系统更加健壮和稳定,能够有效减少因安全问题导致的系统故障和停机时间,提高系统的可用性和可靠性。通过...
- Dockerfile部署Java项目(docker如何部署java项目)
-
1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...
- CentOS7云主机部署Fail2ban阻断SSH暴力破解
-
关于Fail2banFail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽)例如:当有人在试探你的HTTP、SSH、SMTP、FTP密...
- 在CentOS7上用源码编译安装PostgreSQL
-
1、新建postgres用户#useraddpostgres&&passwdpostgres2、安装依赖包#yum-yinstallmakegccgcc-c++readline...
- pure-ftpd 使用(ftp prompt命令)
-
pure-ftpd是一个免费的ftp软件,其他介绍就不多说了。我们直接开始主题安装centosyuminstallepel-releaseyuminstallpure-ftpd配置备份原配置...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)