`

linux 编写定时任务

阅读更多

 

 使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。

例如每天备份系统日志

推荐用法:

在linux的shell窗口执行

crontab -e

会打开编辑窗口,类似vi

可以使用

 

Esc     模式切换

:i         进入插入模式,编辑模式

:wq     保存并退出

:q!      不保存退出。

 

进入编辑模式之后就可以输入编辑具体的定时任务了

定时任务的格式

# 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

# |  |  |  |  |

# *  *  *  *  *  command to be executed

#每天凌晨0点0分用root用户执行/data/backlog.sh这个shell脚本

0 0 * * *  /data/backlog.sh

 

按Esc退出编辑模式,然后输入:wq 保存并退出,定时任务就定义完了。

属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。

 在红帽系统中例子:

cd /var/spool/cron

vi root

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

AILTO=root

HOME=/

 

# 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

# |  |  |  |  |

# *  *  *  *  *  command to be executed

 

23 * * * * /data/backlog/shell/backyeslog.sh

23 * * * * /data/backlog/shell/backtodaylog.sh

 

如果是在window下编辑完了上传到上面可能会有回车符的问题,解决办法请参看文章的末尾。

 

 

Crontab命令的选项

以下是 crontab 的有效选项:

crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。 

crontab –l : 显示 crontab 文件。 

crontab -r : 删除 crontab 文件。

crontab -ir : 删除 crontab 文件前提醒用户。

 

(系统级的)做系统级配置我们会直接配置 /etc/crontab

(用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。

系统级任务调度与用户级任务调度

系 统级任务调度主要完成系统的一些维护操作,用户级任务调度主要完成用户自定义的一些任务,可以将用户级任务调度放到系统级任务调度来完成(不建议这么 做),但是反过来却不行,root用户的任务调度操作可以通过“crontab –uroot –e”来设置,也可以将调度任务直接写入/etc /crontab文件,需要注意的是,如果要定义一个定时重启系统的任务,就必须将任务放到/etc/crontab文件,即使在root用户下创建一个 定时重启系统的任务也是无效的。

 

其他注意事项

新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。

 

当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。

 

千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。

 

在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’。

 

定时任务crond服务的操作命令

 

情况一:正常情况(系统有service命令)

重启服务命令:[root@centos6 /]# service crond restart

 

启动服务命令:[root@centos6 /]# service crond start

 

停止服务命令:[root@centos6 /]# service crond stop

 

 

情况二:当linux发行的版本没有service这个命令时候,用如下命令进行停止启动:

 

停止服务:[root@centos6 /]# /etc/init.d/cron空格stop

 

启动服务:[root@centos6 /]# /etc/init.d/cron空格start

 

 

linux  系统中去掉^M的方法

  1. 对于回车符的定义: 
  2. windows:0D0A 
  3. unix\linux: 0A 
  4. MAC: 0D 
  5.  用VI的命令: 
  6.     使用vi打开文本文件 
  7.     vi dos.txt 
  8.     命令模式下输入 
  9.     :set fileformat=unix 
  10.     :wq 
分享到:
评论

相关推荐

    Linux定时任务以及脚本编写docx

    在Linux系统中,定时任务和脚本编写是系统管理的重要组成部分,它们允许自动化执行日常维护任务,如数据备份、日志清理、性能监控等。本文档将详细介绍如何创建和配置Linux定时任务,以及编写和执行简单的shell脚本...

    Linux定时任务1

    Linux定时任务是Linux系统中非常重要的功能,它允许用户或系统自动执行预定的任务,无需人工干预。这在服务器管理和自动化运维中尤其有用。本文将详细探讨Linux定时任务的相关知识点。 首先,程序是预编写的执行...

    linux定时执行任务脚本

    要实现这个功能,我们可以利用Linux的cron服务,它是一个强大的定时任务调度器。本文将深入探讨如何创建和管理Linux定时执行任务脚本。 首先,我们需要了解cron服务的工作原理。cron在后台运行,周期性地检查/etc/...

    Linux Crontab 定时任务 命令详解

    Linux Crontab 定时任务 命令详解 Linux Crontab 是一个强大的定时...Linux Crontab 是一个功能强大且灵活的定时任务命令,通过编写 Crontab 文件,可以实现自动化管理和维护服务器,从而提高服务器的安全性和可靠性。

    基于thinkphp5框架的定时执行任务

    4. **编写定时任务代码**:在`ScheduledTaskBehavior`的`run`方法中,我们可以编写定时任务的具体逻辑。例如,你可以使用`Swoole\Timer`来设置定时器,每隔一段时间执行一次任务。 ```php public function run($...

    linux 定时任务 运维知识

    系统定时任务和用户定时任务,定时任务脚本编写,用户定时任务权限问题。合适linux学习及复习

    Java编写的linux下定时通过ftp上传文件

    在Linux系统中,我们可以使用Java的`java.util.Timer`和`java.util.TimerTask`来设定定时任务。下面将逐步介绍整个过程: 1. **FTP连接与配置**: - 首先,需要导入`commons-net`库。在Maven项目中,可以在pom.xml...

    (linux)下开机自动运行脚本以及定时任务

    ### Linux 下开机自动运行脚本及定时任务 在 Linux 系统中,为了实现系统启动时自动执行某些脚本或程序、以及设定周期性任务的需求,我们可以通过多种方式来达到目的。本文将详细介绍如何在 Linux 系统下设置开机自...

    Liunx系统定时删除任务,定时清理日志,定时清理任务

    在Linux系统中,定时任务是运维工作中不可或缺的一部分,它能够帮助我们自动化执行一系列维护操作,例如定期删除旧日志、清理缓存等。本篇文章将深入讲解如何利用Linux的crontab工具设置定时删除任务,特别是针对...

    linux下定时执行脚本

    在编辑器中,你可以按照特定的格式编写定时任务。`cron`的语法格式如下: ```cron * * * * * command_to_be_executed - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month...

    thinkPHP3.2.3定时执行任务

    在ThinkPHP3.2.3中,虽然没有内置的Cron服务,但我们可以借助Linux服务器的Cron机制结合PHP脚本来实现定时任务。要创建一个Cron任务,我们需要在服务器的Crontab配置文件中添加一行命令,指定执行的PHP脚本及执行...

    Linux下定时备份文件.zip_数据库定时备份

    4. **配置cron计划任务**:打开cron配置文件(通常为`crontab -e`),然后根据需求设置定时任务。如果要每7天执行一次,可以设置如下: ``` 0 0 * * 7 /path/to/backup.sh ``` 这将在每周日的凌晨0点执行`...

    phpcms 定时任务模块

    phpcms 的定时任务模块摆脱了对 Windows 任务调度器的依赖,这意味着即使你的服务器是基于 Linux 或其他非 Windows 系统,也能正常运行这些任务。这对于使用虚拟主机的用户来说是一个福音,因为很多虚拟主机服务通常...

    linux-定时清除日志

    针对这种情况,我们可以使用Linux内置的调度工具crontab来创建定时任务,自动清理指定路径的日志文件。本文将详细介绍如何使用crontab实现定时清除日志。 首先,我们来看`clean-log`这个文件,这可能是一个脚本,...

    linux 定时任务详解

    下面是一些实际的例子,帮助理解如何编写定时任务的格式: 1. **每年的五月一日10:5执行一次**: ``` 5 10 1 5 * command ``` 2. **每天的三点,六点各执行一次**: ``` 0 3,6 * * * command ``` 3. **每天的...

    ThinkPHP实现定时执行任务DEMO

    在ThinkPHP框架中,我们可以通过编写控制器和逻辑来处理定时任务,然后将其配置到Crontab中。以下是实现步骤: 1. **创建控制器**:在ThinkPHP项目中,创建一个专门用于定时任务的控制器,例如命名为`...

    exp定时任务&&expdp定时任务.zip

    定时任务的设置通常依赖于操作系统的调度服务,如Linux下的cron或Windows的任务计划程序。 接下来,我们转向"expdp",它是"exp"的升级版,全称为Data Pump Export。相比exp,expdp提供了更高效、更灵活的数据导出...

    定时任务脚本制作

    在Linux系统中,最常用的定时任务工具是Cron。Cron是一个调度程序,它可以按照预定的时间表运行命令或脚本。在Windows系统中,我们可以使用Task Scheduler来达到相同的目的。这两个工具的工作原理相似,但具体语法和...

    基于thinkphp框架的定时器(定时执行任务)

    - 在编写定时任务时,考虑异常处理和日志记录,以便出现问题时能快速定位和修复。 - 频繁执行的任务应尽可能减少对数据库和其他资源的访问,以减轻服务器压力。 通过以上步骤,你便可以在ThinkPHP框架中创建并配置...

    linux 里定时执行删除日志

    本文将深入解析如何在Linux环境下设置定时任务来定期执行特定操作,特别是删除日志或无用文件,以释放磁盘空间,保持系统的高效运行。 ### 一、问题背景 在日常的系统维护过程中,我们可能会遇到由于应用程序频繁...

Global site tag (gtag.js) - Google Analytics