AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 2368
Accepted
Gabriel Solomon
Gabriel Solomon
Asked: 2010-08-17 00:25:04 +0800 CST2010-08-17 00:25:04 +0800 CST 2010-08-17 00:25:04 +0800 CST

如何设置 Cron 作业?

  • 772

我想安排一个任务定期运行,并且听说 Cron 是执行此操作的方法。

如何在 Ubuntu 中添加 Cron 作业?

cron
  • 8 8 个回答
  • 1217228 Views

8 个回答

  • Voted
  1. Best Answer
    LassePoulsen
    2010-08-17T00:39:17+08:002010-08-17T00:39:17+08:00

    将 shell 脚本放在以下文件夹之一中:/etc/cron.daily、或./etc/cron.hourly/etc/cron.monthly/etc/cron.weekly

    如果这些对您来说还不够,您可以添加更具体的任务,例如每月两次或每 5 分钟一次。转到终端并输入:

    crontab -e
    

    这将打开您的个人 crontab(cron 配置文件)。该文件中的第一行说明了一切!在每一行中,您都可以定义一个要运行的命令及其时间表,当您掌握了它的窍门时,格式非常简单。结构是:

    minute hour day-of-month month day-of-week command
    

    对于所有可以使用列表的数字,例如5,34,55在分钟字段中将意味着在过去 5 点、过去 34 点和过去 55 点运行,无论定义什么小时。

    您也可以使用间隔。它们的定义如下:*/20. 此示例表示每 20 次,因此在分钟列中它相当于0,20,40.

    所以每周一下午 5:30 运行一个命令:

    30 17 * * 1 /path/to/command
    

    或每 15 分钟

    */15 * * * * /path/to/command
    

    请注意,星期几从 0 到 6,其中 0 是星期日。

    你可以在这里阅读更多。

    • 767
  2. Li Lo
    2010-08-17T00:58:21+08:002010-08-17T00:58:21+08:00

    如果您要运行的作业可以使用与您的用户相同的权限运行,我建议使用用户 crontab,您可以通过运行EDITOR="gedit" crontab -e(将使用 gedit 编辑 crontab 文件)或简单地crontab -e(将使用默认编辑器)进行编辑在一个终端。

    例如,如果你想每 10 分钟运行一次,你可以添加这样一行

    */10 * * * * /usr/bin/somedirectory/somecommand
    

    并保存文件。

    您可以使用 crontab 查看用户 crontab 的内容crontab -l。

    要添加以 root 身份运行的 cron 作业,您可以通过运行来编辑 root 的 crontab sudo crontab -e。

    最灵活的方法是使用系统 crontab /etc/crontab,您只能使用 root 权限进行编辑。在此文件中,每个命令都将按照指定的用户运行,因此您可以以 root(如果您需要该权限级别)或系统上的任何其他用户身份运行您的命令。

    例如,如果你想以 root 身份每 10 分钟运行一次,你可以添加这样一行

    */10 * * * * root /usr/bin/somedirectory/somecommand
    

    (注意将用户添加到该行)

    您可以使用 . 查看系统 crontab 文件的内容cat /etc/crontab。

    更多详情请访问:https ://help.ubuntu.com/community/CronHowto

    • 112
  3. Javier Rivera
    2010-08-17T01:21:17+08:002010-08-17T01:21:17+08:00

    如果您更喜欢使用 GUI 来执行此操作,您可以转到软件中心并安装计划任务(或运行sudo apt-get install gnome-schedule)。它将提供强大的 GUI 来添加 cron 任务。

    请注意,如果您使用此方法,默认情况下任务将以您自己的用户身份执行,而不是以 root 身份执行。这通常是一件好事。

    • 55
  4. gertvdijk
    2013-02-01T15:59:51+08:002013-02-01T15:59:51+08:00

    我推荐KDE 的任务计划程序 ( kde-config-cron) 安装 kde-config-cron。从那里的任务计划程序模块中的系统设置访问它。

    它同时管理个人和系统 Crontab,创建时间界限的轻松性让我大吃一惊(见下面的屏幕截图)。我觉得这部分真的被低估了。

    在此处输入图像描述

    • 26
  5. Craig van Tonder
    2016-09-28T12:25:14+08:002016-09-28T12:25:14+08:00

    我想设置一个 Cron 作业以通过 bash 脚本运行,因此执行该脚本会添加一个 cron 作业。

    我意识到,当您使用:

    crontab -e 
    

    然后它创建文件:

    /var/spool/cron/crontabs/root

    其中 root 是运行 crontab 命令的用户的名称。所以基于此,至少在 14.04 中,我们可以执行以下 bash 命令来创建一个新的 Cron 作业:

    echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root
    

    我们还需要为文件设置正确的所有权:

    chown root:root /var/spool/cron/crontabs/root
    

    并设置正确的权限:

    chmod 600 /var/spool/cron/crontabs/root
    

    如果您在运行时crontab -e列表中已经有 Cron 作业,那么您可以使用以下命令追加到列表中:

    echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
    
    • 13
  6. Antonio
    2014-02-12T06:35:58+08:002014-02-12T06:35:58+08:00

    KDE 任务计划程序无法在常规 Ubuntu 中运行。它仅适用于像 KUbuntu 这样的 KDE 系统。对于非 KDE 系统,您会更喜欢使用 gnome-schedule

    $ sudo apt-get install gnome-schedule
    

    该应用程序是 Dash 中的计划任务。

    • 12
  7. Alexander
    2018-11-18T01:41:48+08:002018-11-18T01:41:48+08:00

    test_cron.sh使用符号链接在 Ubuntu 18.04 上每分钟通过 cron运行脚本的示例:

    test_cron.sh文件:

    #!/bin/bash
    echo "System backuped" >> /media/myname/data/backup/backup_tmp.log
    

    如果你想在你的脚本中使用环境变量,比如$USER在路径中,最好输入精确的路径,bash 在执行时不会知道你的变量。

    myname是用户名(root 组的一部分,我不确定是否需要 root 权限)。

    允许用户设置 cron 作业,如有必要,将创建文件:

    sudo nano /etc/cron.allow
    
    root
    myname
    

    脚本的路径是/home/myname/shell/test_cron.sh

    我更改了所有者并使其可执行:

    sudo chown myname /home/myname/shell/test_cron.sh
    chmod +x /home/myname/shell/test_cron.sh
    

    我添加了符号链接:

    sudo ln -s /home/myname/shell/test_cron.sh /usr/bin/test_cron
    

    在myname我添加新任务以test_cron每分钟执行一次时记录。

    crontab -e
    
    */1 * * * * test_cron
    

    要检查列表中的命令:

    crontab -l
    
    */1 * * * * test_cron
    

    检查执行

    grep -i cron /var/log/syslog
    
    Nov 17 12:28:01 myname-ubuntu CRON[13947]: (myname) CMD (system-backup)
    
    • 6
  8. Nagesh Mhapadi
    2020-04-08T10:59:30+08:002020-04-08T10:59:30+08:00

    考虑到您有多个特定用户的 cron 作业,并且它们不共享相同的时间表。您可以在/etc/cron.d/ 假设文件名下简单地创建文件,myjobs然后只需将所有调度程序写入该文件,然后运行以下命令。

    crontab -u <username> /etc/cron.d/myjobs

    • 0

相关问题

  • 如何每 5 秒运行一次脚本?

  • 如何使 cron 电子邮件成为我的 @gmail 帐户

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve