📜  crontab 示例 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:14:17.317000             🧑  作者: Mango

Crontab 示例 - Shell/Bash

Crontab 是一个在 UNIX 系统中定时执行任务的工具。通过设置 Crontab,可以让任务在指定的时间间隔内自动运行。本文将为程序员介绍 Crontab 的使用示例,并提供一些常见的 Shell/Bash 脚本代码片段。

使用示例
编辑 Crontab 文件

使用以下命令来编辑用户的 Crontab 文件:

crontab -e

这将打开一个编辑器,允许你编辑 Crontab 文件。如果是第一次编辑,系统会提示你选择默认的编辑器。可以选择任意一个,比如 nanovim

添加任务

在 Crontab 文件中,每一行代表一个任务。下面是添加一个任务的示例格式:

* * * * * command
  • 第一列(分钟):0-59 分钟之间的数字,或者 * 表示任意分钟。
  • 第二列(小时):0-23 小时之间的数字,或者 * 表示任意小时。
  • 第三列(天):1-31 之间的数字,或者 * 表示任意天。
  • 第四列(月):1-12 之间的数字,或者 * 表示任意月。
  • 第五列(星期):0-7 之间的数字(0 和 7 均表示星期天),或者 * 表示任意星期。

下面是一些常见的示例:

  • 每天的上午 8 点运行任务:

    0 8 * * * command
    
  • 每个星期一的上午 9 点运行任务:

    0 9 * * 1 command
    
  • 每个月的 1 号的上午 10 点运行任务:

    0 10 1 * * command
    
  • 每周五的下午 2 点和 4 点运行任务:

    0 14,16 * * 5 command
    
  • 每小时的第 30 分钟运行任务:

    30 * * * * command
    
删除任务

要删除任务,只需要将任务从 Crontab 文件中删除即可。

列出任务

使用以下命令可以列出当前用户的所有任务:

crontab -l
示例代码
在每天的特定时间备份数据库
0 2 * * * mysqldump -u username -p password mydatabase > backup.sql

这个例子将在每天的凌晨 2 点备份 MySQL 数据库,并将备份保存为 backup.sql 文件。

在服务器上定期清理过期的日志文件
0 0 * * * find /path/to/logs -type f -mtime +7 -exec rm {} \;

这个例子将在每天的午夜(0 点)执行一次命令,删除位于 /path/to/logs 目录下超过 7 天的日志文件。

每周发送一封电子邮件
0 12 * * 1 echo "Hello, world!" | mail -s "Weekly Update" user@example.com

这个例子将在每周一的中午 12 点向 user@example.com 发送一封包含 "Hello, world!" 的邮件,主题为 "Weekly Update"。

以上仅是一些示例代码,实际使用中可以根据需要编写更多自定义的 Crontab 任务。

请注意,可根据实际情况将示例中的命令和路径修改为适合自己的环境和需求。

希望以上内容对你理解和使用 Crontab 提供了参考和帮助!