让系统定时去做某件事情
优势: 解放人力 提升效率 自动化
crontab
crontab [-u username] [-l | -e | -r]
选项与参数:
-u:只有 root 才能进行该任务,帮其他使用者建立/移除 crontab 工作排程
-e:编辑 crontab 的工作内容
-l:查询 crontab 的工作内容
-r:移除所有的 crontab 的工作内容,若只删除一项,则使用 -e 编辑
实例
# 范例 1:假如你女朋友生日是 5.2,要在 5.1 23:59 发一封信给她,这封信的内容已经写在 /home/mrcode/lover.txt 中了
crontab -e
59 23 1 5 * mail kiki < /home/mrcode/lover.txt
# 范例 2:每 5 分钟执行一次 `/home/mrcode/test.sh`
*/5 * * * * sh /home/mrcode/test.sh
系统配置文件/etc/crontab
[root@localhost lianxi]# 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
存放计划任务的目录:/var/spool/cron/
可以通过看日志文件 /var/log/cron
来知道计划任务是否执行
crond服务每隔一分钟去查看有什么事情需要做
service crond status
可以查看crond的状态
ps aux | grep crond
查看进程是否存在
service crond stop
停止crond服务
任何一个用户是否都可以创建计划任务,普通用户可以创建计划任务 但是普通用户不能进入/var/spool/cron/ 文件中,而且需要注意的是用户即使不登陆系统,计划任务仍然会执行。
那么如果黑客在我们电脑中添加了自动执行木马的程序,我们要如何找出来呢?
-
进入/var/spool/cron/ 文件中查看
-
去以下目录中查看
-
cron.daily/
-
cron.hourly/
-
cron.monthly/
-
cron.weekly/
这些目录都是Linux中每天/每月/每小时会执行一次的脚本文件目录
-
如果crond挂了如何告知管理员
编写一个脚本 每隔1秒钟执行一次 检测crond是否正常运行 如果没有正常运行就在屏幕输出 crond is dowm
#!/bin/bash
while true
do
if service crond status &>/dev/null ;then
echo "crond is up"
else
echo "crond is down"
service crond start && echo "now crond is up"
fi
sleep 1
done