Linux crontab 配置概要与常见问题

赞赏 2016-07-14

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


crontab 操作示例


列出定时任务

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

blob.png


新建定时任务

  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服务。

blob.png

 

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


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

问题描述

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

blob.png


分析解决

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

blob.png

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

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

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

blob.png

登陆后阅读全文
阅读 1350 赞赏 0 有用 0 没用 0 收藏 0 分享

   



0 条留言

linux分享的头像

linux分享

每个软件都有确定的用途

相关文章

Linux Crontab 执行 PHP 程序失败

阿里云·业务运营团队内部的前端构建和工程化工具 Dawn开源

阿里云云盾扫描服务器的的IP段有哪些?

阿里云云盾扫描服务器的的IP段有哪些?

安全组设置允许SSH登录到 Linux 实例

Linux 流控原理,实现,及实例

Linux 如何使用 kpartx 命令读取分区表信息

云服务器 ECS Linux /tmp 目录文件是如何做到定期清理的?

Linux Web 环境配置站点的方法

Linux 内核配置问题导致 NAT 环境访问异常

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

我是如何执行 "rm -rf ~" 的

正态分布为什么常见?(财富的分布却不符合正态分布)

Linux下窗口管理器 xmonad 的使用教程

用披萨做比喻来解释 IaaS,PaaS,SaaS 的区别

如何制作CSR(证书私钥和证书请求文件)文件?

php RedisException with message read error on connection

Windows环境下ping丢包或不通时链路测试工具推荐

Linux下ping丢包或不通时链路测试工具推荐

链路测试结果分析说明及常见链路异常场景和测试报告

SSH 登录时出现如下错误:login: Module is unknown

手机扫一扫
分享文章