简诉
这篇文章是对Linux 应急响应文章的补充,计划任务、开机自启项
计划任务
crontab
crontab 命令 可以创建周期性执行的计划任务,涉及多个文件,在上篇文章中有提过,这里也再简单提一下
下面这几个跟crontab 相关
/var/spool/cron/ #记录了每个用户的计划任务,已用户名命名
/etc/crontab #系统级配置文件
其中/etc/crontab 文件中还有基础的配置说明,在这个文件夹下的
/var/spool/cron/,应该不用写用户名这项
贴几个网上的示例
0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache
50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务
50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务
0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘
1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令
anacron
anacront可以看作是对crontab的一种扩展,来做一些crontab 无法做的事情,比如系统要求将在凌晨2点执行某个脚本,但是服务器晚上不开机,那么anacrontab 会在系统开机后检查应该执行的脚本是否执行,若是没有执行,则进行计划任务的执行。
anacron 会以 1 天、1周(7天)、一个月作为检测周期,判断是否有定时任务在关机之后没有执行。如果有这样的任务,那么 anacron 会在特定的时间重新执行这些定时任务。
如果我们想使用anacron的话可以直接编辑/etc/anacrontab文件,我的阿里云的服务器里,这个配置文件里面有这么几个
可以发现,/etc/cron.{daily,weekly,monthly} 目录中的脚本在当前的 Linux 中是被 anacron 调用的,不再依靠 cron 服务。不过,anacron 不用设置多余的配置,我们只需要把需要定时执行的脚本放入 /etc/cron.{daily,weekly,monthly} 目录中,就会每天、每周或每月执行,而且也不再需要启动 anacron 服务了。如果需要进行修改,则只需修改 /etc/anacrontab 配置文件即可。
把脚本扔进去就会被执行,这几个文件夹也是可以在应急的时候进行重点关照一下的。
这些文件夹是跟anacron 相关的
/etc/cron.daily/* #存放可执行脚本
/etc/cron.hourly/* #存放可执行脚本
/etc/cron.monthly/* #存放可执行脚本
/etc/cron.weekly/* #存放可执行脚本
/etc/anacrontab #开机之后检查该执行的是否执行了,将没有进行的
crontab任务执行一遍,配置的执行文件
/var/spool/anacron/* ,#默认时间戳存储的位置大家可以打开看一下这个文件夹,里面应该是有cron.daily等三个文件,文件内容记录的是时间戳。记录了上次任务的执行时间是什么时候。
开机启动项
这里不多讲了主要说一下这个
/etc/rc.d/rc.local 文件
,
这个配置文件会在用户登陆之前读取,这个文件中写入了什么命令,在每次系统启动时都会执行一次。也就是说,如果有任何需要在系统启动时运行的工作,则只需写入 /etc/rc.d/rc.local 配置文件即可。
另外说一句 ,/etc/rc.local是他的软连接,有点类似于windows 的快捷方式
示例
/etc/rc.d/init.d/httpd start
#如果写入RPM包安装的apache服务的启动命令,apache服务就会在开机时自动启动
自带的
替换
从上一篇Linux 中的rpm 检查可知,其实替换系统中的某些命令文件我个人觉得也可以达成目的