树莓派linux定时任务,树莓派执行定时任务(crontab)

本文介绍了如何在树莓派上使用crontab设置定时任务,包括编辑、查看crontab任务,以及各种时间格式的解释和示例。还提到了重启crontab服务的重要性以及在crontab中执行mysqldump时可能遇到的问题和解决方案。

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

摘要在使用树莓派的时候,我们常常需要定时来执行一些任务,这篇文章就叙述一下如何编辑crontab,及一些要注意的地方。

树莓派定时执行脚本,可以通过如下指令,进入事件编辑功能

编辑crontab任务

sudo crontab -e #编辑crontab任务

sudo crontab -l #查看现在已有的crontab任务

进入界面后,可以参考网上的一些文章,看其要求的格式

http://ju.outofmemory.cn/entry/68682

https://www.raspberrypi.org/documentation/linux/usage/cron.md

crontab的一些例子

关于命令的一些解释,可以看下面的这张图片:

eb371f14cc04ebb5353b890681a756e4.png

关于星期取值范围的解释

关于星期,0和7都是表示星期日;

0 - Sun      Sunday

1 - Mon      Monday

2 - Tue      Tuesday

3 - Wed      Wednesday

4 - Thu      Thursday

5 - Fri      Friday

6 - Sat      Saturday

7 - Sun      Sunday

下面是一个总体的图像:

┌────────── minute (0 - 59)

│ ┌──────── hour (0 - 23)

│ │ ┌────── day of month (1 - 31)

│ │ │ ┌──── month (1 - 12)

│ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or

│ │ │ │ │                1 - 7 => Monday - Sunday)

↓ ↓ ↓ ↓ ↓

* * * * * command to be executed

例子

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。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

#上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

#上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

#上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

#每一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

#晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

#每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

#一月一号的4点重启apache

重启crontab服务

编辑完毕后,很重要的一点是一定要执行如下命令

sudo /etc/init.d/cron restart

否则,你的定时命令不会执行。

另外,就要看好,你的树莓派的时间跟自己的时间是否对上。可以通过如下指令查询

date

一些遇到的问题

mysqldump doesn't work in crontab

除了下面的方法,还可以这么来写,即使用 $(date +%Y-%m-%d):

tar -czf /home/backup/$(date +%Y-%m-%d).tar.gz /var/log 2>err.log

mysqldump在定时任务中不工作,可以参考下面的连接:

解决办法:在%前面加上\进行转意;

Original:

mysqldump -u 'username' -p'password' DBNAME > /home/eric/db_backup/liveDB_`date +%Y%m%d_%H%M`.sql

Edited:

mysqldump -u 'username' -p'password' DBNAME > /home/eric/db_backup/liveDB_`date +\%Y\%m\%d_\%H\%M`.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值