206
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
Linux系统的ECS实例中,如何配置crontab定时任务及常见问题?-阿里云服务器ECS使用教程

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   


点击这里点击这里进入阿里云ECS官方页面,立即免费体验云服务器ECS>>>

本文介绍如何在Linux系统的ECS实例中配置crontab定时任务,以及配置定时任务中的常见问题和解决方案。

crontab定时任务

新建定时任务

  1. 远程连接ECS实例。

    具体操作,请参见连接方式概述。

  2. 执行如下命令,打开crontab定时任务编辑界面。

     
    crontab -e
  3. i键进入编辑模式。

  4. 添加定时任务,定时任务如下所示。

     
    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。
  5. Esc键,输入:wq保存退出。

查看定时任务

执行crontab -l命令,查看已经配置的定时任务。

CPU监控脚本

如果返回no crontab for username信息,表示没有配置定时任务,

说明

username为您当前登录的用户。

no crontab

删除定时任务

  • 删除所有定时任务。

    执行如下命令,删除所有的定时任务。

     
    crontab -r
  • 删除具体的定时任务。

    1. 执行如下命令,打开crontab定时任务编辑界面。

       
      crontab -e
    2. i键进入编辑模式。

    3. 根据需要,在定时任务前加#号即可注释该定时任务。

       
      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。
    4. Esc键,输入:wq保存退出。

常见问题

非root用户,执行crontab命令时提示“You (*) are not allowed to use this program (crontab)”错误。

问题现象

使用非root用户执行crontab -lcrontab -e等命令时,出现如下错误信息。

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

问题原因

该问题可能是因为crontab任务有权限控制,非root用户默认没有操作crontab的权限。

cron.allowcron.deny文件用于控制用户对crontab命令的访问。

  • cron.allow文件中的用户可以使用crontab命令。

  • cron.deny文件中的用户不能使用crontab命令。

解决方案

  1. 使用root用户远程连接ECS实例。

    具体操作,请参见连接方式概述。

  2. 分别执行如下命令,查看是否存在cron.allowcron.deny文件。

     
    find /etc/cron.allowfind /etc/cron.deny

    cron.allowcron.deny文件是否存在与是否可以使用crontab命令的用户关系说明如下。




    cron.allow文件是否存在

    cron.deny文件是否存在

    有权限使用crontab的用户范围

    不存在

    不存在

    仅root用户可使用crontab命令。

    存在

    不存在

    仅cron.allow文件中的用户可使用crontab命令。

    不存在

    存在

    不在cron.deny文件中的用户都可以使用crontab命令。

    说明

    若cron.deny文件内容为空,则所有用户都可以使用crontab令。

    存在

    存在

    仅cron.allow文件中的用户可以使用crontab命令。

    说明

    cron.allow优先级高于cron.deny,此时cron.deny不起作用。

  3. 根据需要,编辑cron.allowcron.deny文件。

    • 如果不存在cron.allow文件,若cron.deny文件中存在非root用户的用户名,请删除该用户的用户名后,保存cron.deny

    • 如果存在cron.allow文件,将该非root用户添加到cron.allow文件中,保存cron.allow

  4. 执行如下命令,重启cron服务 。

     
    systemctl restart crond.service
  5. 切换到该非root用户,重新执行crontab命令,确保可以正常执行。

使用crontab -e创建定时任务失败,提示“command not found”错误。

问题现象

使用Linux系统的ECS实例中,执行crontab -e创建定时任务时执行失败,提示“command not found”错误。

执行cd /etc/crontab进入主目录,提示“No such file or directory”错误。

问题原因

该问题是因为crontab应用包未安装,或安装后程序文件损坏导致。

解决方案

  1. 远程连接ECS实例。

    具体操作,请参见连接方式概述。

  2. 执行如下命令,安装crontabs依赖包和crontabs包。

     
    yum install vixie-cron
    yum install crontabs
  3. 再次执行crontab -e命令,确认可以正常编辑新的计划任务。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!