当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux之定时任务Crond详解

    栏目:Linux/apache问题 时间:2019-11-20 15:36

    定时任务Crond介绍

    Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便会启动Crond任务调度服务。

    Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定时任务服务就相当于我们平时早起使用的闹钟一样。 

    必须保留的启动服务:

    crond:定时任务服务 network:网络服务 rsyslog:日志服务 sshd:远程链接服务 sysstat:系统监控服务(涉及一系列监控工具)

     

    为什么要使用定时任务呢?

    我们举个例子说明:例如,我们的数据库或者代码程序需要每天晚上0点做一次全备份,这样每天夜里都需要执行的周期性工作,如果要让人操作的话,就得每天半夜爬起来,然后登录系统执行任务,执行完接着睡觉。另外,执行任务的过程也可能持续几个小时,这样一来,一个晚上我们就都不用睡觉了,这样显然是不行的。那么有什么办法来解决这个周期性的执行任务需求呢?

    这就是linux系统的定时任务Crond,这相当于我们平时生活中的闹钟功能,每天晚上提前设置定时,早晨按时叫醒你。

    ls -l /var/log/messages* #系统的日志
    
    ls -l /var/log/secure* #用户登录日志
    

    用户执行的任务工作:某个用户或系统管理员定期要做的任务工作,例如每隔5分钟和互联网上时间服务器进行时间同步(这是安装系统基础优化部分的内容),每天晚上0点备份网站站点数据及数据库数据,一般这些工作需要由每个运维自行设置才行。

    服务器时间同步

    复制代码 代码如下:
    echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1" >> /var/spool/cron/root

    可通过上面的命令设置每5分钟执行一次。每次将互联网时间同步到本地Linux系统。

    crontab -l 查看当前用户的定时任务配置。*号 下面会详讲~~

    time.nist.gov是NTP服务器地址 time.windows.com,微软自家的时间服务器。 更多请参考 ==> 国内常用NTP服务器地址及IP

    crontab(命令):正如前面所说的这个命令可以周期性的执行任务工作,例如:每五分钟做一次服务器时间同步。要执行crontab这个命令,也需要启动一个服务crond才行。这个crontab命令是生产工作中最常用到的命令,请大家务必掌握。

    1、开机自启动crond服务

    2、此时此刻服务的状态(查看,开启,关闭)

    3、如何查看进程

    ps -ef | grep crond

    小结提示:

    我们所说的crond服务是运行的程序,而crontab是用来管理用户的定时任务(规则)的命令 crond服务是企业生产工作中常用的重要服务,at和anacron很少用,可以忽略 几乎每个服务器都会用到crond服务 上千服务器可以开发分布式定时任务项目方案(批量管理ansible/saltstack)

     定时任务Crond使用说明

    [root@chengliang ~]# crontab --help
    crontab: invalid option -- '-'
    crontab: usage error: unrecognized option
    usage: crontab [-u user] file
      crontab [-u user] [ -e | -l | -r ]
        (default operation is replace, per 1003.2)
      -e (edit user's crontab)
      -l (list user's crontab)
      -r (delete user's crontab)
      -i (prompt before deleting user's crontab)
      -s (selinux context)
    [root@chengliang ~]#