Linux 可以利用 crontab 来实现定时任务,自动化操作。本文对此进行简要说明。

crontab 操作示例


列出定时任务

 
  1. crontab -l
  2. #列出所有的定时任务,如果没有定时任务,返回no crontab for root信息。

新建定时任务

 
  1. crontab -e
  2. #打开crontab定时任务编辑界面,按I键进入编辑模式。

格式:分时日月周 <命令>

  • 第1列表示分钟1~59 每分钟用或者 /1表示
  • 第2列表示小时1~23(0表示0点)
  • 第3列表示日期1~31
  • 第4列表示月份1~12
  • 第5列标识号星期0~6(0表示星期天)
  • 第6列要运行的命令

示例:

 
  1. 5 * * * * /etc/cpu_monitor.sh
  2. #开机后,每5分钟执行一次cpu监控脚本。
  3. 30 21 * * * /usr/local/etc/rc.d/lighttpd restart
  4. # 每晚的21:30重启 apache。
  5. 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
  6. #每月1、10、22日的4:45重启 apache。

查看定时任务

可以执行 crontab -l 查看已经配置的定时任务。

删除定时任务

 
  1. #删除所有定时任务。
  2. crontab -r
  3. #单独删除某一个定时任务,进入编辑模式,注释掉需要删除的定时任务语句即可
  4. crontab -e
  5. # 注:使用Crontab进行清理、删除、更改配置操作,有一定风险,请在测试前创建快照备份。

常见问题


执行任务时报错: You (*) are not allowed to use this program (crontab)

问题现象

非 root 用户在执行 crontab -l  crontab -e 等命令时,出现报错:

 
  1. You (***) are not allowed to use this program (crontab)

问题原因

这是由于 crontab 任务有权限控制,非 root 用户默认没有操作 crontab 的权限。可以通过创建文件 /etc/cron.allow 或者 /etc/cron.deny 来控制权限。

  • 如果 /etc/cron.allow 文件存在,那么只有这个文件中列出的用户可以使用 cron, 同时 /etc/cron.deny文件被忽略;

  • 如果 /etc/cron.allow 文件不存在,那么文件 /cron.deny 中列出的用户 将不能用使用 cron。

处理办法

遇到类似问题,请切换到 root 用户,按以下步骤检查:

1. 如果系统中没有 cron.allow 文件,检查 /etc/cron.deny 文件中是否有该非 root 用户的用户名。

如果有,编辑 cron.deny 文件删除该用户的用户名,保存后通过 service crond restart 重启cron服务

2. 如果系统中有 cron.allow 文件,可以将该非 root 用户(以testuser1用户名为例)添加到 cron.allow 文件中。保存后重启cron服务。

检查完以上两步,切换到该非root用户(testuser1),检查一下是否可以执行或编辑cron定制任务。

创建定时任务失败,提示 command not found

问题描述

阿里云ECS服务器,使用 Linux 定时服务 crontab 创建定时任务时执行失败。进入crontab主目录,发现没有该目录。

分析解决

该问题是由于Crontab应用包未安装,或安装后程序文件损坏导致。

此时可通过yum方式进行在线安装,参考命令如下:

 
  1. yum install vixie-cron 依赖程序,主程序
  2. yum install crontabs 任务程序,执行包

安装完毕后,再次执行crontab -e 命令编辑新的计划任务,或crontab -l 查看已存在的历史任务。

