Linux关于定时任务crontab相关知识了解配合理解shell反弹远程控制
几点需要知道的信息
【1】crontab一般来说服务器都是有的,依赖crond服务,这个服务也是必须安装的服务,并且也是开机自启动的服务,也就是说,他基本上是一直在启动着的,至少小编这么多年的运维经验,每台服务器上面都有这个服务并且是正常启动的
【2】好多的服务都需要依赖这个服务,比如定时清理日志脚本,定时磁盘检查,配合监控,流量排查甚至还有一些高级命令。比如sar命令,syslog日志轮询都是要依赖这个服务的
以上两点,小编想表达的意思是是crontab这个服务很重要。
好了,咱们这个主要为了配合小编的另一个博客文章,简单的讲一下crontab配合shell反弹远程控制主机来写的,具体博客见下面
血的教训—入侵redis并远程控制你的机器场景复现
关于crontab前面的5个*号
# .---------------- 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 **周**
# | | | | |
# * * * * * user-name command to be executed
简单记忆分 时 日 月 周 后面加上你要执行的命令
关于crontab的书写规定
特殊符号 | 叫法 | 代表含义 | 举例说明 |
---|---|---|---|
* | 星号 | 表示任何时间 | * * * * * user-name command to be executed 表示任何时间都执行这条命令 |
, | 逗号 | 不同的时间之间用逗号隔开 | * 1,2,3 * * * user-name command to be executed 表示1点2点5点执行这个任务 |
- | 中横杆 | 用来表示时间段 | * 1-3 * * * user-name command to be executed 表示1点2点3点执行这个任务 |
/ | 左斜杠 | 表示间隔多久执行一次 | * */3 * * * user-name command to be executed 表示创建任务后每隔3小时执行下执行这个任务 |
关于crontab的三个关键目录
crontab配置文件/etc/crontab
虽然说这个是crontab的配置文件,但是大家可以测试一下哈,这个配置文件写上定时任务也是可以执行的呦,小编这里就不测试了,毕竟和咱的主题不是很有关系
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root# For details see man 4 crontabs# Example of job definition:
# .---------------- 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
# | | | | |
# * * * * * user-name command to be executed下面可以写上定时任务,如果你的服务器被攻击了,记得也得排查下这个文件哈
crontab的-e文件
平时我们写定时任务的时候,快捷命令时crtontab -e是吧,好吧,小编来告诉大家一个秘密
其实在我们执行完 crontab -e
这个命令后,其实是将这个定时任务写到了/var/spool/cron
这个目录下面,已当前用户命名的文件,比如小编用的是root用户,当然他也会创建一个为root文件
建议大家自己却验证下哈,小编赖,就不搞ile
同时这个也是比较关键的,如果电脑被攻击了,可以查看下面有没有多文件,基本上就可以锁定是那个用户沦陷了
### crontab日常执行文件
目录为/etc/cron.*
,这个目录下面有小时执行,日执行,周执行,月执行任务,这里写上定时任务也是可以执行的呦,如果大家这个想仔细了解的话,建议大家
1、了解下sar命令的工作原理
2、部署配置一下syslog的日志轮询,比如轮询tomcat或者nginx日志
服务器被攻击了,记得这里也要查一下哈
结束语
关于crontab其实还有好多需要了解的,比如说他这个每隔多长时间是怎么计算的,crontab怎么配置邮箱以及crontab编写注意事项等等,大家可以了解,小编这里为了配合这篇博客,血的教训—入侵redis并远程控制你的机器场景复现,简单的了解下crontab的用法
当然小编还有一个关于crontab的,并造成故障的另一篇文章,写的还是比较详细,包括故障发生原因和crontab原理都有介绍,建议大家看看,小小的crontab也可以造成服务器异常,地址如下
原来都是crontab惹的祸(inode 100%处理解决),服务器系统差点重置了/呜呜呜