linux服务管理教程学习
如何在Linux上定期定期执行命令、脚本(cron、crontab、anacron)?
如何在Linux上定期定期执行命令、脚本(cron、crontab、anacron)?
在Linux上执行定时任务的场景还是很多的,比如说我们要:
定时进行日志文件切割;
定时同步服务时间;
定时备份重要数据;
定时执行任务等。
Linux服务器上要实现定时任务,方式有很多,比如说:cron、anacron、sleep等。那这几种之间有何区别及该选哪种呢,结合我的经验谈谈我的看法以供大家参考。
1、cron(crond)
crond是Linux自带的一个守护进程,利用它来重复执行指定的任务,时间周期可以按分钟、小时、天、月、周来执行,现实我们主要也就是靠它来执行定时任务。
这里需要注意的是,crontab是crond进程依懒的任务列表文件(对应配置文件在:/etc/crontab 中,不过系统中也有crontab命令,通过这个命令我们可以编辑任务清单),我们将定时任务记录在crontab中,任务的执行靠的还是crond守护进程。
2、anacron
anacron(对应配置文件在:/etc/anacrontab 中)可以理解为是cron的一种补充,但两者定位不同。cron定位是7x24小时不间断的计划任务执行者,而anacron是用来处理非7x24小时运行的Linux系统上的crontab的。有点绕口,简单说就是,假设一台服务器每周六周日是关闭的,而crontab中有几条是在周六周日执行的,此时anacron就能发挥作用了。anacron在启动后会去检查关机期间哪些任务应该执行却没有执行到的crontab任务,找到这些任务,执行完,然后anacron就停止了。
其实anacron依懒于crontab,anacron能执行也是靠crontab来运行的。
anacron对于一般用户基本上用不到!
3、sleep
还有一种方案是通过sh脚本来执行while(true) sleep操作,以此来模拟定时任务。这种常见于一些PHP脚本模拟“守护进程”效果,执行完一段代码后,休眠指定时间后再次执行。
综上,在实际操作中,我们实现定时任务99%的情况下都是通过crontab这个命令和 /etc/crontab 这个文件来设置定时任务的,而定时任务的执行是由Linux自带的crond守护进程来执行的。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
linux服务器崩溃怎么排查?
服务器崩溃后第一步应该检查您的系统上运行的所有进程,以确保一切都是有效地运行。Linux内置的 Top命令允许您查看CPU使用率,内存使用,交换内存、缓存大小、缓冲区大小,进程PID、用户、命令等等。这些简单的命令可以对故障进行初始诊断分类以便立即您查看系统信息。
使用此命令简化终端top输出
Htop——一个功能更强大的解决方案这可以使服务器管理工作更容易,安装这个工具后,极大增强了故障排除能力,且提供更直观的信息。Htop的关键特性包括一个颜色编码接口 快捷键 水平和垂直滚动等等。然而Htop不是默认安装在Linux系统,可以使用下面的命令添加到基于CentOS和RedHat的系统,~ yum install htop在Ubuntu系统上,Htop可以用以下命令安装:~ sudo apt-get install htop