树莓派学习笔记——crontab定时运行脚本

本文详细介绍如何在树莓派上使用Crontab进行定时任务的设置,包括查看已有的定时任务、编辑新的定时任务,以及定时任务的编写规则。通过实例演示,如每隔十分钟执行一次Python脚本并将结果记录到日志文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

crontab定时运行脚本

如果在玩树莓派的过程中,我们需要定时或者定期的运行一些程序或脚本,这里有个好方法,就是Linux下的 crontab

通常会用到的就是两个命令:

  1. 查看已有的定时任务

     pi@raspberrypi:~ $ crontab -l
    
  2. 编辑定时任务

     pi@raspberrypi:~ $ crontab -e
    

当我们输入crontab -e的时候,第一次会让你选择用什么方式打开例如nano、vim等
接下来就可以编写我们的定时任务了。
例子:

*/10 * * * * python3 /home/pi/bili_online_analysis.py >> /home/pi/bili_online_analysis.log 2>&1

定时任务的编写规则:

  1. 规则一: 命令通常都是以下这种格式,一行就是一个定时任务

     # m h  dom mon dow   command
    
  2. 规则二:每个字段的含义

    m: 表示分钟,范围0到59
    h:表示小时,范围0到23
    dom:表示日,范围1到31
    mon:表示月,范围1到12
    dow:表示星期,范围0到7,0和7都是星期日
    command:表示命令
    
  3. 规则三:每个符号的含义

     *:表示所有的值,如果m字段是星号,这说明每分钟都运行。
     ,:表示一个列表,如果m字段是 "1,5,15,58",这说明在第1分钟,第5分钟,第15分钟和第58分钟会运行
     -:表示一个范围,如果m字段是 1-5,这说明第1分钟、第2分钟、第3分钟、第4分钟和第5分钟都会运行
     /:表示时间间隔,如果m字段是 */10,这说明每隔10分钟运行
    

这样就好理解我上面的例子了:

*/10 * * * * python3 /home/pi/bili_online_analysis.py >> /home/pi/bili_online_analysis.log 2>&1

这表示每隔十分钟执行一次bili_online_analiysisi.py脚本,并将执行结果写入bili_online_analiysisi.log文件,最后的2>&1表示讲错误信息也一同写入。

更多树莓派笔记内容请访问:https://blog.youkuaiyun.com/Q_QuanTing/article/details/81843206

<think>我们正在讨论如何在服务器上使用crontab定时运行脚本。根据用户的问题,我们需要提供使用crontab设置周期性任务的步骤。 参考引用中提供了关于crontab的基本信息和使用方法: [^1] 解释了crontab命令用于周期性执行命令,并提到了查看当前crontab的命令:sudo crontab -l [^2] 提到了如何设置crontab文件:使用crontab -e命令创建或编辑crontab文件 [^3] 给出了编辑root用户的crontab的具体命令:sudo crontab -e [^4] 展示了crontab条目的一个例子(来自barman包),格式为:* * * * * user command [^5] 讨论了如何将输出重定向到文件(使用>>追加)和邮件发送输出 因此,我们可以根据这些引用来构建回答。 步骤: 1. 编写需要执行的脚本,并确保脚本有可执行权限。 2. 使用crontab -e命令编辑当前用户的crontab文件(如果是root用户的任务,则使用sudo crontab -e)。 3. 在crontab文件中按照指定格式添加定时任务。 4. 保存并退出编辑器,cron会自动加载新的配置。 关于crontab的时间格式: 分钟(0-59) 小时(0-23) 日(1-31) 月(1-12) 星期(0-7,0和7都代表星期日) 命令 示例: 每天凌晨2点执行:0 2 * * * /path/to/script.sh 另外,我们还可以将脚本的输出重定向到日志文件,如引用[^5]所示: 例如:0 2 * * * /path/to/script.sh >> /var/log/script_output.log 2>&1 注意:2>&1表示将标准错误也重定向到标准输出。 因此,我们可以这样组织回答:</think>### 如何在服务器上使用 crontab 定时运行脚本 以下是详细步骤(以 Ubuntu 系统为例): #### 1. **创建可执行脚本** - 编写脚本(如 `backup.sh`),并添加执行权限: ```bash chmod +x /path/to/your_script.sh ``` - 脚本首行需指定解释器(如 `#!/bin/bash`) #### 2. **编辑 crontab 配置文件** - 执行以下命令编辑当前用户的 crontab: ```bash crontab -e ``` - **若需 root 权限**(如操作系统文件): ```bash sudo crontab -e ``` #### 3. **配置定时任务** - 在打开的文件中添加新行,格式为: ``` * * * * * /path/to/your_script.sh ``` - **时间字段说明**(从左到右): | 字段 | 含义 | 取值范围 | |------|------|----------| | 1 | 分钟 | 0-59 | | 2 | 小时 | 0-23 | | 3 | 日期 | 1-31 | | 4 | 月份 | 1-12 | | 5 | 星期 | 0-7 (0和7均为周日) | - **常用示例**: - 每天凌晨 2 点执行: `0 2 * * * /script.sh` - 每 30 分钟执行: `*/30 * * * * /script.sh` - 每周一 8:30 执行: `30 8 * * 1 /script.sh` #### 4. **保存并生效** - 保存文件退出后,cron 服务会自动重新加载配置[^3] #### 5. **管理任务** - 查看当前任务: ```bash crontab -l ``` - 删除所有任务: ```bash crontab -r ``` #### 6. **日志与调试** - 重定向输出到日志文件(推荐): ```bash * * * * * /script.sh >> /var/log/script.log 2>&1 ``` - `>>` 追加日志 - `2>&1` 包含错误输出[^5] - 查看系统 cron 日志: ```bash tail -f /var/log/syslog | grep cron ``` #### ⚠️ 注意事项 1. 使用**绝对路径**(脚本路径和内部命令) 2. 环境变量问题:cron 执行环境与终端不同,建议在脚本中设置 `PATH` 3. 权限检查:确保执行用户对脚本和日志文件有权限 4. 复杂任务建议封装到脚本中,crontab 只调用脚本 > 示例任务:每周日 3:00 执行备份 > ```bash > 0 3 * * 0 /opt/scripts/backup.sh >> /var/log/backup.log 2>&1 > ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值