Linux 任务计划 crontab 配置概要与常见问题
Linux 可以利用 crontab 来实现定时任务,自动化操作。本文对此进行简要说明。
crontab 操作示例
列出定时任务
crontab -l#列出所有的定时任务,如果没有定时任务,返回no crontab for root信息。

新建定时任务
crontab -e#打开crontab定时任务编辑界面,按I键进入编辑模式。
格式:分时日月周 <命令>
- 第1列表示分钟1~59 每分钟用或者 /1表示
- 第2列表示小时1~23(0表示0点)
- 第3列表示日期1~31
- 第4列表示月份1~12
- 第5列标识号星期0~6(0表示星期天)
- 第6列要运行的命令
示例:
5 * * * * /etc/cpu_monitor.sh#开机后,每5分钟执行一次cpu监控脚本。30 21 * * * /usr/local/etc/rc.d/lighttpd restart# 每晚的21:30重启 apache。45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart#每月1、10、22日的4:45重启 apache。
查看定时任务
可以执行 crontab -l 查看已经配置的定时任务。
删除定时任务
#删除所有定时任务。crontab -r#单独删除某一个定时任务,进入编辑模式,注释掉需要删除的定时任务语句即可crontab -e# 注:使用Crontab进行清理、删除、更改配置操作,有一定风险,请在测试前创建快照备份。
常见问题
执行任务时报错: You (*) are not allowed to use this program (crontab)
问题现象
非 root 用户在执行 crontab -l 或 crontab -e 等命令时,出现报错:
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方式进行在线安装,参考命令如下:
yum install vixie-cron 依赖程序,主程序yum install crontabs 任务程序,执行包
安装完毕后,再次执行crontab -e 命令编辑新的计划任务,或crontab -l 查看已存在的历史任务。

Linux 任务计划 crontab 配置概要与常见问题的更多相关文章
- linux系统下crontab 配置启动定时任务
1 crontab -e 配置启动定时任务 */1 * * * * sh /home/admin/application/wd/core-python/getMemPositionFromAnaual ...
- linux定时任务的设置 crontab 配置指南
为当前用户创建cron服务 1. 键入 crontab -e 编辑crontab服务文件 例如 文件内容如下: */2 * * * * /bin/sh /home/admin/jiaoben/bu ...
- linux系统的任务计划crontab使用详解
linux系统的任务计划crontab使用详解 其实大部分系统管理工作都是通过定期自动执行某一个脚本来完成的,那么如何定期执行某一个脚本呢?这就要借助linux的cron功能了. 关于cron任务计划 ...
- linux(Debian) 中的cron计划任务配置方法
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情.用crontab配置是针对某个用户的 ...
- 配置Linux任务计划
Linux有三种计划任务: at:指定一个时间执行一个任务 (适用一个或多个任务,执行一次后就不用) cron:根据一个时间表自动执行任务 (使用一个或多个任务,周期性执行) 系统级别的计划任务及其扩 ...
- Linux中利用crontab创建计划任务
在linux中启动crontab服务: /etc/init.d/crond start crontab的命令格式 crontab -l 显示当前的crontab 文件(默认编写的crontab文 ...
- linux下使用crontab实现定时PHP计划任务失败的原因分析
这篇文章主要介绍了linux下使用crontab实现定时PHP计划任务失败的原因分析,需要的朋友可以参考下 很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存.本 ...
- linux计划crontab
linux计划crontab 启动crontab服务 一般启动服务用 /sbin/service crond start 若是根用户的cron服务可以用 sudo service crond sta ...
- Linux crontab配置
crontab配置 1.命令功能 通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本.时间间隔的单位可以是分钟.小时.日.月.周及以上的任意组合.这个 ...
随机推荐
- Linux 线程实现模型
1.Linux 线程的调度实现可以有两种模型, 一种是完全由进程负责,进程内启动一个线程调度器,由进程内的线程调度器完成调度. 缺点是:(1)各个线程自己加主动释放cpu的流程 (2)进程可能阻塞,达 ...
- loadrunner 脚本优化-参数化方法
脚本优化-参数化方法 by:授客 QQ:1033553122 方法一 1.确定需要参数化的内容 2.选中需要参数化的内容 3.右键选中的内容->Replace with a Parameter- ...
- Android Studio Git 分支使用实践
新公司有些项目是用的 Git,以前公司都是 svn,为了练手 Git,我个人 APP 用到了,但是仅简单的 git pull/push 的使用,并未用到 Git 精髓,只有当项目中用到,才会紧迫去全面 ...
- 章节二、1-java概述-数据类型
一.数据类型 1.基本数据类型 a.数值型 1.整数:byte(1个字节=8位) min:-128 max:127 default:0 .short(2个字节=16位) min:-32768 max: ...
- mysql之连接查询、联合查询、子查询
本文内容: 连接查询 联合查询 子查询 from子查询 where子查询 exists子查询 首发日期:2018-04-11 连接查询: 连接查询就是将多个表联合起来查询,连接查询方式有内连接.外连接 ...
- coTurn测试程序之 turnutils_uclient
接着对使用coTurn搭建的STUN/TURN服务使用turnutils_uclient程序测试其TURN服务是否正常. 直接连接服务测试服务是否正常.为保证测试使用的服务是TURN服务,在TURN服 ...
- Linux 防火墙
目录 iptables配置 1. iptables 控制类型 2. 链表规则 3. iptables表 CentOS和RedHat 6.x CentOS和RedHat 7.x ufw ubuntu u ...
- 4. svg学习笔记-文档结构元素和样式的使用
svg除了绘图元素之外还有一部分是专门用于文档结构的,这类元素有<g>,<use>,<defs>,<symbol>等 <g>元素 如果我们仅 ...
- JavaSe: 不要小看了 Serializable
Java中,一个类要支持序列化,我们通常实现Serializable.在使用Serializable,应当制定一个SerialVersionUID,用于代表类的版本.如果不指定会有什么影响呢?在了解这 ...
- 【PAT】B1005 继续(3n+1)猜想
没有婼姐写得好 将所有的输入放入mp,mp2 覆盖的数存入mp 一开始认为mp中只出现一次的元素就是,忘了可能只被覆盖一次的情况 所以添加了mp2保存输入 #include <iostream& ...