Linux 任务计划 crontab 配置概要与常见问题的更多相关文章

  1. linux系统下crontab 配置启动定时任务

    1 crontab -e 配置启动定时任务 */1 * * * * sh /home/admin/application/wd/core-python/getMemPositionFromAnaual ...

  2. linux定时任务的设置 crontab 配置指南

    为当前用户创建cron服务 1.  键入 crontab  -e 编辑crontab服务文件 例如 文件内容如下: */2 * * * * /bin/sh /home/admin/jiaoben/bu ...

  3. linux系统的任务计划crontab使用详解

    linux系统的任务计划crontab使用详解 其实大部分系统管理工作都是通过定期自动执行某一个脚本来完成的,那么如何定期执行某一个脚本呢?这就要借助linux的cron功能了. 关于cron任务计划 ...

  4. linux(Debian) 中的cron计划任务配置方法

    cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情.用crontab配置是针对某个用户的 ...

  5. 配置Linux任务计划

    Linux有三种计划任务: at:指定一个时间执行一个任务 (适用一个或多个任务,执行一次后就不用) cron:根据一个时间表自动执行任务 (使用一个或多个任务,周期性执行) 系统级别的计划任务及其扩 ...

  6. Linux中利用crontab创建计划任务

    在linux中启动crontab服务: /etc/init.d/crond  start crontab的命令格式 crontab -l   显示当前的crontab 文件(默认编写的crontab文 ...

  7. linux下使用crontab实现定时PHP计划任务失败的原因分析

    这篇文章主要介绍了linux下使用crontab实现定时PHP计划任务失败的原因分析,需要的朋友可以参考下   很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存.本 ...

  8. linux计划crontab

    linux计划crontab 启动crontab服务 一般启动服务用  /sbin/service crond start 若是根用户的cron服务可以用 sudo service crond sta ...

  9. Linux crontab配置

    crontab配置 1.命令功能 通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本.时间间隔的单位可以是分钟.小时.日.月.周及以上的任意组合.这个 ...

随机推荐

  1. 2018-11-29 VS Code英汉词典插件v0.0.6-改为TS实现, 加测试

    如前文VS Code英汉词典插件v0.0.4-驼峰下划线命名打算, 首先将JS源码改为TypeScript实现, 并添加了必要的测试. 昨天得知vue.js 3.0会用TypeScript实现, 正好 ...

  2. 使用fiddler抓包手机请求数据

    1.启动Fiddler,打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options”对话框. 2.在Fiddler Options”对话框切换到“Con ...

  3. (办公)rom包

    所谓ROM包,通俗点来讲,也就是手机上的系统安装包.使用过智能手机的朋友可能都有过这样的遗憾,自己所用的官方系统虽然能够满足绝大部分的需求,但总有一些细节不是很合自己的心愿……比如说,内置的输入法不好 ...

  4. [Python][小知识][NO.1] Python字符串前 加 u、r、b 的含义

    1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出 ...

  5. 通过UNIX域套接字传递描述符的应用

      传送文件描述符是高并发网络服务编程的一种常见实现方式.Nebula 高性能通用网络框架即采用了UNIX域套接字传递文件描述符设计和实现.本文详细说明一下传送文件描述符的应用. 1. TCP服务器程 ...

  6. 多级nginx代理,获取客户端真实ip

    今天服务里的微信公众号支付业务突然不能用了,报错为网络环境未能通过安全验证,请稍后再试.检查后端日志,没有任何问题,看来是成功创建支付订单,但是调起支付时出现了问题.上网查了一下,这个报错的直接原因是 ...

  7. ES搜索引擎集群模式搭建【Kibana可视化】

    一.简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎(与Solr类似),基于RESTful web接口.Elasticsearch是用Ja ...

  8. websocket后台数据推送

    Websocket定义: 说明: 作为下一代的 Web 标准,HTML5 拥有许多引人注目的新特性,如 Canvas.本地存储.多媒体编程接口.WebSocket 等等.这其中有“Web 的 TCP ...

  9. MyBatis笔记----@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class

    使用MyBatis 3.4.1或者其以上版本 @Intercepts({ @Signature(type = StatementHandler.class,  method = "prepa ...

  10. SQL SERVER启动步骤

    第一步 从注册表读取SQL SERVER启动信息 (1)Audit  Level:设置SQL SERVER是否记录用户登陆信息 Login Mode:设置SQL SERVER登陆类型是只接受windo ...